Open CASCADE Technology
7.3.0
|
The class is a General Fuse algorithm - base algorithm for the algorithms in the Boolean Component. Its main purpose is to build the split parts of the argument shapes from which the result of the operations is combined.
The result of the General Fuse algorithm itself is a compound containing all split parts of the arguments.
More...
#include <BOPAlgo_Builder.hxx>
Public Member Functions | |
BOPAlgo_Builder () | |
Empty constructor. More... | |
virtual | ~BOPAlgo_Builder () |
BOPAlgo_Builder (const Handle< NCollection_BaseAllocator > &theAllocator) | |
virtual void | Clear () override |
Clears the content of the algorithm. More... | |
BOPAlgo_PPaveFiller | PPaveFiller () |
Returns the PaveFiller, algorithm for sub-shapes intersection. More... | |
BOPDS_PDS | PDS () |
Returns the Data Structure, holder of intersection information. More... | |
Handle< IntTools_Context > | Context () const |
Returns the Context, tool for cashing heavy algorithms. More... | |
Arguments | |
virtual void | AddArgument (const TopoDS_Shape &theShape) |
Adds the argument to the operation. More... | |
virtual void | SetArguments (const TopTools_ListOfShape &theLS) |
Sets the list of arguments for the operation. More... | |
const TopTools_ListOfShape & | Arguments () const |
Returns the list of arguments. More... | |
Options | |
void | SetNonDestructive (const Standard_Boolean theFlag) |
Sets the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated. This flag is taken into account if internal PaveFiller is used only. In the case of calling PerformWithFiller the corresponding flag of that PaveFiller is in force. More... | |
Standard_Boolean | NonDestructive () const |
Returns the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated. More... | |
void | SetGlue (const BOPAlgo_GlueEnum theGlue) |
Sets the glue option for the algorithm. More... | |
BOPAlgo_GlueEnum | Glue () const |
Returns the glue option of the algorithm. More... | |
void | SetCheckInverted (const Standard_Boolean theCheck) |
Enables/Disables the check of the input solids for inverted status. More... | |
Standard_Boolean | CheckInverted () const |
Returns the flag defining whether the check for input solids on inverted status should be performed or not. More... | |
Performing the operation | |
virtual void | Perform () override |
Performs the operation. The intersection will be performed also. More... | |
virtual void | PerformWithFiller (const BOPAlgo_PaveFiller &theFiller) |
Performs the operation with the prepared filler. The intersection will not be performed in this case. More... | |
Images/Origins | |
const TopTools_DataMapOfShapeListOfShape & | Images () const |
Returns the map of images. More... | |
const TopTools_DataMapOfShapeListOfShape & | Origins () const |
Returns the map of origins. More... | |
const TopTools_DataMapOfShapeShape & | ShapesSD () const |
Returns the map of Same Domain (SD) shapes - coinciding shapes from different arguments. More... | |
Public Member Functions inherited from BOPAlgo_BuilderShape | |
const TopoDS_Shape & | Shape () const |
Returns the result of algorithm. More... | |
Standard_Boolean | HasDeleted () const |
Returns true if the at least one shape(or subshape) of arguments has been deleted. More... | |
Standard_Boolean | HasGenerated () const |
Returns true if the at least one shape(or subshape) of arguments has generated shapes. More... | |
Standard_Boolean | HasModified () const |
Returns true if the at least one shape(or subshape) of arguments has modified shapes. More... | |
const TopTools_IndexedDataMapOfShapeListOfShape & | ImagesResult () const |
Public Member Functions inherited from BOPAlgo_Options | |
BOPAlgo_Options () | |
Empty constructor. More... | |
BOPAlgo_Options (const Handle< NCollection_BaseAllocator > &theAllocator) | |
Constructor with allocator. More... | |
virtual | ~BOPAlgo_Options () |
Destructor. More... | |
const Handle< NCollection_BaseAllocator > & | Allocator () const |
Returns allocator. More... | |
void | AddError (const Handle< Message_Alert > &theAlert) |
Adds the alert as error (fail) More... | |
void | AddWarning (const Handle< Message_Alert > &theAlert) |
Adds the alert as warning. More... | |
Standard_Boolean | HasErrors () const |
Returns true if algorithm has failed. More... | |
Standard_Boolean | HasError (const Handle< Standard_Type > &theType) const |
Returns true if algorithm has generated error of specified type. More... | |
Standard_Boolean | HasWarnings () const |
Returns true if algorithm has generated some warning alerts. More... | |
Standard_Boolean | HasWarning (const Handle< Standard_Type > &theType) const |
Returns true if algorithm has generated warning of specified type. More... | |
const Handle< Message_Report > & | GetReport () const |
Returns report collecting all errors and warnings. More... | |
void | DumpErrors (Standard_OStream &theOS) const |
Dumps the error status into the given stream. More... | |
void | DumpWarnings (Standard_OStream &theOS) const |
Dumps the warning statuses into the given stream. More... | |
void | ClearWarnings () |
Clears the warnings of the algorithm. More... | |
void | SetFuzzyValue (const Standard_Real theFuzz) |
Sets the additional tolerance. More... | |
Standard_Real | FuzzyValue () const |
Returns the additional tolerance. More... | |
void | SetProgressIndicator (const Handle< Message_ProgressIndicator > &theObj) |
Set the Progress Indicator object. More... | |
void | SetUseOBB (const Standard_Boolean theUseOBB) |
Enables/Disables the usage of OBB. More... | |
Standard_Boolean | UseOBB () const |
Returns the flag defining usage of OBB. More... | |
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. More... | |
Standard_Boolean | RunParallel () const |
Returns the flag of parallel processing. More... | |
Protected Member Functions | |
Methods for building the result | |
virtual void | PerformInternal (const BOPAlgo_PaveFiller &thePF) |
Performs the building of the result. The method calls the PerfromInternal1() method surrounded by a try-catch block. More... | |
virtual void | PerformInternal1 (const BOPAlgo_PaveFiller &thePF) |
Performs the building of the result. To build the result of any other operation it will be necessary to override this method. More... | |
virtual void | BuildResult (const TopAbs_ShapeEnum theType) |
Builds the result of operation. The method is called for each of the arguments type and adds into the result the splits of the arguments of that type. More... | |
Checking input arguments | |
virtual void | CheckData () override |
Checks the input data. More... | |
void | CheckFiller () |
Checks if the intersection algorithm has Errors/Warnings. More... | |
virtual void | Prepare () |
Prepares the result shape by making it empty compound. More... | |
Fill Images of VERTICES | |
void | FillImagesVertices () |
Fills the images of vertices. More... | |
Fill Images of EDGES | |
void | FillImagesEdges () |
Fills the images of edges. More... | |
Fill Images of CONTAINERS | |
void | FillImagesContainers (const TopAbs_ShapeEnum theType) |
Fills the images of containers (WIRES/SHELLS/COMPSOLID). More... | |
void | FillImagesContainer (const TopoDS_Shape &theS, const TopAbs_ShapeEnum theType) |
Builds the image of the given container using the splits of its sub-shapes. More... | |
Fill Images of FACES | |
void | FillImagesFaces () |
Fills the images of faces. The method consists of three steps: More... | |
virtual void | BuildSplitFaces () |
Builds the splits of faces using the information from the intersection stage stored in Data Structure. More... | |
void | FillSameDomainFaces () |
Looks for the same domain faces among the splits of the faces. Updates the map of images with SD faces. More... | |
void | FillInternalVertices () |
Classifies the alone vertices on faces relatively its splits and adds them as INTERNAL into the splits. More... | |
Fill Images of SOLIDS | |
void | FillImagesSolids () |
Fills the images of solids. The method consists of four steps: More... | |
void | BuildDraftSolid (const TopoDS_Shape &theSolid, TopoDS_Shape &theDraftSolid, TopTools_ListOfShape &theLIF) |
Builds the draft solid by rebuilding the shells of the solid with the splits of faces. More... | |
virtual void | FillIn3DParts (TopTools_DataMapOfShapeListOfShape &theInParts, TopTools_DataMapOfShapeShape &theDraftSolids, const Handle< NCollection_BaseAllocator > &theAllocator) |
Finds faces located inside each solid. More... | |
void | BuildSplitSolids (TopTools_DataMapOfShapeListOfShape &theInParts, TopTools_DataMapOfShapeShape &theDraftSolids, const Handle< NCollection_BaseAllocator > &theAllocator) |
Builds the splits of the solids using their draft versions and faces located inside. More... | |
void | FillInternalShapes () |
Classifies the vertices and edges from the arguments relatively splits of solids and makes them INTERNAL for solids. More... | |
Fill Images of COMPOUNDS | |
void | FillImagesCompounds () |
Fills the images of compounds. More... | |
void | FillImagesCompound (const TopoDS_Shape &theS, TopTools_MapOfShape &theMF) |
Builds the image of the given compound. More... | |
Post treatment | |
virtual void | PostTreat () |
Post treatment of the result of the operation. The method checks validity of the sub-shapes of the result and updates the tolerances to make them valid. More... | |
Protected Member Functions inherited from BOPAlgo_BuilderShape | |
BOPAlgo_BuilderShape () | |
virtual | ~BOPAlgo_BuilderShape () |
BOPAlgo_BuilderShape (const Handle< NCollection_BaseAllocator > &theAllocator) | |
Protected Member Functions inherited from BOPAlgo_Algo | |
BOPAlgo_Algo () | |
Default constructor. More... | |
virtual | ~BOPAlgo_Algo () |
BOPAlgo_Algo (const Handle< NCollection_BaseAllocator > &theAllocator) | |
virtual void | CheckResult () |
Checks the obtained result. More... | |
Protected Member Functions inherited from BOPAlgo_Options | |
void | UserBreak () const |
Breaks the execution if the break signal is indicated by myProgressIndicator. More... | |
Protected Attributes | |
Fields | |
TopTools_ListOfShape | myArguments |
Arguments of the operation. More... | |
TopTools_MapOfShape | myMapFence |
Fence map providing the uniqueness of the shapes in the list of arguments. More... | |
BOPAlgo_PPaveFiller | myPaveFiller |
Pave Filler - algorithm for sub-shapes intersection. More... | |
BOPDS_PDS | myDS |
Data Structure - holder of intersection information. More... | |
Handle< IntTools_Context > | myContext |
Context - tool for cashing heavy algorithms such as Projectors and Classifiers. More... | |
Standard_Integer | myEntryPoint |
EntryPoint - controls the deletion of the PaveFiller, which could live longer than the Builder. More... | |
TopTools_DataMapOfShapeListOfShape | myImages |
Images - map of Images of the sub-shapes of arguments. More... | |
TopTools_DataMapOfShapeShape | myShapesSD |
ShapesSD - map of SD Shapes. More... | |
TopTools_DataMapOfShapeListOfShape | myOrigins |
Origins - map of Origins, back map of Images. More... | |
Standard_Boolean | myNonDestructive |
Safe processing option allows avoiding modification of the input shapes. More... | |
BOPAlgo_GlueEnum | myGlue |
Gluing option allows speeding up the intersection of the input shapes. More... | |
Standard_Boolean | myCheckInverted |
Check inverted option allows disabling the check of input solids on inverted status. More... | |
Protected Attributes inherited from BOPAlgo_BuilderShape | |
TopoDS_Shape | myShape |
TopTools_ListOfShape | myHistShapes |
TopTools_MapOfShape | myMapShape |
Standard_Boolean | myHasDeleted |
Standard_Boolean | myHasGenerated |
Standard_Boolean | myHasModified |
TopTools_IndexedDataMapOfShapeListOfShape | myImagesResult |
Standard_Boolean | myFlagHistory |
Protected Attributes inherited from BOPAlgo_Options | |
Handle< NCollection_BaseAllocator > | myAllocator |
Enables/Disables the usage of OBB. More... | |
Handle< Message_Report > | myReport |
Enables/Disables the usage of OBB. More... | |
Standard_Boolean | myRunParallel |
Enables/Disables the usage of OBB. More... | |
Standard_Real | myFuzzyValue |
Enables/Disables the usage of OBB. More... | |
Handle< Message_ProgressIndicator > | myProgressIndicator |
Enables/Disables the usage of OBB. More... | |
Standard_Boolean | myUseOBB |
Enables/Disables the usage of OBB. More... | |
History methods | |
virtual const TopTools_ListOfShape & | Generated (const TopoDS_Shape &theS) override |
Returns the list of shapes generated from the shape theS. More... | |
virtual const TopTools_ListOfShape & | Modified (const TopoDS_Shape &theS) override |
Returns the list of shapes modified from the shape theS. More... | |
virtual Standard_Boolean | IsDeleted (const TopoDS_Shape &theS) override |
Returns true if the shape theS has been deleted. More... | |
virtual void | PrepareHistory () override |
Prepare information for history support. More... | |
virtual const TopTools_ListOfShape * | LocModified (const TopoDS_Shape &theS) |
Prepare history information for the input shapes taking into account possible operation-specific modifications. For instance, in the CellsBuilder operation, additionally to splitting input shapes the splits of the shapes (or the shapes themselves) may be unified during removal of internal boundaries. In this case each split should be linked to the unified shape. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from BOPAlgo_Options | |
static Standard_Boolean | GetParallelMode () |
Gets the global parallel mode. More... | |
static void | SetParallelMode (const Standard_Boolean theNewMode) |
Sets the global parallel mode. More... | |
The class is a General Fuse algorithm - base algorithm for the algorithms in the Boolean Component. Its main purpose is to build the split parts of the argument shapes from which the result of the operations is combined.
The result of the General Fuse algorithm itself is a compound containing all split parts of the arguments.
Additionally to the options of the base classes, the algorithm has the following options:
The algorithm returns the following warnings:
The algorithm returns the following Error statuses:
BOPAlgo_Builder::BOPAlgo_Builder | ( | ) |
Empty constructor.
|
virtual |
BOPAlgo_Builder::BOPAlgo_Builder | ( | const Handle< NCollection_BaseAllocator > & | theAllocator | ) |
|
virtual |
Adds the argument to the operation.
|
inline |
Returns the list of arguments.
|
protected |
Builds the draft solid by rebuilding the shells of the solid with the splits of faces.
|
protectedvirtual |
Builds the result of operation. The method is called for each of the arguments type and adds into the result the splits of the arguments of that type.
Reimplemented in BOPAlgo_BOP.
|
protectedvirtual |
Builds the splits of faces using the information from the intersection stage stored in Data Structure.
|
protected |
Builds the splits of the solids using their draft versions and faces located inside.
|
overrideprotectedvirtual |
Checks the input data.
Reimplemented from BOPAlgo_Algo.
Reimplemented in BOPAlgo_MakerVolume, BOPAlgo_BOP, BOPAlgo_Splitter, and BOPAlgo_Section.
|
protected |
Checks if the intersection algorithm has Errors/Warnings.
|
inline |
Returns the flag defining whether the check for input solids on inverted status should be performed or not.
|
overridevirtual |
Clears the content of the algorithm.
Reimplemented from BOPAlgo_Options.
Reimplemented in BOPAlgo_CellsBuilder, BOPAlgo_MakerVolume, BOPAlgo_BOP, BRepFeat_Builder, and BOPAlgo_ToolsProvider.
|
inline |
Returns the Context, tool for cashing heavy algorithms.
|
protected |
Builds the image of the given compound.
|
protected |
Fills the images of compounds.
|
protected |
Builds the image of the given container using the splits of its sub-shapes.
|
protected |
Fills the images of containers (WIRES/SHELLS/COMPSOLID).
|
protected |
Fills the images of edges.
|
protected |
Fills the images of faces. The method consists of three steps:
|
protected |
Fills the images of solids. The method consists of four steps:
|
protected |
Fills the images of vertices.
|
protectedvirtual |
Finds faces located inside each solid.
Reimplemented in BRepFeat_Builder.
|
protected |
Classifies the vertices and edges from the arguments relatively splits of solids and makes them INTERNAL for solids.
|
protected |
Classifies the alone vertices on faces relatively its splits and adds them as INTERNAL into the splits.
|
protected |
Looks for the same domain faces among the splits of the faces. Updates the map of images with SD faces.
|
overridevirtual |
Returns the list of shapes generated from the shape theS.
Reimplemented from BOPAlgo_BuilderShape.
|
inline |
Returns the glue option of the algorithm.
|
inline |
Returns the map of images.
|
overridevirtual |
Returns true if the shape theS has been deleted.
Reimplemented from BOPAlgo_BuilderShape.
|
protectedvirtual |
Prepare history information for the input shapes taking into account possible operation-specific modifications. For instance, in the CellsBuilder operation, additionally to splitting input shapes the splits of the shapes (or the shapes themselves) may be unified during removal of internal boundaries. In this case each split should be linked to the unified shape.
To have correct history information, the method should be redefined in each operation where such additional modification is possible. The input shape <theS> should be the one from arguments, and the returning list should contain all final elements to which the input shape has evolved, including those not contained in the result shape.
The method returns pointer to the list of modified elements. NULL pointer means that the shape has not been modified at all.
The General Fuse operation does not perform any other modification than splitting the input shapes basing on their intersection information. This information is contained in myImages map. Thus, here the method returns only splits (if any) contained in this map.
Reimplemented in BOPAlgo_CellsBuilder.
|
overridevirtual |
Returns the list of shapes modified from the shape theS.
Reimplemented from BOPAlgo_BuilderShape.
|
inline |
Returns the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated.
|
inline |
Returns the map of origins.
|
inline |
Returns the Data Structure, holder of intersection information.
|
overridevirtual |
Performs the operation. The intersection will be performed also.
Implements BOPAlgo_Algo.
Reimplemented in BOPAlgo_MakerVolume, BOPAlgo_BOP, and BOPAlgo_Splitter.
|
protectedvirtual |
Performs the building of the result. The method calls the PerfromInternal1() method surrounded by a try-catch block.
|
protectedvirtual |
Performs the building of the result. To build the result of any other operation it will be necessary to override this method.
Reimplemented in BOPAlgo_CellsBuilder, BOPAlgo_MakerVolume, BOPAlgo_BOP, and BOPAlgo_Section.
|
virtual |
Performs the operation with the prepared filler. The intersection will not be performed in this case.
|
protectedvirtual |
Post treatment of the result of the operation. The method checks validity of the sub-shapes of the result and updates the tolerances to make them valid.
|
inline |
Returns the PaveFiller, algorithm for sub-shapes intersection.
|
protectedvirtual |
Prepares the result shape by making it empty compound.
Reimplemented in BOPAlgo_CellsBuilder, and BRepFeat_Builder.
|
overrideprotectedvirtual |
Prepare information for history support.
Reimplemented from BOPAlgo_BuilderShape.
|
virtual |
Sets the list of arguments for the operation.
|
inline |
Enables/Disables the check of the input solids for inverted status.
|
inline |
Sets the glue option for the algorithm.
|
inline |
Sets the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated. This flag is taken into account if internal PaveFiller is used only. In the case of calling PerformWithFiller the corresponding flag of that PaveFiller is in force.
|
inline |
Returns the map of Same Domain (SD) shapes - coinciding shapes from different arguments.
|
protected |
Arguments of the operation.
|
protected |
Check inverted option allows disabling the check of input solids on inverted status.
|
protected |
Context - tool for cashing heavy algorithms such as Projectors and Classifiers.
|
protected |
Data Structure - holder of intersection information.
|
protected |
EntryPoint - controls the deletion of the PaveFiller, which could live longer than the Builder.
|
protected |
Gluing option allows speeding up the intersection of the input shapes.
|
protected |
Images - map of Images of the sub-shapes of arguments.
|
protected |
Fence map providing the uniqueness of the shapes in the list of arguments.
|
protected |
Safe processing option allows avoiding modification of the input shapes.
|
protected |
Origins - map of Origins, back map of Images.
|
protected |
Pave Filler - algorithm for sub-shapes intersection.
|
protected |
ShapesSD - map of SD Shapes.