PK_BODY_identify_general   

PK_ERROR_code_t                     PK_BODY_identify_general
(
--- received arguments ---
PK_BODY_t                           body,     --- body to search
const PK_BODY_identify_general_o_t *options,  --- options

--- returned arguments ---
PK_identify_general_r_t      *const results    --- identify results
)


This function identifies characteristics of a general body which require it to
be of type PK_BODY_type_general_c.


Specific Errors:
    PK_ERROR_not_general              (MILD) body is not a general body



In each case a token and associated topological entity are returned. The
possible returns are as follows :

'type'                       |    'topol'        |  meaning
---------------------------------------------------------------------
PK_general_nm_edge_c         |  edge             | edge is non-manifold
PK_general_nm_vertex_c       |  vertex           | vertex is non-manifold
PK_general_opposed_faces_c   |  edge             | edge has two faces with
                             |                   | opposite normals
PK_general_solid_internal_c  |  face             | face has solid regions on
                             |                   | both sides
PK_general_mixed_dimension_c |  region           | Body has components of
                             |                   | different dimension
PK_general_wire_in_solid_c   |  edge             | Wire-frame edge is inside
                                                 | a solid region

The dimension of a component is the highest dimension present, so a component
with only wires is dimension one, one with sheets and wires is dimension two
and so on. In the case that PK_general_mixed_dimension_c is returned then the
corresponding region is a void region of the body separating different
dimension components.

The function works from higher dimension down and may not return lower
dimension characteristics associated with a higher dimension general condition
- so for example an internal face dividing a solid cube into two would be
returned, but its edges would not be returned as non-manifold edges.

If the function returns no general characteristics, i.e. n_general is zero,
then the body does not have to be general and a call to
PK_BODY_make_manifold_bodies will set it to be of the correct manifold type.