B-Rep simplification tool which removes small bodies from the model. More...
#include <cadex/ModelSimplifier_SmallBodiesRemoverTool.hxx>
Public Member Functions | |
ModelSimplifier_SmallBodiesRemoverTool () | |
ModelData_Model | Perform (const ModelData_Model &theSource) const override |
Runs small bodies removal algorithm. Returns the model without the small bodies. | |
double | Threshold () const |
Returns the threshold of body size, below which the body is considered small. | |
void | SetThreshold (double theValue) |
Sets the threshold of body size. See the method above. | |
bool | RemovalIsVisualQualityAware () const |
Returns true if current strategy for removal is visual quality aware. | |
void | SetRemovalIsVisualQualityAware (bool theValue) |
Sets visual quality removal strategy status. See the method above. | |
double | VisualQualityThreshold () const |
Returns the linear threshold, such that a model change smaller than threshold considered acceptable. Used only when VisualQualityAwareRemoval is set to true. | |
void | SetVisualQualityThreshold (double theValue) |
Sets the threshold of body size. See the method above. | |
![]() | |
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. | |
virtual ModelData_Model | Perform (const ModelData_Model &theSource) const =0 |
Performs the simplification algorithm. | |
Additional Inherited Members | |
![]() | |
template<typename T > | |
T * | Impl () const |
B-Rep simplification tool which removes small bodies from the model.
This tool traverses the scene graph and re-creates the model skipping the bodies that were recognized as small. It measures the body size as its axis-aligned bounding box diagonal.
cadex::ModelSimplifier_SmallBodiesRemoverTool::ModelSimplifier_SmallBodiesRemoverTool | ( | ) |
Constructor.
LicenseManager_LicenseError | if no Model Simplifier license was activated. |
|
overridevirtual |
Runs small bodies removal algorithm. Returns the model without the small bodies.
The original model is not modified.
The method can be invoked multiple times with different models.
Implements cadex::ModelSimplifier_SimplifierTool.
bool cadex::ModelSimplifier_SmallBodiesRemoverTool::RemovalIsVisualQualityAware | ( | ) | const |
Returns true if current strategy for removal is visual quality aware.
This strategy removes bodies with AABB diagonal less then Threshold BUT only if their removal would not result in model change more then visual quality threshold.
Default value is true.
double cadex::ModelSimplifier_SmallBodiesRemoverTool::Threshold | ( | ) | const |
Returns the threshold of body size, below which the body is considered small.
Size is measured as the length of the diagonal of an object's axis-aligned bounding box. The threshold is relative to the whole model's size (i.e. the value of 0.1 means all bodies smaller than 10% of the model's size should be removed), therefore the meaningful range of this parameter is [0, 1].
Default value is 0.1, i.e. 10% of model's size.
double cadex::ModelSimplifier_SmallBodiesRemoverTool::VisualQualityThreshold | ( | ) | const |
Returns the linear threshold, such that a model change smaller than threshold considered acceptable. Used only when VisualQualityAwareRemoval is set to true.
Size is measured as smallest extent of an object's axis-aligned bounding box. The threshold is relative to the whole model's size (i.e. the value of 0.1 means all bodies smaller than 10% of the model's smallest extent can be removed), therefore the meaningful range of this parameter is [0, 1].
Default value is 0.06, i.e. 6% of model's size.