 |
PK_EDGE_ask_geometry |
|
PK_ERROR_code_t PK_EDGE_ask_geometry
(
--- received arguments ---
PK_EDGE_t edge, --- edge for which geometry is required
PK_LOGICAL_t want_interval, --- whether parametric interval required
--- returned arguments ---
PK_CURVE_t *const curve, --- curve of edge (may be PK_ENTITY_null)
PK_CLASS_t *const class, --- class of curve
PK_VECTOR_t ends[2], --- positions at ends of edge
PK_INTERVAL_t *const t_int, --- parametric interval of edge
PK_LOGICAL_t *const sense --- whether curve in same direction as edge
)
This function returns the geometry of an edge
Specific Errors:
PK_ERROR_cant_get_curve The curve geometry associated with the
edge could not be found. Though it is
believed to be present.(MILD)
PK_ERROR_bad_interval The interval over which the curve lies
on the edge was requested but could not
be computed.(MILD)
If the edge has a curve attached, then this will be returned, otherwise, if the
edge's fins have curves attached then the curve of a fin 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 edge, and hence whether the elements of 'ends' and 't_int' correspond
to the start and end of the edge ( sense == PK_LOGICAL_true ) or, to the end
and start of the edge ( sense == PK_LOGICAL_false ) respectively.
If the edge 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.