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.

See here for an illustration.