![]() |
Open CASCADE Technology Reference Manual 8.0.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 | |
Empty constructor | |
| BOPAlgo_BuilderSolid () | |
| Constructor with allocator. | |
| ~BOPAlgo_BuilderSolid () override | |
| Constructor with allocator. | |
| BOPAlgo_BuilderSolid (const occ::handle< NCollection_BaseAllocator > &theAllocator) | |
| Constructor with allocator. | |
Performing the operation | |
Performs the construction of the solids from the given faces | |
| void | Perform (const Message_ProgressRange &theRange=Message_ProgressRange()) override |
| The main method to implement the operation Providing the range allows to enable Progress indicator User break functionalities. | |
Getting the bounding boxes of the created solids | |
For classification purposes the algorithm builds the bounding boxes for all created solids. This method returns the data map of solid - box pairs. | |
| const NCollection_DataMap< TopoDS_Shape, Bnd_Box, TopTools_ShapeMapHasher > & | GetBoxesMap () const |
Public Member Functions inherited from BOPAlgo_BuilderArea | |
| void | SetContext (const occ::handle< IntTools_Context > &theContext) |
| Sets the context for the algorithms. | |
| const NCollection_List< TopoDS_Shape > & | Shapes () const |
| Returns the input shapes. | |
| void | SetShapes (const NCollection_List< TopoDS_Shape > &theLS) |
| Sets the shapes for building areas. | |
| const NCollection_List< TopoDS_Shape > & | Loops () const |
| Returns the found loops. | |
| const NCollection_List< TopoDS_Shape > & | Areas () const |
| Returns the found areas. | |
| void | SetAvoidInternalShapes (const bool 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. | |
| bool | IsAvoidInternalShapes () const |
| Returns the AvoidInternalShapes flag. | |
Public Member Functions inherited from BOPAlgo_Options | |
| BOPAlgo_Options () | |
| Empty constructor. | |
| BOPAlgo_Options (const occ::handle< NCollection_BaseAllocator > &theAllocator) | |
| Constructor with allocator. | |
| virtual | ~BOPAlgo_Options () |
| Destructor. | |
| const occ::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 occ::handle< Message_Alert > &theAlert) |
| Adds the alert as error (fail) | |
| void | AddWarning (const occ::handle< Message_Alert > &theAlert) |
| Adds the alert as warning. | |
| bool | HasErrors () const |
| Returns true if algorithm has failed. | |
| bool | HasError (const occ::handle< Standard_Type > &theType) const |
| Returns true if algorithm has generated error of specified type. | |
| bool | HasWarnings () const |
| Returns true if algorithm has generated some warning alerts. | |
| bool | HasWarning (const occ::handle< Standard_Type > &theType) const |
| Returns true if algorithm has generated warning of specified type. | |
| const occ::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 double theFuzz) |
| Sets the additional tolerance. | |
| double | FuzzyValue () const |
| Returns the additional tolerance. | |
| void | SetUseOBB (const bool theUseOBB) |
| Enables/Disables the usage of OBB. | |
| bool | UseOBB () const |
| Returns the flag defining usage of OBB. | |
| void | SetRunParallel (const bool 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. | |
| bool | RunParallel () const |
| Returns the flag of parallel processing. | |
Protected methods performing the operation | |
Collect the faces:
| |
| void | PerformShapesToAvoid (const Message_ProgressRange &theRange) override |
| Build all possible closed shells from the given faces. The method fills the following maps: | |
| void | PerformLoops (const Message_ProgressRange &theRange) override |
| Build all possible closed shells from the given faces. The method fills the following maps: | |
| 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. | |
| 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 bool | GetParallelMode () |
| Gets the global parallel mode. | |
| static void | SetParallelMode (const bool theNewMode) |
| Sets the global parallel mode. | |
Protected Member Functions inherited from BOPAlgo_BuilderArea | |
| BOPAlgo_BuilderArea () | |
| ~BOPAlgo_BuilderArea () override | |
| BOPAlgo_BuilderArea (const occ::handle< NCollection_BaseAllocator > &theAllocator) | |
Protected Member Functions inherited from BOPAlgo_Algo | |
| BOPAlgo_Algo () | |
| Default constructor. | |
| ~BOPAlgo_Algo () override | |
| BOPAlgo_Algo (const occ::handle< NCollection_BaseAllocator > &theAllocator) | |
| virtual void | CheckData () |
| Checks input data. | |
| virtual void | CheckResult () |
| Checks the obtained result. | |
| void | analyzeProgress (const double theWhole, BOPAlgo_PISteps &theSteps) const |
| Fills the values for constant operations - the operations having constant relative running time. | |
| virtual void | fillPIConstants (const double 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 | |
| bool | 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 | |
| occ::handle< IntTools_Context > | myContext |
| NCollection_List< TopoDS_Shape > | myShapes |
| NCollection_List< TopoDS_Shape > | myLoops |
| NCollection_List< TopoDS_Shape > | myLoopsInternal |
| NCollection_List< TopoDS_Shape > | myAreas |
| NCollection_IndexedMap< TopoDS_Shape > | myShapesToAvoid |
| bool | myAvoidInternalShapes |
Protected Attributes inherited from BOPAlgo_Options | |
| occ::handle< NCollection_BaseAllocator > | myAllocator |
| Enables/Disables the usage of OBB. | |
| occ::handle< Message_Report > | myReport |
| Enables/Disables the usage of OBB. | |
| bool | myRunParallel |
| Enables/Disables the usage of OBB. | |
| double | myFuzzyValue |
| Enables/Disables the usage of OBB. | |
| bool | 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 | ( | ) |
Constructor with allocator.
|
override |
Constructor with allocator.
| BOPAlgo_BuilderSolid::BOPAlgo_BuilderSolid | ( | const occ::handle< NCollection_BaseAllocator > & | theAllocator | ) |
Constructor with allocator.
|
inline |
|
overridevirtual |
The main method to implement the operation Providing the range allows to enable Progress indicator User break functionalities.
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 |
Build all possible closed shells from the given faces. The method fills the following maps:
Implements BOPAlgo_BuilderArea.