Hide menu
cadex::ModelSimplifier_InternalFacesRemoverTool Class Reference

B-Rep simplification tool which removes internal faces from the model. More...

Inheritance diagram for cadex::ModelSimplifier_InternalFacesRemoverTool:
cadex::ModelSimplifier_SimplifierTool

Public Member Functions

 ModelSimplifier_InternalFacesRemoverTool ()
 
ModelData_Model Perform (const ModelData_Model &theSource) const override
 Runs the internal faces removal algorithm and returns the model without internal faces. More...
 
double AngularTolerance () const
 Returns angular tolerance. More...
 
void SetAngularTolerance (double theValue)
 Sets angular tolerance. See the method above.
 
double LinearTolerance () const
 Returns linear tolerance. More...
 
void SetLinearTolerance (double theValue)
 Sets linear tolerance. See the method above.
 
bool IsLinearToleranceRelative () const
 
void SetIsLinearToleranceRelative (bool theValue)
 Sets the flag specifying whether linear tolerance is relative. See the method above.
 
bool PreserveSharing () const
 
void SetPreserveSharing (bool theValue)
 Sets the flag specifying whether processing should preserve shared faces. See the method above.
 
- Public Member Functions inherited from cadex::ModelSimplifier_SimplifierTool
 ModelSimplifier_SimplifierTool (const std::shared_ptr< internal::ModelSimplifierImpl_SimplifierTool > &theImpl)
 
void SetShapePredicate (const std::shared_ptr< ModelSimplifier_ShapePredicate > &theShapePredicate)
 Sets what shapes can be split during simplification and what shapes can be simplified.
 

Additional Inherited Members

- Protected Member Functions inherited from cadex::ModelSimplifier_SimplifierTool
template<typename T >
T * Impl () const
 

Detailed Description

B-Rep simplification tool which removes internal faces from the model.

Warning
This class is a part of Model Simplification add-on, which is licensed separately from the base CAD Exchanger SDK.

This tool traverses the scene graph and re-creates the model skipping the faces that were recognized as internal (i.e. invisible from almost any angle). It leaves only visible faces in the partially visible bodies, it removes fully hidden bodies.

The changes propagate up the tree as well, i.e. if all the part's bodies were removed, the part is removed as well. If all of assembly's children were removed, the assembly is also removed.

The tool is parameterized by the angular and linear tolerance, describing the hypothetical distribution of viewing angles against which the faces of the model are tested.

Constructor & Destructor Documentation

◆ ModelSimplifier_InternalFacesRemoverTool()

cadex::ModelSimplifier_InternalFacesRemoverTool::ModelSimplifier_InternalFacesRemoverTool ( )

Constructor.

Exceptions
LicenseManager_LicenseErrorif no Model Simplifier license was activated.

Member Function Documentation

◆ AngularTolerance()

double cadex::ModelSimplifier_InternalFacesRemoverTool::AngularTolerance ( ) const

Returns angular tolerance.

Angular tolerance is the maximum value of angle between two viewing directions that can be considered indistinguishable. The units are radians; acceptable range of values is (0, pi).

Smaller values allow for higher precision in determining whether the face is internal or not but diminish performance.

Default value is 0.28.

◆ IsLinearToleranceRelative()

bool cadex::ModelSimplifier_InternalFacesRemoverTool::IsLinearToleranceRelative ( ) const

Returns the flag specifying whether the linear tolerance should be regarded as an absolute measure or a measure relative to the size of the model's axis-aligned bounding box.

Default value is true.

◆ LinearTolerance()

double cadex::ModelSimplifier_InternalFacesRemoverTool::LinearTolerance ( ) const

Returns linear tolerance.

Linear tolerance is the maximum distance between two points on the surface of the model that can be considered indistinguishable. The value is either unitless or is measured in millimeters (depending on the value of IsLinearToleranceRelative).

Smaller values allow for higher precision in determining whether the face is internal or not but diminish performance.

Default value is 0.01, corresponding to 1% of the model's axis-aligned bounding box diagonal.

◆ Perform()

ModelData_Model cadex::ModelSimplifier_InternalFacesRemoverTool::Perform ( const ModelData_Model theSource) const
overridevirtual

Runs the internal faces removal algorithm and returns the model without internal faces.

The original model is not modified.

The method can be invoked multiple times with different models.

Implements cadex::ModelSimplifier_SimplifierTool.

◆ PreserveSharing()

bool cadex::ModelSimplifier_InternalFacesRemoverTool::PreserveSharing ( ) const

Returns the flag specifying whether the processing would work on all shared parts simultaneously , deleting only faces that are invisible in all instances of shared face.

Default value is true.