PK_BODY_transform_2   


PK_ERROR_code_t              PK_BODY_transform_2
(
--- received arguments ---
PK_BODY_t                    body,            --- body to be transformed
PK_TRANSF_t                  transf,          --- transformation
double                       tolerance,       --- tolerance
const PK_BODY_transform_o_t *options,         --- options

--- 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 body by the given transformation.

NOTE : This function supersedes PK_BODY_transform.


Specific Errors:
    PK_ERROR_general_body          (MILD) general bodies not supported
    PK_ERROR_bad_component         (MILD) transformation is a perspective



Introduction

All geometry of the given body, which is attached to topology, is replaced
by geometry which is derived from the original geometry by transforming it
through the given transformation.

Replacement surfaces 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 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.

Replacement points are all computed by putting the original point through the
transformation.

This function does support the transformation of general bodies. However, this
support is limited to translation, rotation, reflection and uniform scale
transformations. If any other transformation (eg.  non-uniform scale ) is
specified for a general body, the function will return the
PK_ERROR_general_body error code.

User options
The PK_BODY_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. In the case of this function, only tracking information
records of the type PK_TOPOL_track_derive_c may be returned, if faces
have been split or merged during the operation.


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.