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.