 |
PK_TOPOL_identify_redundant_o_t |
|
struct PK_TOPOL_identify_redundant_o_s
{
int o_t_version; --- version number of options
--- structure
PK_TOPOL_dimension_t max_topol_dimension; --- controls which topologies or
--- sub-topologies of the input
--- may be regarded as redundant
--- (PK_TOPOL_dimension_any_c)
PK_redundant_merge_t scope; --- controls the scope of the
--- search for redundant topology
--- (PK_redundant_merge_on_c)
PK_LOGICAL_t want_redundant_topols; --- whether redundant topols
--- are returned
--- (PK_LOGICAL_true)
PK_redundant_propagate_t
propagate_redundancy; --- whether redundancy
--- is propagated
--- (PK_redundant_propagate_no_c)
PK_continuity_t facet_geom_continuity; --- level of geometric continuity
--- between adjacent facet
--- geometries that is necessary
--- for topology to be considered
--- redundant
--- (PK_continuity_g0_c)
PK_LOGICAL_t have_vertex_angle; --- whether a 'vertex_angle'
--- value has been supplied
--- (PK_LOGICAL_false)
double vertex_angle; --- angle used to decide whether
--- a vertex between two polyline
--- edges is smooth.
};
typedef struct PK_TOPOL_identify_redundant_o_s
PK_TOPOL_identify_redundant_o_t;
Holds optional controls for identifying redundant topologies.
Used in:
PK_TOPOL_identify_redundant
max_topol_dimension : Specifies what type of topologies should be considered
for redundancy. A maximum dimension of
PK_TOPOL_dimension_0_c will consider vertices only;
one of PK_TOPOL_dimension_1_c will consider edges or
vertices. A maximum dimension of
PK_TOPOL_dimension_any_c will consider all topologies
of dimensionality equal to or less than the the
dimensionality of the supplied 'topols'; this is the
default.
The 'max_topol_dimension' must not be higher than the
dimension of the supplied 'topols'
scope : Specifies how the (sub)topologies forming the external
boundaries to the input topological set are treated.
want_redundant_topols : Specifies whether redundant topologies are returned.
If the value is PK_LOGICAL_false, only the number of
topologies is returned.
propagate_redundancy : Specifies whether to return additional topologies
which only become redundant when other redundant
topologies are removed.
If the value is PK_redundant_propagate_yes_c,
independent and dependent redundant topologies will be
returned, otherwise only independent redundant
topologies will be returned.
facet_geom_continuity : The level of geometric continuity between adjacent
facet geometries that is necessary for topology to
be considered redundant. It can take the values:
o PK_continuity_g0_c
All manifold non-laminar edges between, or wire
edges in, faces with mesh surfaces are considered
redundant. Similarly all manifold vertices between,
or on, edges with pline curves are considered
redundant unless there are more than two
non-redundant edges meeting at them. This is the
default.
o PK_continuity_g1_c
An edge on a facet body will be considered
redundant only if the mvertices lying along it
will not become sharp when the edge is removed.
A vertex between two polyline edges is considered
for redundancy only if either edge belongs to the
g1 edge chain of the other (this can be tested
by calling PK_EDGE_find_g1_edges with its
'tolerance' set to the same value as the desired
'vertex_angle').
have_vertex_angle : Whether a 'vertex_angle' has been supplied.
vertex_angle : The angle to which the 'tolerance' should be set in
PK_EDGE_find_g1_edges in order to determine whether
a vertex between two polyline edges will be considered
for redundancy. Increasing the 'vertex_angle' will
typically increase the number of vertices which are
considered redundant.