
PK_LOOP_euler_delete_make_edge
PK_ERROR_code_t PK_LOOP_euler_delete_make_edge
(
--- received arguments ---
PK_LOOP_t loop1, --- Loop of fin1
PK_FIN_t fin1, --- Fin at first vertex to join
PK_LOOP_t loop2, --- Loop of fin2
PK_FIN_t fin2, --- Fin at second vertex to join
--- returned arguments ---
PK_EDGE_t *const new_edge
)
This function merges two loops in the same face into one by joining their
vertices with an edge.
Specific Errors:
PK_ERROR_fin_not_in_loop a fin is not in its respective loop
PK_ERROR_loops_not_same_face loop1 and loop2 are not in the
same face
PK_ERROR_loops_not_distinct loop1 and loop2 are the same
PK_ERROR_edge_is_ring loop1 or loop2 has no vertex
PK_ERROR_loop_not_isolated a loop is isolated but fin is not
PK_ENTITY_null
This function joins two vertices in different loops of the same face with an
edge. After the operation, the forward fins of fin1 and fin2 will be the
fins of the new edge, loop1 will survive and loop2 will be deleted.
loop1 may be isolated in which case fin1 must be PK_ENTITY_null. Similarly
loop2 may also be isolated in which case fin2 must be PK_ENTITY_null.
fin1 and fin2 may share a vertex or an edge.
new_edge will not have any geometry attached and so the result of this
operation will be an invalid body.
The inverse of this function is PK_EDGE_euler_delete_make_loop.