PK_CURVE_spin_o_t   

struct PK_CURVE_spin_o_s
    {
    int                      o_t_version;
    PK_LOGICAL_t             simplify;             --- (PK_LOGICAL_false)
    PK_LOGICAL_t             confine;              --- (PK_LOGICAL_false)
    PK_INTERVAL_t            interval;             --- ((0,0))
    };

typedef struct PK_CURVE_spin_o_s PK_CURVE_spin_o_t;



Holds optional controls on spinning a curve around an axis.

Used in:

PK_CURVE_spin_2



See Local Ops: Spinning or Sweeping an Entity for more information.

The structure has the following user fields:

    'simplify'  If this is set to PK_LOGICAL_false then PK_CURVE_spin_2
                will always return a surface of class PK_CLASS_spun.

                If its value is PK_LOGICAL_true then, if possible,
                PK_CURVE_spin_2 will return a simpler surface which is
                equivalent to the surface of revolution. Normally the
                simpler surface is analytic; for example, a spun line
                which intersects the axis is equivalent to a
                cone. Sometimes the simpler surface is a spun surface
                with a profile different to the curve being spun. This can
                occur when the whole of the received curve would sweep the
                spun surface twice, i.e. the surface would be self
                intersecting at all its points. For example, this
                occurs when the curve to be spun is a circle which lies in
                a plane perpendicular to the plane containing its centre and
                the spin axis. In this case, the profile of the
                resulting surface is a B-curve equivalent to the part
                of the curve specified using the option field 'interval'
                (although the  parameterisation of the new profile will, in
                general, be different to that of the received curve).

    'confine'   Where the whole of the curve supplied is to be spun, this
                field should be set to PK_LOGICAL_false.

                If set to PK_LOGICAL_true this indicates that only a subset
                of the curve supplied is to be spun. Which subset of the
                curve is indicated by the interval specified in the option
                field 'interval'.

   'interval'   This field is used only where 'confine' is set to
                PK_LOGICAL_true. The interval specifies the parameter range
                of the part of the curve that is to be spun.

                A parameter range may be specified for any case but
                will only be important in cases where the curve
                intersects the axis. In these cases, it is ambiguous
                as to which part of the curve should be spun and this
                option provides a way of choosing one part to be
                spun. The parameters must be given in ascending
                order. The curve is extended from the given parameter
                range until it meets the spin axis, and this becomes
                the portion of curve to be spun. If the interval
                supplied specifies a section of curve that crosses the
                axis and PK_SESSION_set_check_self_int has been called
                with value PK_LOGICAL_true, then an error is
                signalled, otherwise ( PK_SESSION_set_check_self_int
                was called with PK_LOGICAL_false ) the part of
                the curve used is undefined.

                If an interval is specified for cases where the curve
                does not intersect the axis, the interval is ignored and the
                whole curve is spun.