 |
PK_VERTEX_spin |
|
PK_ERROR_code_t PK_VERTEX_spin
(
--- received arguments ---
PK_VERTEX_t vertex, --- end vertex of wire body
const PK_AXIS1_sf_t *axis, --- spin axis
double angle, --- spin angle
PK_LOGICAL_t local_check, --- whether local checking will be done
--- returned arguments ---
PK_EDGE_t *const lateral, --- new edge
PK_VERTEX_t *const base, --- swept vertex
PK_local_check_t *const check_result --- result of local check
)
This function spins an end vertex of a wire body or the sole vertex of a
minimum body into an edge.
Specific Errors:
PK_ERROR_unsuitable_entity Vertex is unsuitable for spin (MILD)
PK_ERROR_wrong_entity Bad arguments (MILD)
PK_ERROR_non_manifold Can't spin vertex with non-manifold boundary
(MILD)
PK_ERROR_bad_angle Bad angle (MILD)
The vertex to be spun is moved along an arc specified by the axis leaving
a lateral edge in its wake resulting in a wire body being produced.
Suitable Spin Entities:
. End vertices (in contradistinction to interior vertices) of wire bodies
. Sole vertex of minimum body
. Spun vertex must not be coincident with the axis of rotation.
Attempting to spin a vertex which is not one of the above will give rise
to the error PK_ERROR_unsuitable_entity.
Permissible Spins:
. A vertex may not be spun through more than 2pi or less than -2pi.
It is not possible to perform full spins (where the angle is 2pi or
-2pi) on end vertices of a wire.
After a spin any coincident topology will not be fused or united.
In general this procedure may give rise to self-intersecting body
boundaries, which could cause unpredictable errors later.
If local checking 'local_check' is PK_LOGICAL_true, consistency checks will be
made on newly created topological and geometrical entities, and the state
of the body returned in 'check_result'. A result of 'PK_local_check_ok_c'
indicates the body is valid. A result of 'PK_local_check_failed_c' indicates
the body is self-intersecting and further modelling operations on it may fail.
If 'local_check' is PK_LOGICAL_false, local checking will be switched off and
the result returned will be 'PK_local_check_no_c'.
A self-intersecting body can be returned.