PK_EDGE_ask_geometry_nmnl   

PK_ERROR_code_t      PK_EDGE_ask_geometry_nmnl
(
--- 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 nominal geometry of an edge, if present.


If the edge is accurate, this function returns the same information as
PK_EDGE_ask_geometry.

If the edge is tolerant and has a nominal curve attached, then this 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.

The behaviour of this function is independent of whether nominal curves are
currently enabled for the edge's body (see PK_BODY_ask_curve_nmnl_state).

See Interrogating nominal geometry for more information.