 |
PK_BODY_make_swept_body_o_t |
|
struct PK_BODY_make_swept_body_o_s
{
int o_t_version;
PK_BODY_sweep_alignment_t alignment; --- alignment of profile
--- (PK_BODY_sweep_align_normal_c)
PK_BODY_simplify_t simplify; --- simplify lofted surfaces
--- (PK_BODY_simplify_analytic_c)
PK_BODY_topology_t topology_form;--- topology of resultant body
--- (PK_BODY_topology_minimal_c)
PK_BODY_sweep_law_t twist; --- twist of sweep path
PK_BODY_sweep_law_t scale; --- scale of sweep path
PK_BODY_sweep_fair_t fair; --- method to use for improving
--- the sweep
--- (PK_BODY_sweep_fair_default_c)
double tolerance; --- tolerance (1.0e-5)
PK_LOGICAL_t minimise_tolerance;
--- minimise tolerances where
--- possible (PK_LOGICAL_false)
PK_LOGICAL_t allow_rationals;
--- allow bodies with rational
--- surfaces (PK_LOGICAL_true)
PK_BODY_sweep_scale_type_t scale_type; --- how any scaling should be
--- applied
--- (PK_BODY_sweep_scale_both_c)
PK_VECTOR_t scale_point; --- defining point for scale
--- laws of types
--- PK_BODY_sweep_scale_posn_c or
--- PK_BODY_sweep_scale_size_c
int n_ignorable_vertices;
--- number of vertices that may be
--- ignored (0)
const PK_VERTEX_t *ignorable_vertices;
--- array of vertices to ignore
--- (NULL)
};
typedef struct PK_BODY_make_swept_body_o_s PK_BODY_make_swept_body_o_t;
This structure holds optional controls on the construction of a swept body.
Used in:
PK_BODY_make_swept_body
The option structure for making a swept body has the following fields :
'alignment' If set to PK_BODY_sweep_align_parallel_c, the profile
normal will maintain a constant angle to the global
axes. If set to PK_BODY_sweep_align_normal_c, the
profile normal will maintain a constant angle to the
path tangent. (PK_BODY_sweep_align_normal_c)
See Controlling the profile alignment for more
information.
'simplify' A token used to indicate the level of simplification
to be attempted on the swept surfaces generated to
form the faces of the swept body. For a sweep of
multiple profiles, or where 'n_guides' is not equal
to 0, this option must be set to PK_BODY_simplify_no_c.
If set to PK_BODY_simplify_no_c, no simplification will
be attempted.
If set to PK_BODY_simplify_analytic_c, the function will
attempt to generate analytic surfaces that are within
session precision of the surface defined by the sweep.
If set to PK_BODY_simplify_swept_spun_c, the function
will fail with error PK_ERROR_not_implemented, as this
option is invalid for PK_BODY_make_swept_body.
(PK_BODY_simplify_analytic_c)
See Simplifying the final body for more
information.
'topology_form' A token used to indicate how the resultant body should
be divided into faces. (PK_BODY_topology_minimal_c)
See Specifying final topology for more
information.
'twist' A 1-dimensional LAW standard form or a discrete set
of values to be interpolated at vertices along the path.
The values specify the amount of rotation about the path
tangent direction undergone by the profile as it moves
along the sweep path.
See Specifying twist for more information.
'scale' A 1-dimensional LAW standard form or a discrete set
of values to be interpolated at vertices along the path.
The values specify the amount of magnification
of the profile as it moves along the sweep path.
See Specifying scale for more information.
'fair' Indicates what method (if any) to use to attempt to
improve the method of sweeping along the supplied path.
(PK_BODY_sweep_fair_default_c)
'tolerance' The tolerance to which the sweeping operation may
approximate entities or assume that entities are
coincident. (1.0e-5)
'minimise_tolerance' If set to PK_LOGICAL_true, topology will be created
with smaller tolerances than 'tolerance' if possible.
(PK_LOGICAL_false)
'allow_rationals' If set to PK_LOGICAL_false, rational bsurfaces will
never be used in the resultant body. (PK_LOGICAL_true)
See Minimising sweep tolerances for more
information.
'scale_type' Specifies how any scale law supplied in the 'scale'
option should be applied. (PK_BODY_sweep_scale_both_c)
If 'scale_type' is 'PK_BODY_sweep_scale_posn_c', the
distance between the supplied 'scale_point' and the path
is modified according to the 'scale'. The profile is
translated to maintain a constant relationship with the
scaled image of the 'scale_point', but is not itself
scaled.
If 'scale_type' is 'PK_BODY_sweep_scale_size_c', the
size of the profile is modified according to the
'scale' about the 'scale_point'. The distance between
the 'scale_point' and the path remains constant.
If 'scale_type' is 'PK_BODY_sweep_scale_both_c', both
the size of the profile and its distance from the path
is modified according to the 'scale'. No 'scale_point'
should be provided. This is the default.
'scale_point' A position vector indicating the defining point for a
scale law. Its purpose depends on the specified
'scale_type': see 'scale_type' for details.
If no scale law is provided or the 'scale_type' is
'PK_BODY_sweep_scale_both_c' this option will be
ignored.
'n_ignorable_vertices' The number of vertices that may be ignored, for the
purposes of building topology. (0)
'ignorable_vertices' An array of path vertices that may be ignored, for the
purposes of building topology. (NULL)
Edges in the profile direction corresponding to path
vertices in this array will not be created, where
possible. It is an error to supply a vertex at the
start or end of an open path, or where two edges do not
meet with G1-continuity.