UF_MODL_simpl_data_s (view source)
 
Defined in: uf_modl_types.h
 
Also known as:
 
Overview
The UF_MODL_simpl_data_s structure contains the parametric information used
to define a simplification feature.

When the simplification feature is applied to a body, certain faces are
removed from the body, and the gaps are healed over (creating new faces if
necessary). The faces to be removed are determined as follows:

All faces in the array <retained_faces> are retained.
Any face that can be reached from another retained face without crossing a
boundary edge is retained.
All other faces are removed. NOTE: The interactive Simplify dialog
automatically adds any boundary face to the retained_faces array. This must
be done by the caller of UF_MODL_create_simplify to achieve the same results.

The boundary edges are defined as follows:

All edges in the array <boundary_edges> are boundary edges.
None of the edges in the array <non_boundary_edges> are boundary edges.
All edges of faces in the array <boundary_faces>, except those edges in the
array <non_boundary_edges>, are also boundary edges.
All edges created by imprint features in the array <imprint_features>, except
those edges in the array <non_boundary_edges>, are also boundary edges.
The edges of holes on the body whose diameter is less than the current value
of <max_hole_dia_expression>, except those edges in the array
<non_boundary_edges>, are also boundary edges. (Effectively, such holes are
removed.) A hole is defined to be an inward-pointing full cylindrical face
or an inward-pointing full conical face. To suppress this option, simply
pass in an expression evaluating to 0.0 or less.

The array <removed_faces> can be used to verify the simplification feature.
If any face in it would remain on the solid after the feature were created,
the feature is not actually created and the ifail
UF_MODL_SIMPL_FACE_NOT_REMOVED is returned. This also applies if the feature
is previewed.

The following restrictions apply to simplify parms:
A face may be both a retained face and a boundary face, hence the two arrays
may have elements in common.
A retained or boundary face may not be a removed face.
At least one retained face must be supplied.
All faces must be on the same body.
The <boundary_edges> and the <non_boundary_edges> arrays can have no elements
in common.

In some cases, one or more faces cannot be removed at all, because the
surrounding faces cannot be healed across them, or because this would divide
the body into two or more disjoint pieces. In this case, the ifail
UF_MODL_SIMPL_HEAL_FAILED is returned. These cases cannot be detected by
previewing the simplification, only when it is actually applied.


Data Members

n_retained_faces
int
Number of retained faces

retained_faces
tag_t *
Array of retained faces

n_boundary_faces
int
Number of boundary faces

boundary_faces
tag_t *
Array of boundary faces

n_removed_faces
int
Number of removed faces

removed_faces
tag_t *
Array of removed faces

n_boundary_edges
int
Number of boundary edges

boundary_edges
tag_t *
Array of boundary edges

n_non_boundary_edges
int
Number of non-boundary edges

non_boundary_edges
tag_t *
Array of non-boundary edges

n_imprint_features
int
Number of imprint features
to apply

imprint_features
tag_t *
Array of imprint features
whose edges are to be
boundaries

max_hole_dia_expression
tag_t
Expression for maximum
diameter holes to remove