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.