Open CASCADE Technology 7.8.0
|
Solid Builder is the algorithm for building solids from set of faces. The given faces should be non-intersecting, i.e. all coinciding parts of the faces should be shared among them. More...
#include <BOPAlgo_BuilderSolid.hxx>
Public Member Functions | |
Constructors | |
BOPAlgo_BuilderSolid () | |
Empty constructor. | |
virtual | ~BOPAlgo_BuilderSolid () |
Empty constructor. | |
BOPAlgo_BuilderSolid (const Handle< NCollection_BaseAllocator > &theAllocator) | |
Constructor with allocator. | |
Performing the operation | |
virtual void | Perform (const Message_ProgressRange &theRange=Message_ProgressRange()) override |
Performs the construction of the solids from the given faces. | |
Getting the bounding boxes of the created solids | |
const TopTools_DataMapOfShapeBox & | GetBoxesMap () const |
For classification purposes the algorithm builds the bounding boxes for all created solids. This method returns the data map of solid - box pairs. | |
Public Member Functions inherited from BOPAlgo_BuilderArea | |
void | SetContext (const Handle< IntTools_Context > &theContext) |
Sets the context for the algorithms. | |
const TopTools_ListOfShape & | Shapes () const |
Returns the input shapes. | |
void | SetShapes (const TopTools_ListOfShape &theLS) |
Sets the shapes for building areas. | |
const TopTools_ListOfShape & | Loops () const |
Returns the found loops. | |
const TopTools_ListOfShape & | Areas () const |
Returns the found areas. | |
void | SetAvoidInternalShapes (const Standard_Boolean theAvoidInternal) |
Defines the preventing of addition of internal parts into result. The default value is FALSE, i.e. the internal parts are added into result. | |
Standard_Boolean | IsAvoidInternalShapes () const |
Returns the AvoidInternalShapes flag. | |
Public Member Functions inherited from BOPAlgo_Options | |
BOPAlgo_Options () | |
Empty constructor. | |
BOPAlgo_Options (const Handle< NCollection_BaseAllocator > &theAllocator) | |
Constructor with allocator. | |
virtual | ~BOPAlgo_Options () |
Destructor. | |
const Handle< NCollection_BaseAllocator > & | Allocator () const |
Returns allocator. | |
virtual void | Clear () |
Clears all warnings and errors, and any data cached by the algorithm. User defined options are not cleared. | |
void | AddError (const Handle< Message_Alert > &theAlert) |
Adds the alert as error (fail) | |
void | AddWarning (const Handle< Message_Alert > &theAlert) |
Adds the alert as warning. | |
Standard_Boolean | HasErrors () const |
Returns true if algorithm has failed. | |
Standard_Boolean | HasError (const Handle< Standard_Type > &theType) const |
Returns true if algorithm has generated error of specified type. | |
Standard_Boolean | HasWarnings () const |
Returns true if algorithm has generated some warning alerts. | |
Standard_Boolean | HasWarning (const Handle< Standard_Type > &theType) const |
Returns true if algorithm has generated warning of specified type. | |
const Handle< Message_Report > & | GetReport () const |
Returns report collecting all errors and warnings. | |
void | DumpErrors (Standard_OStream &theOS) const |
Dumps the error status into the given stream. | |
void | DumpWarnings (Standard_OStream &theOS) const |
Dumps the warning statuses into the given stream. | |
void | ClearWarnings () |
Clears the warnings of the algorithm. | |
void | SetFuzzyValue (const Standard_Real theFuzz) |
Sets the additional tolerance. | |
Standard_Real | FuzzyValue () const |
Returns the additional tolerance. | |
void | SetUseOBB (const Standard_Boolean theUseOBB) |
Enables/Disables the usage of OBB. | |
Standard_Boolean | UseOBB () const |
Returns the flag defining usage of OBB. | |
void | SetRunParallel (const Standard_Boolean theFlag) |
Set the flag of parallel processing if <theFlag> is true the parallel processing is switched on if <theFlag> is false the parallel processing is switched off. | |
Standard_Boolean | RunParallel () const |
Returns the flag of parallel processing. | |
Protected methods performing the operation | |
virtual void | PerformShapesToAvoid (const Message_ProgressRange &theRange) override |
Collect the faces: | |
virtual void | PerformLoops (const Message_ProgressRange &theRange) override |
Build all possible closed shells from the given faces. The method fills the following maps: | |
virtual void | PerformAreas (const Message_ProgressRange &theRange) override |
Classifies the created shells on the Holes and Growths. Creates the solids from the Growths shells. Puts the Hole shells into the closest Growths solids. | |
virtual void | PerformInternalShapes (const Message_ProgressRange &theRange) override |
Classifies the unused faces relatively the created solids. Puts the classified faces into the closest solids as internal shells. Warns the user about unclassified faces if any. | |
Additional Inherited Members | |
Static Public Member Functions inherited from BOPAlgo_Options | |
static Standard_Boolean | GetParallelMode () |
Gets the global parallel mode. | |
static void | SetParallelMode (const Standard_Boolean theNewMode) |
Sets the global parallel mode. | |
Protected Member Functions inherited from BOPAlgo_BuilderArea | |
BOPAlgo_BuilderArea () | |
virtual | ~BOPAlgo_BuilderArea () |
BOPAlgo_BuilderArea (const Handle< NCollection_BaseAllocator > &theAllocator) | |
Protected Member Functions inherited from BOPAlgo_Algo | |
BOPAlgo_Algo () | |
Default constructor. | |
virtual | ~BOPAlgo_Algo () |
BOPAlgo_Algo (const Handle< NCollection_BaseAllocator > &theAllocator) | |
virtual void | CheckData () |
Checks input data. | |
virtual void | CheckResult () |
Checks the obtained result. | |
void | analyzeProgress (const Standard_Real theWhole, BOPAlgo_PISteps &theSteps) const |
Analyze progress steps of the whole operation. | |
virtual void | fillPIConstants (const Standard_Real theWhole, BOPAlgo_PISteps &theSteps) const |
Fills the values for constant operations - the operations having constant relative running time. | |
virtual void | fillPISteps (BOPAlgo_PISteps &theSteps) const |
Fills the values for the operations dependent on the inputs. Filled values may not be normalized to represent percentage of total running time. The values should just correlate to each other. E.g. if progress depends on the number of input shapes, the values may look like this: step1 = number_of_input_vertices; step2 = 2 * number_of_input_edges; step3 = 10 * number_of_input_faces. Normalization of these values will be done automatically in analyzeProgress() method. | |
Protected Member Functions inherited from BOPAlgo_Options | |
Standard_Boolean | UserBreak (const Message_ProgressScope &thePS) |
Adds error to the report if the break signal was caught. Returns true in this case, false otherwise. | |
Protected Attributes inherited from BOPAlgo_BuilderArea | |
Handle< IntTools_Context > | myContext |
TopTools_ListOfShape | myShapes |
TopTools_ListOfShape | myLoops |
TopTools_ListOfShape | myLoopsInternal |
TopTools_ListOfShape | myAreas |
TopTools_IndexedMapOfOrientedShape | myShapesToAvoid |
Standard_Boolean | myAvoidInternalShapes |
Protected Attributes inherited from BOPAlgo_Options | |
Handle< NCollection_BaseAllocator > | myAllocator |
Enables/Disables the usage of OBB. | |
Handle< Message_Report > | myReport |
Enables/Disables the usage of OBB. | |
Standard_Boolean | myRunParallel |
Enables/Disables the usage of OBB. | |
Standard_Real | myFuzzyValue |
Enables/Disables the usage of OBB. | |
Standard_Boolean | myUseOBB |
Enables/Disables the usage of OBB. | |
Solid Builder is the algorithm for building solids from set of faces. The given faces should be non-intersecting, i.e. all coinciding parts of the faces should be shared among them.
The algorithm performs the following steps to build the solids:
It is possible to avoid all internal shells in the resulting solids. For that it is necessary to use the method SetAvoidInternalShapes(true) of the base class. In this case the steps 5 and 6 will not be performed at all.
The algorithm may return the following warnings:
Example of usage of the algorithm:
BOPAlgo_BuilderSolid::BOPAlgo_BuilderSolid | ( | ) |
Empty constructor.
|
virtual |
Empty constructor.
BOPAlgo_BuilderSolid::BOPAlgo_BuilderSolid | ( | const Handle< NCollection_BaseAllocator > & | theAllocator | ) |
Constructor with allocator.
|
inline |
For classification purposes the algorithm builds the bounding boxes for all created solids. This method returns the data map of solid - box pairs.
|
overridevirtual |
Performs the construction of the solids from the given faces.
Implements BOPAlgo_Algo.
|
overrideprotectedvirtual |
Classifies the created shells on the Holes and Growths. Creates the solids from the Growths shells. Puts the Hole shells into the closest Growths solids.
Implements BOPAlgo_BuilderArea.
|
overrideprotectedvirtual |
Classifies the unused faces relatively the created solids. Puts the classified faces into the closest solids as internal shells. Warns the user about unclassified faces if any.
Implements BOPAlgo_BuilderArea.
|
overrideprotectedvirtual |
Build all possible closed shells from the given faces. The method fills the following maps:
Implements BOPAlgo_BuilderArea.
|
overrideprotectedvirtual |
Collect the faces:
Implements BOPAlgo_BuilderArea.