PK_FIN_ask_geometry   


PK_ERROR_code_t     PK_FIN_ask_geometry
(
--- received arguments ---
PK_FIN_t             fin,           --- fin for which geometry is required
PK_LOGICAL_t         want_interval, --- whether parametric interval required

--- returned arguments ---
PK_CURVE_t    *const curve,         --- curve of fin (may be PK_ENTITY_null)
PK_CLASS_t    *const class,         --- class of curve
PK_VECTOR_t          ends[2],       --- positions at ends of fin
PK_INTERVAL_t *const t_int,         --- parametric interval of fin
PK_LOGICAL_t  *const sense          --- whether curve in same direction as fin
)


This function returns the geometry of a fin


If the fin has a curve attached, then this will be returned, otherwise, if the
fin's edge has a curve attached then the curve of the edge will be returned,
otherwise PK_ENTITY_null will be returned.  If curve is returned as
PK_ENTITY_null, then all other returned arguments are undefined.

The positions in ends are returned in the order of increasing parameter along
the curve.  If want_interval is set to PK_LOGICAL_true, then the parametric
interval of that part of the curve between ends is also returned.  If
want_interval is set to PK_LOGICAL_false, then zero values are returned in
t_int.

The returned sense indicates whether the curve is in the same direction
as the fin, and hence whether the elements of ends and t_int correspond
to the start and end of the fin ( sense == PK_LOGICAL_true ) or, to the end
and start of the fin ( sense == PK_LOGICAL_false ) respectively.

If the fin has no vertices and its geometry is all of a periodic curve, then
both ends are returned as the periodic seam point, and t_int, if
requested, is the complete parameter range.