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