PK_EDGE_euler_slit   

PK_ERROR_code_t  PK_EDGE_euler_slit
(
--- received arguments ---
PK_EDGE_t        edge,      --- Edge to be slit
PK_LOGICAL_t     on_left,   --- New face is on left of edge

--- returned arguments ---
PK_FACE_t *const new_face,  --- New face created by slit
PK_EDGE_t *const new_edge   --- New edge created by slit
)


This function replaces an edge by a 2-edge face.


Specific Errors:
    PK_ERROR_edge_not_manifold    'edge' is not manifold or laminar  (MILD)
    PK_ERROR_not_laminar_side     attempt to slit wrong side of laminar edge
                                  (MILD)


This function slits 'edge' lengthwise, creating a new slit face. The
'on_left' argument specifies whether 'new_face' will lie on the left
or right side of the given edge. 'edge' must be manifold or laminar.

'new_face' will not have any geometry attached and the resulting
body will be invalid.

'new_edge' will have the same direction as 'edge'.

'new_edge' will not have any geometry attached.  However, if 'edge' is
tolerant then the curves attached to its fins are retained. These fins
remain in their loops.

If 'edge' is laminar then 'on_left' must specify that 'new_face' lies on
the laminar side of 'edge'. 'edge' will become manifold and 'new_edge'
will be laminar.

If 'edge' is a ring edge, 'new_face' will have two loops.

The inverse to this function is PK_FACE_euler_unslit.

See here for an illustration.