PK_EDGE_attach_curves_o_t   

struct PK_EDGE_attach_curves_o_s
    {
    int                  o_t_version;   --- version number of options structure
    int                  n_intervals;   --- the number of curve intervals
                                        --- being supplied (0)
    const PK_INTERVAL_t *intervals;     --- parametric intervals of curves
                                        --- to be attached (NULL)
    const int           *interval_map;  --- curve-interval mapping (NULL)
    PK_LOGICAL_t         have_senses;   --- the senses array is set
                                        --- (PK_LOGICAL_false)
    const PK_LOGICAL_t  *senses;        --- the orientations of curves with
                                        --- respect to their edges (NULL)
    PK_GEOM_copy_t       copy_curves;   --- whether to copy curves before
                                        --- attachment (PK_GEOM_copy_auto_c)
    PK_check_vx_on_cu_t  vx_checking;   --- how to enforce vertex checking
                                        --- (PK_check_vx_on_cu_all_c)
    PK_check_geom_t      geom_checking; --- whether to enforce geometry
                                        --- checking (PK_check_geom_yes_c)
    PK_EDGE_attach_update_t
                         update;        --- update switch
                                        --- (PK_EDGE_attach_update_default_c)
    };

typedef struct PK_EDGE_attach_curves_o_s PK_EDGE_attach_curves_o_t;



This options structure holds optional controls for PK_EDGE_attach_curves_2.

Used in:

PK_EDGE_attach_curves_2


Description of fields:

'n_intervals'     The number of curve intervals being supplied through the
                  'intervals' array. If zero (the default), the arrays
                  'intervals' and 'interval_map' will be ignored.

'intervals'       An array of length 'n_intervals' containing the parametric
                  intervals of the curves to be attached. Each interval must
                  be within the parameter range of the curve to which it is
                  mapped.

'interval_map'    An array of length 'n_intervals' mapping a member of
                  'intervals' to a member of 'curves', such that the interval
                  intervals[i] corresponds to curve curves[ interval_map[i] ].
                  The interval must be within the original range of the
                  associated curve; no implicit curve extension is performed.

'have_senses'     Indicates whether curve orientations are being passed
                  in through the 'senses' parameter.

'senses'          An array of length 'n_edges' specifying the desired
                  orientations of the curves with respect to the edges.

'copy_curves'     Whether to make copies of 'curves' (and all dependent
                  geometry) before attaching. The possible values are:

                  o  PK_GEOM_copy_always_c: all the curves in 'curves'
                     will be copied.

                  o  PK_GEOM_copy_never_c: no curves will be copied; the
                     operation will fail if any of 'curves' are owned.

                  o  PK_GEOM_copy_auto_c: a curve will only be copied
                     if it has a geometric owner, is already attached
                     to an edge, or appears in the list twice with
                     different sense flag. This is the default.

'vx_checking'     Whether to enforce vertex checking, i.e. checking that
                  the end-points of a curve (or its specified interval) are
                  coincident with accurate vertices, or within tolerance of
                  tolerant vertices. The possible values are:

                  o  PK_check_vx_on_cu_all_c: enforce vertex checking for
                     all curves.

                  o  PK_check_vx_on_cu_none_c: suppress vertex checking
                     for all curves.

                  o  PK_check_vx_on_cu_unbounded_c: enforce vertex
                     checking for all curves except those for which an
                     interval is specified.

'geom_checking'   Either PK_check_geom_yes_c or PK_check_geom_no_c,
                  controlling whether to enforce Parasolid's geometry checking
                  of 'curves'. This includes self-intersection and G1
                  continuity checking.  If enforced, then invalid curves will
                  fail to be attached. Note that this checking does not apply
                  to the surfaces of the adjoining faces.

'update'          The default value (PK_EDGE_attach_update_default_c) allows
                  applications to take advantage of the latest enhancements to
                  the algorithm. To maintain consistency when rebuilding models
                  created in a previous version of Parasolid, a non-default
                  value should be specified.


The method used for attaching a curve depends on the options supplied:

    o  If no interval is supplied for the curve, then the portion of the curve
       to be attached is determined by finding the points of closest approach
       to the vertices.

    o  If an interval is supplied, then the curve portion is calculated from
       the parameter range.

In each case, if vertex checking is enabled then an error will be raised if an
end-point is outside the tolerance of its vertex.

If the curve is periodic and 'senses' have been specified, then the portion of
the curve with this orientation is attached (see here for more
information). The default behaviour is to take the positively oriented portion.

If the curve is open and the specified sense is incompatible with the edge, the
curve may be reversed such that the attachment is legal. Thus the resulting
orientation of the edge may not match that specified by the user.

Disabling 'vx_checking' or 'geom_checking' may result in edge invalidities; no
attempt is made internally to repair these.