 |
PK_EDGE_ask_convexity |
|
PK_ERROR_code_t PK_EDGE_ask_convexity
(
--- received arguments ---
PK_EDGE_t edge,
const PK_EDGE_ask_convexity_o_t *options,
--- returned arguments ---
PK_EDGE_convexity_t *convexity
)
The function returns the convexity of the given edge.
Specific Errors:
PK_ERROR_missing_geom Edge or the adjacent faces do not have
geometry. (MILD)
PK_ERROR_non_manifold Edge is non-manifold. (MILD)
PK_ERROR_unsuitable_topology Edge is non suitable e.g laminar edge.(MILD)
PK_ERROR_partial_coi_found Edge convexity cannot be identified due to
partial coincidence of adjacent faces.
(MILD)
PK_ERROR_eval_failure The function has failed to find the
convexity, e.g. due to a failure in finding
the normals. (MILD)
The convexity of an edge is computed from the angle between the normals of the
two faces that meet at the edge and the face curvatures. This requires the
existence of two non-rubber adjacent faces of the edge.
PK_EDGE_ask_convexity distinguishes the following convexities:
- convex : The 'edge' is convex.
- concave : The 'edge' is concave.
- smooth flat : Convexity of the 'edge' is smooth (the surface normals
are parallel) and both faces have zero curvature.
- smooth convex : Convexity of the 'edge' is smooth, and both curvatures
are positive, or one positive curvature and one zero
curvature.
- smooth concave : Convexity of the 'edge' is smooth, and both curvatures
are negative, or one negative curvature and one zero
curvature.
- smooth inflection : Convexity of the 'edge' is smooth, and the curvatures
are opposite in sign.
- smooth variable : Convexity of the 'edge' is smooth, and some parts of
the 'edge' are smooth concave and other parts are
smooth convex.
- knife convex : The surface normals are anti-parallel and the sum of
the curvatures is non-negative.
- knife concave : The surface normals are anti-parallel and the sum of
the curvatures is non-positive.
- variable : The convexity varies along the 'edge'.