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.