 |
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.