PK_BODY_fault_t   

typedef int PK_BODY_fault_t;

Used in:

PK_BODY_create_minimum_topology
PK_BODY_create_sheet_topology
PK_BODY_create_solid_topology
PK_BODY_create_topology
PK_BODY_create_topology_o_t
PK_BODY_create_wire_topology


This type indicates a fault in one of the PK_BODY_create_<body_type>_topology
or PK_BODY_create_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_bad_region_c      the outer region of the body is       region
                                solid
PK_BODY_fault_no_fault_c        success - valid topological body      none
                                created
PK_BODY_fault_bad_fa_sh_rg_c    see "Extra Faults" below              face
PK_BODY_fault_empty_region_c    see "Extra Faults" below              region

Note that for PK_BODY_create_<body_type>_topology the 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.  This is not the case for
PK_BODY_create_topology in which non-manifold topology is allowed to be
created.

The following applies to the PK_BODY_create_<body_type>_topology functions:
    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 one
    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.

    PK_BODY_fault_bad_region_c is not returned by these functions


The following applies to the PK_BODY_create_topology function:
    If a face is used twice with the same sense PK_BODY_fault_extra_parent_c
    is returned.  If a face is not used with both senses,
    PK_BODY_fault_missing_parent_c is returned.

    If an edge has fins in the same face with the same sense, or if an edge
    has more than two fins in the same face, then PK_BODY_fault_extra_parent_c
    is returned.

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

    If a shell has a vertex and a face or an edge, or it has more than one
    vertex then PK_BODY_fault_extra_child_c is returned.

    If a vertex has a shell parent and any other parent then
    PK_BODY_fault_extra_parent_c is returned.

Extra Faults:
The faults:
    PK_BODY_fault_bad_fa_sh_rg_c
    PK_BODY_empty_region_c
are only returned from PK_BODY_create_topology and only if their return has
been requested in the options structure PK_BODY_create_topology_o_t.

PK_BODY_fault_bad_fa_sh_rg_c:  the front shell and back shell of the face
                               are different shells but they belong to the
                               same region.

PK_BODY_fault_empty_region_c:  the region contains no shells and is not the
                               sole region in the body.