PK_EDGE_euler_delete_make_loop   

PK_ERROR_code_t  PK_EDGE_euler_delete_make_loop
(
--- received arguments ---
PK_EDGE_t        edge,      --- Edge to be deleted
PK_LOGICAL_t     forward,   --- Forward vertex connects to new loop

--- returned arguments ---
PK_LOOP_t *const new_loop   --- New loop created
)


This function deletes an edge from a loop splitting it into two loops.


Specific Errors:
    PK_ERROR_edge_not_manifold    'edge' is not manifold (MILD)
    PK_ERROR_edge_not_open        'edge' is not open (MILD)
    PK_ERROR_different_loops      'edge' does not have same loop on both sides
                                  (MILD)


This function deletes an edge creating a new loop.  'edge' must be open and
manifold and have the same loop on both sides.  If 'forward' is PK_LOGICAL_true
then the forward vertex of 'edge' will be connected to the new loop, otherwise
the backwards vertex will connect to 'new_loop'.  If 'edge' is the only edge
connected to either vertex, then that vertex will become isolated as a result.

The geometry of the edge will be deleted and the resulting body will normally
be invalid.

The inverse of this function is PK_LOOP_euler_delete_make_edge.

See the here for an illustration.