 |
PK_BODY_simplify_geom |
|
PK_ERROR_code_t PK_BODY_simplify_geom
(
--- received arguments ---
PK_BODY_t body, --- body
PK_LOGICAL_t local, --- whether partial replacement allowed
--- returned arguments ---
int *const n_geoms, --- number of geoms returned
PK_GEOM_t **const geoms --- new geoms (optional)
)
This function simplifies the classic geometry of a body where possible.
This function takes a body and attempts to simplify its free form, classic
geometry. The body itself, and topological nodes in the body are not affected;
the geometric ones may be replaced by simpler geometries, and the old
geometries deleted. The number of new geometric entities is returned in
'n_geoms'. The new geometric entities may be returned in 'geoms'.
The output array 'geoms' is optional. If it is set to NULL, the function
will only return the number of new geometries in the body.
Two levels of simplification are available:
o local = PK_LOGICAL_false - Global simplification
A B-curve or B-surface will only be replaced if a single
curve or surface can replace the entire original.
o local = PK_LOGICAL_true - Local simplification
A B-curve or B-surface may be partially replaced by simpler
curves or surfaces. A side effect of this is that edges or faces
that were originally on the same B-curve or B-surface, may
be on different curves or surfaces after the simplification
The following simplifications may be made on curves:
original form simplified form
------------- ---------------
Rational B-curve Non-rational B-curve, line, circle
Non-rational B-curve line
The following simplifications may be made on surfaces:
original form simplified form
------------- ---------------
Rational B-surface Non-rational B-surface, plane, cylinder, cone,
sphere, torus
Non-rational B-surface plane