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