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.