PK_EDGE_euler_open_zip   


PK_ERROR_code_t    PK_EDGE_euler_open_zip
(
--- received arguments ---
PK_EDGE_t          edge,        --- Edge to split
PK_FIN_t           fin,         --- Fin at vertex to split

--- returned arguments ---
PK_VERTEX_t *const new_vertex,  --- New vertex created
PK_EDGE_t   *const new_edge     --- New edge created
)


This function splits an edge lengthwise, replacing it with two edges
joined at one end.


Specific Errors:
    PK_ERROR_edge_not_manifold      edge not manifold
    PK_ERROR_edge_not_open          edge not open
    PK_ERROR_vertex_not_manifold    a vertex of edge is not manifold
    PK_ERROR_no_common_vertex       fin doesn't point to a vertex of edge


edge must be open, manifold and both its vertices must be manifold.  The
forward vertex of fin must be one of the vertices of edge but fin must
not be one of edges fins.

After the operation the forward fin of fin is a fin of edge and the forward
vertex of fin is an original vertex.  The new edge will have the same
direction as the original.

The new edge and vertex will not have any geometry attached and the resulting
body will be invalid.

The inverse of this function is PK_EDGE_euler_close_zip