 |
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.