 |
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.