PK_FACE_intersect_surf   

PK_ERROR_code_t                   PK_FACE_intersect_surf
(
--- received arguments ---
PK_FACE_t                         face,       --- face
PK_SURF_t                         surf,       --- surface
const PK_FACE_intersect_surf_o_t *options,    --- options structure [PF]

--- returned arguments ---
int                        *const n_vectors,  --- number of point intersections
PK_VECTOR_t               **const vectors,    --- posns of point intersections
int                        *const n_curves,   --- number of intersection curves
PK_CURVE_t                **const curves,     --- intersection curves
PK_INTERVAL_t             **const bounds,     --- bounds of curves
PK_intersect_curve_t      **const types       --- types of intersections
)


PK_FACE_intersect_surf finds the intersections between a face and a surface.

This function offers partial support for facet geometry [PF]


Specific Errors:
    PK_ERROR_bad_option_data    (MILD)    bad option structure data
    PK_ERROR_missing_geom       (MILD)    missing geometry
    PK_ERROR_bad_shared_entity  (MILD)    face and surface from different
                                          bodies
    PK_ERROR_bad_combination    (MILD)    an unsupported combination of facet
                                          and classic geometry has been
                                          supplied
    PK_ERROR_not_on_curve       (SERIOUS) seed vector provided does not lie on
                                          intersection of face and surface
    PK_ERROR_cant_do_intersect  (SERIOUS) intersection cannot be done



 PK_FACE_intersect_surf finds the intersections between a face ('face')
 and a surface ('surface'), returning intersection points ('vectors')
 and curves of intersection ('curves').

 The surface ('surf') must be an orphan or owned by the same body as 'face'.
 If 'surf' is not an orphan any curves will be created as construction
 geometry in the body.

 If 'surf' is an orphan and any of the curves returned are of type
 intersection curve then these curves will refer to 'surf' and a copy
 of the surface of the face.

 No attempt is made to define surface regions of partial coincidence, and
 if the surfaces are fully coincident no intersection data will be returned.

 Currently, curves returned from mixed geometry intersections are always
 polylines.

 The returned points ('vectors') will be returned at points where the surface
 and face make point contact. 'n_vectors' indicates the number of intersection
 points.

 The curves returned ('curves') will be the basis curves of trimmed curves,
 and their corresponding bound in 'bounds',  'n_curves' indicates
 the number of curves returned.

 'types' classifies curves as being either:

      PK_intersect_curve_simple_c : Simple intersection curves
   or PK_intersect_curve_tangent_c: Tangent intersection curves

 For facet geometry PK_intersect_curve_tangent_c is not returned as
 tangent intersections are not detected.