PK_BODY_fault_t   


typedef int PK_BODY_fault_t;


This type indicates a fault in one of the PK_BODY_create_<body_type>_topology
functions.  In most cases a `fault-index' is also returned which is the
index in the classes array of the faulty entity.

   PK_BODY_fault_t                     Meaning                      fault_index

PK_BODY_fault_bad_body_c        PK_CLASS_body appears in classes      none
                                array but not at the first position
PK_BODY_fault_unknown_c         unknown fault                         none
PK_BODY_fault_unknown_child_c   unknown child                         none
PK_BODY_fault_duplicate_child_c a parent-child relation is repeated   parent
PK_BODY_fault_wrong_child_c     a child is of the wrong class         child
PK_BODY_fault_missing_child_c   a parent has too few children         parent
PK_BODY_fault_extra_child_c     a parent has too many children        parent
PK_BODY_fault_wrong_parent_c    a vertex has edge and loop parents    vertex
PK_BODY_fault_missing_parent_c  a child has too few parents           child
PK_BODY_fault_extra_parent_c    a child has too many parents          child
PK_BODY_fault_bad_wire_c        disconnected wire - in a wire with    none
                                two loops, the loops do not match
PK_BODY_fault_bad_loop_c        the start and end vertices of the     loop
                                edges in a loop, taking sense into
                                account, do not match up
PK_BODY_fault_bad_shells_c      two faces sharing an edge are in      edge
                                different shells
PK_BODY_fault_disjoint_shell_c  the faces in a shell are not all      shell
                                connected
PK_BODY_fault_non_manifold_c    non-manifold vertex                   vertex
PK_BODY_fault_no_fault_c        success - valid topological body      none
                                created

Note that faults are checked for in the order given in the above table, and
only the first fault found is returned.  Thus if a particular fault is
returned, it is known that no faults which precede this in the table are
present.

If an edge is used twice as a child with the same sense
PK_BODY_fault_extra_parent_c is returned.  If an edge is not used with both
senses, PK_BODY_fault_missing_parent_c is returned.

If a loop has a mixture of edges and vertices as children
PK_BODY_fault_wrong_child_c is returned.  If a loop has more than one vertex
as children PK_BODY_fault_extra_child_c is returned.

If a vertex has edges and loops as parents,
PK_BODY_fault_wrong_parent_c is returned.  If a vertex has more than loop as
parent, PK_BODY_fault_extra_parent_c is returned.

If a loop has as children a ring edge (one with zero or one vertices) and
another edge, PK_BODY_fault_bad_loop_c is returned.