 |
PK_VERTEX_sweep |
|
PK_ERROR_code_t PK_VERTEX_sweep
(
--- received arguments ---
PK_VERTEX_t vertex, --- end vertex of wire body
PK_VECTOR_t path, --- translation vector
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 sweeps 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 sweep (MILD)
PK_ERROR_wrong_entity Bad arguments (MILD)
PK_ERROR_non_manifold Can't sweep body with non-manifold
boundary (MILD)
The vertex to be swept is moved along the path vector leaving a lateral
edge in its wake. Vertexes which may be swept, the laterals they produce
and the type of the resulting body are identified in the following table.
Swept Entities | Laterals Returned | Result
===========================================================================
| |
End vertex of wire body | One edge | Wire body
| |
Vertex of minimum body | One edge | Wire body
| |
===========================================================================
The new edge returned 'lateral' and the given vertex is returned in 'base'.
Suitable Sweep Entities:
. End vertices (in contradistinction to interior vertices) of wires.
. Sole vertex of a minimum body.
Attempting to sweep an entity which is not one of the above will give rise
to the error PK_ERROR_unsuitable_entity.
After a sweep 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 is switched on ('local_check' = 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 checking is switched off ('local_check' = PK_LOGICAL_false), the
result returned will be 'PK_local_check_no_c'.
A self-intersecting body can be returned.