PK_FACE_change_transform_o_t   

struct PK_FACE_change_transform_o_s
    {
    int                      o_t_version;
    int                      n_loops;      --- number of boundary loops of the
                                           --- faces being transformed.
                                           --- (0)
    const PK_LOOP_t         *base_loops;   --- boundary loops of the faces
                                           --- being transformed.
                                           --- (NULL)
    const PK_FACE_t         *target_faces; --- For each boundary loop, the
                                           --- target face specifies the site
                                           --- of the transformed faces.
                                           --- (NULL)
    PK_transform_step_t      transform_step;
                                           --- whether to create a transform
                                           --- step face
                                           --- (PK_transform_step_no_c)
    PK_transform_intent_t    transform_intent;
                                           --- whether the intended result of
                                           --- rotation is to add or remove
                                           --- material, or produce the
                                           --- minimal rotation
                                           --- (PK_transform_intent_minimal_c)

    };
typedef struct PK_FACE_change_transform_o_s PK_FACE_change_transform_o_t;


This structure contains transform-specific optional controls for
PK_FACE_change.


Specific Errors:
    PK_ERROR_bad_combination        (MILD)    'transform_intent' is not
                                              PK_transform_intent_minimal_c
                                              and no step faces were created.
    PK_ERROR_wrong_transf           (MILD)    Transform type is not compatible
                                              with 'transform_step', or the
                                              'transform_intent' option.

Used in:

PK_FACE_change_opts_t



Description of fields:

'n_loops'               The number of boundary loops of the faces being
                        transformed.

'base_loops'            The boundary loops of the faces being transformed.

'target_faces'          The target location for the boundary loops after
                        transformation.

'transform_step'        Whether to add a step face between boundary edges of
                        faces. If this option is set to PK_transform_step_no_c
                        no step faces will be created. If set to
                        PK_transform_step_smooth_c then side faces will be
                        created along all smooth boundary edges. If set to
                        PK_transform_step_all_c step faces will be created
                        at both sharp and smooth edges. If set to
                        PK_transform_step_not_coi_c step faces are created
                        at all edges except those where the surface of the step
                        would be coincident with the surface of the adjacent
                        face. If set to PK_transform_step_smooth_site_c step
                        faces are created at all smooth boundary edges but
                        will not be created if this can be done by growing
                        site faces.
                        Site faces with facet geometry will not be
                        grown.

                        Only pure translations or rotations will
                        result in side faces being created, other types of
                        transform are not supported.

                        See here for more information.

'transform_intent'      Whether the intended result of a rotation is to add or
                        remove material, or produce the minimal rotation.

                        If this option is set to PK_transform_intent_grow_c
                        then Parasolid applies the rotation in the direction
                        which adds material and removes none - if no such
                        direction exists then the operation fails. If this
                        option is set to PK_transform_intent_trim_c then
                        Parasolid applies the rotation in the direction which
                        removes material and adds none - if no such direction
                        exists then the operation fails. If this option is set
                        to PK_transform_intent_minimal_c then Parasolid
                        applies the rotation in the direction which produces
                        the minimal rotation - this may simultaneously add and
                        remove material.

                        The given intent will override the inherent intent of
                        the rotation matrix.