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