 |
PK_BODY_imprint_cus_normal_o_t |
|
struct PK_BODY_imprint_cus_normal_o_s
{
int o_t_version; --- version number
PK_imprint_complete_t
imprint_complete; --- whether to complete imprint on
--- target body
--- ( PK_imprint_complete_no_c )
PK_imprint_tracking_t
tracking_type; --- format of returned tracking
--- records
--- ( PK_imprint_tracking_basic_c )
PK_imprint_proj_dist_t
use_max_projection_dist; --- whether and how to limit
--- imprints to those where the
--- projected curves upon a face
--- lie within
--- 'max_projection_dist' of the
--- curve causing the imprint
--- ( PK_imprint_proj_dist_no_c )
double max_projection_dist; --- ( 0.0 )
PK_LOGICAL_t imprint_coi_exactly; --- whether to imprint curves
--- exactly where they are
--- coincident with the surface
--- geometry of the body.
--- (PK_LOGICAL_false)
PK_continuity_t
preferred_continuity; --- level of continuity to impose
--- when making projection curves.
--- (PK_continuity_g1_c)
};
typedef struct PK_BODY_imprint_cus_normal_o_s
PK_BODY_imprint_cus_normal_o_t;
The option structure defines options applicable to imprinting a set of
curves on a body.
Used in:
PK_BODY_imprint_cus_normal
Description of fields:
'imprint_complete' Whether to complete the imprint on the body.
Vertices in the imprint corresponding to the
ends of the imprinted trimmed curves can be
completed so that they lie on an edge or laminar
edge of the target body.
The incomplete imprint is completed by
intersecting the faces of the body with a plane
tangential to the imprint at the end vertices
of the incomplete imprint and orthogonal to the
body.
Depending on the value of this option, the
imprint will be completed along the direction
of this plane until either:
o it meets any edge belonging to the body
o it meets any laminar edge belonging to the
body.
A completed imprint that self-intersects
will be trimmed at the point of self-intersection.
Completion to laminar edges may only be performed
upon sheet bodies.
For more information, see here.
'tracking_type' Determines the format of the tracking records
that are returned when curves are imprinted.
There are two possible values for this option:
o PK_imprint_tracking_basic_c (default)
o PK_imprint_tracking_curves_c
For this function the information returned when
using PK_imprint_tracking_basic_c is very concise.
The tracking information returned consists of a
single track record (PK_TOPOL_track_record_r_t)
with the 'product_topols' field holding all edges
created by the imprinting operation. The
'original_topols' field of the track record will be
empty. Edges imprinted through any requested imprint
completion will be included in this record.
PK_imprint_tracking_curves_c returns information
that associates imprinted edges with both the
imprint curve from which they originate and the
original topology upon which they are imprinted.
The tracking information is returned by returning
a track record for each imprinted edge. Each edge
has two original_topols. The first of these is the
input curve which gave rise to this edge.
The second is the original topology on the body
where this edge is created. This is usually a face,
but where the edge is imprinted along a
pre-existing edge that edge is returned instead.
Imprinted edges arising from any requested imprint
completion are tracked by the same method, but the
original topology associated with the edge is
always null.
'use_max_projection_dist' If this is set to PK_imprint_proj_dist_whole_c
then edges are only imprinted where the projection
of the curve upon a face lies wholly within
'max_projection_dist' of the curve causing the
imprint. The default behaviour when this field is
set to PK_imprint_proj_dist_no_c is to imprint all
curves regardless of the distance of the curve from
its projections upon the faces of the body. See
here for more information.
'max_projection_dist' If 'use_max_projection_dist' is set to
PK_imprint_proj_dist_whole_c then edges are only
imprinted when the projected curve upon a face
lies wholly within this distance of the curve
causing the imprint. See here for more
information.
The default value is 0.0.
`imprint_coi_exactly` If 'imprint_coi_exactly' is set to PK_LOGICAL_true
then curves coincident with their target surfaces
are imprinted exactly where appropriate, rather
than being imprinted by projection.
See here for more information.
The default value is PK_LOGICAL_false.
`preferred_continuity` Only PK_continuity_g1_c and PK_continuity_c2_c
are permitted. If 'preferred_continuity' is set
to PK_continuity_c2_c, then projection curves
are fitted with c2 continuity when not exact.
It is also required that 'tracking_type' be set
to PK_imprint_tracking_curves_c when using
PK_continuity_c2_c.
See here for more information.
The default value is PK_continuity_g1_c.