PK_FACE_transform_2   

PK_ERROR_code_t              PK_FACE_transform_2
(
--- received arguments ---
int                          n_faces,         --- number of faces > 0
const PK_FACE_t              faces[],         --- faces to transform
const PK_TRANSF_t            transfs[],       --- face transformations
double                       tolerance,       --- tolerance

const PK_FACE_transform_o_t *options,         --- options [PF]

--- returned arguments ---
PK_TOPOL_track_r_t    *const tracking,        --- tracking information
PK_TOPOL_local_r_t    *const results          --- status information
)


This function transforms the given faces by the given transformations.

NOTE : This function supersedes PK_FACE_transform.

This function offers partial support for facet geometry [PF]


Specific Errors:
    PK_ERROR_bad_component         (MILD)    transformation is a perspective
    PK_ERROR_wrong_entity_in_array (MILD)    given faces are not from same body
    PK_ERROR_wrong_transf          (MILD)    transform type is not compatible
                                             with transform step face option
    PK_ERROR_failed_to_transform   (SERIOUS) transform operation failed
    PK_ERROR_non_manifold          (SERIOUS) 'faces' are not locally manifold



Introduction
All geometry of the given faces is replaced by geometry which is
derived from the original geometry by transforming it through the
given transformation.

Replacement surfaces for the faces will satisfy the first possible
of the following list of criteria :

 1 - be of the same class as the original geometry,
 2 - be exactly coincident with the transformation of the original
     geometry,
 3 - not deviate by more than the given 'tolerance' from the
     transformation of the original geometry.

Replacement curves for edges will satisfy the same criteria in order
of precedence unless the curve lies on an edge which is at the junction
of faces, of which at least one of the attached surfaces has been
approximated (criterion 3), in which case, the edge curve will be
re-computed as the intersection of the face surfaces.

The original geometry of topological entities that acquire new
geometry as a result of this operation will be deleted.

The faces can belong to a general body, so long as they are locally manifold.
The transform cannot cause the faces to clash with non-manifold regions of the
body.

User options
The PK_FACE_transform_o_t structure contains user control options. See
its documentation for detail.

Tracking
The PK_TOPOL_track_t structure contains topology tracking information on
the operation. See its documentation for details.

Error handling
If this function returns PK_ERROR_no_errors, the result of the operation
will be indicated by the value of the 'status' field of the 'results'
structure. When this value is not PK_local_status_ok_c or
PK_local_status_nocheck_c, it indicates an operation failure and an array
of entities involved in this failure is returned through the field
'error_entities' of the 'results' structure, when possible.
For more information regarding the failure status code and the error_entities,
refer to the PK documentation of the PK_TOPOL_local_r_t structure.