Open CASCADE Technology
7.5.0
|
Provides a basic tool to implement features topological operations. The main goal of the algorithm is to perform the result of the operation according to the kept parts of the tool. Input data: a) DS; b) The kept parts of the tool; If the map of the kept parts of the tool is not filled boolean operation of the given type will be performed; c) Operation required. Steps: a) Fill myShapes, myRemoved maps; b) Rebuild edges and faces; c) Build images of the object; d) Build the result of the operation. Result: Result shape of the operation required. More...
#include <BRepFeat_Builder.hxx>
Public Member Functions | |
BRepFeat_Builder () | |
virtual | ~BRepFeat_Builder () |
virtual void | Clear () override |
Clears internal fields and arguments. More... | |
void | Init (const TopoDS_Shape &theShape) |
Initialyzes the object of local boolean operation. More... | |
void | Init (const TopoDS_Shape &theShape, const TopoDS_Shape &theTool) |
Initialyzes the arguments of local boolean operation. More... | |
void | SetOperation (const Standard_Integer theFuse) |
Sets the operation of local boolean operation. If theFuse = 0 than the operation is CUT, otherwise FUSE. More... | |
void | SetOperation (const Standard_Integer theFuse, const Standard_Boolean theFlag) |
Sets the operation of local boolean operation. If theFlag = TRUE it means that no selection of parts of the tool is needed, t.e. no second part. In that case if theFuse = 0 than operation is COMMON, otherwise CUT21. If theFlag = FALSE SetOperation(theFuse) function is called. More... | |
void | PartsOfTool (TopTools_ListOfShape &theLT) |
Collects parts of the tool. More... | |
void | KeepParts (const TopTools_ListOfShape &theIm) |
Initialyzes parts of the tool for second step of algorithm. Collects shapes and all sub-shapes into myShapes map. More... | |
void | KeepPart (const TopoDS_Shape &theS) |
Adds shape theS and all its sub-shapes into myShapes map. More... | |
void | PerformResult () |
Main function to build the result of the local operation required. More... | |
void | RebuildFaces () |
Rebuilds faces in accordance with the kept parts of the tool. More... | |
void | RebuildEdge (const TopoDS_Shape &theE, const TopoDS_Face &theF, const TopTools_MapOfShape &theME, TopTools_ListOfShape &aLEIm) |
Rebuilds edges in accordance with the kept parts of the tool. More... | |
void | CheckSolidImages () |
Collects the images of the object, that contains in the images of the tool. More... | |
void | FillRemoved () |
Collects the removed parts of the tool into myRemoved map. More... | |
void | FillRemoved (const TopoDS_Shape &theS, TopTools_MapOfShape &theM) |
Adds the shape S and its sub-shapes into myRemoved map. More... | |
Public Member Functions inherited from BOPAlgo_BOP | |
BOPAlgo_BOP () | |
Empty constructor. More... | |
virtual | ~BOPAlgo_BOP () |
BOPAlgo_BOP (const Handle< NCollection_BaseAllocator > &theAllocator) | |
void | SetOperation (const BOPAlgo_Operation theOperation) |
BOPAlgo_Operation | Operation () const |
virtual void | Perform () override |
Performs the operation. The intersection will be performed also. More... | |
Public Member Functions inherited from BOPAlgo_ToolsProvider | |
BOPAlgo_ToolsProvider () | |
Empty constructor. More... | |
BOPAlgo_ToolsProvider (const Handle< NCollection_BaseAllocator > &theAllocator) | |
virtual void | AddTool (const TopoDS_Shape &theShape) |
Adds Tool argument of the operation. More... | |
virtual void | SetTools (const TopTools_ListOfShape &theShapes) |
Adds the Tool arguments of the operation. More... | |
const TopTools_ListOfShape & | Tools () const |
Returns the Tool arguments of the operation. More... | |
Public Member Functions inherited from BOPAlgo_Builder | |
BOPAlgo_Builder () | |
Empty constructor. More... | |
virtual | ~BOPAlgo_Builder () |
BOPAlgo_Builder (const Handle< NCollection_BaseAllocator > &theAllocator) | |
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... | |
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... | |
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... | |
virtual void | PerformWithFiller (const BOPAlgo_PaveFiller &theFiller) |
Performs the operation with the prepared filler. The intersection will not be performed in this case. More... | |
virtual void | BuildBOP (const TopTools_ListOfShape &theObjects, const TopAbs_State theObjState, const TopTools_ListOfShape &theTools, const TopAbs_State theToolsState, Handle< Message_Report > theReport=NULL) |
Builds the result shape according to the given states for the objects and tools. These states can be unambiguously converted into the Boolean operation type. Thus, it performs the Boolean operation on the given groups of shapes. More... | |
void | BuildBOP (const TopTools_ListOfShape &theObjects, const TopTools_ListOfShape &theTools, const BOPAlgo_Operation theOperation, Handle< Message_Report > theReport=NULL) |
Builds the result of Boolean operation of given type basing on the result of Builder operation (GF or any other). More... | |
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... | |
const TopTools_ListOfShape & | Modified (const TopoDS_Shape &theS) |
Returns the list of shapes Modified from the shape theS. More... | |
const TopTools_ListOfShape & | Generated (const TopoDS_Shape &theS) |
Returns the list of shapes Generated from the shape theS. More... | |
Standard_Boolean | IsDeleted (const TopoDS_Shape &theS) |
Returns true if the shape theS has been deleted. In this case the shape will have no Modified elements, but can have Generated elements. More... | |
Standard_Boolean | HasModified () const |
Returns true if any of the input shapes has been modified during operation. More... | |
Standard_Boolean | HasGenerated () const |
Returns true if any of the input shapes has generated shapes during operation. More... | |
Standard_Boolean | HasDeleted () const |
Returns true if any of the input shapes has been deleted during operation. More... | |
Handle< BRepTools_History > | History () |
History Tool. More... | |
void | SetToFillHistory (const Standard_Boolean theHistFlag) |
Allows disabling the history collection. More... | |
Standard_Boolean | HasHistory () const |
Returns flag of history availability. More... | |
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 Message_ProgressScope &theProgress) |
Set the Progress Indicator object. 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... | |
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... | |
Protected Member Functions | |
virtual void | Prepare () override |
Prepares builder of local operation. More... | |
virtual void | FillIn3DParts (TopTools_DataMapOfShapeShape &theDraftSolids) override |
Function is redefined to avoid the usage of removed faces. More... | |
virtual Standard_Boolean | CheckArgsForOpenSolid () override |
Avoid the check for open solids and always use the splits of solids for building the result shape. More... | |
Protected Member Functions inherited from BOPAlgo_BOP | |
virtual void | CheckData () override |
Checks the input data. More... | |
virtual void | PerformInternal1 (const BOPAlgo_PaveFiller &thePF) override |
Performs calculations using prepared Filler object <thePF> More... | |
virtual void | BuildResult (const TopAbs_ShapeEnum theType) override |
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... | |
void | BuildShape () |
void | BuildRC () |
void | BuildSolid () |
Standard_Boolean | TreatEmptyShape () |
Treatment of the cases with empty shapes. It returns TRUE if there is nothing to do, i.e. all shapes in one of the groups are empty shapes. More... | |
Protected Member Functions inherited from BOPAlgo_Builder | |
void | PrepareHistory () |
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... | |
virtual const TopTools_ListOfShape & | LocGenerated (const TopoDS_Shape &theS) |
Returns the list of shapes generated from the shape theS. Similarly to LocModified must be redefined for specific operations, obtaining Generated elements differently. More... | |
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... | |
void | CheckFiller () |
Checks if the intersection algorithm has Errors/Warnings. More... | |
void | FillImagesVertices () |
Fills the images of vertices. More... | |
void | FillImagesEdges () |
Fills the images of edges. More... | |
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... | |
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... | |
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... | |
void | BuildSplitSolids (TopTools_DataMapOfShapeShape &theDraftSolids) |
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... | |
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... | |
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 () | |
Empty constructor. More... | |
BOPAlgo_BuilderShape (const Handle< NCollection_BaseAllocator > &theAllocator) | |
Constructor with allocator. More... | |
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 | |
TopTools_MapOfShape | myShapes |
TopTools_MapOfShape | myRemoved |
Standard_Integer | myFuse |
Protected Attributes inherited from BOPAlgo_BOP | |
BOPAlgo_Operation | myOperation |
Standard_Integer | myDims [2] |
TopoDS_Shape | myRC |
Protected Attributes inherited from BOPAlgo_ToolsProvider | |
TopTools_ListOfShape | myTools |
TopTools_MapOfShape | myMapTools |
Protected Attributes inherited from BOPAlgo_Builder | |
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... | |
TopTools_DataMapOfShapeListOfShape | myInParts |
InParts - map of own and acquired IN faces of the arguments solids. 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 |
Result of the operation. More... | |
TopTools_ListOfShape | myHistShapes |
Storer for the history shapes. More... | |
TopTools_MapOfShape | myMapShape |
Cashed map of all arguments shapes. More... | |
Standard_Boolean | myFillHistory |
Controls the history filling. More... | |
Handle< BRepTools_History > | myHistory |
History tool. More... | |
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... | |
const Message_ProgressScope * | myProgressScope |
Enables/Disables the usage of OBB. More... | |
Standard_Boolean | myUseOBB |
Enables/Disables the usage of OBB. 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... | |
Provides a basic tool to implement features topological operations. The main goal of the algorithm is to perform the result of the operation according to the kept parts of the tool. Input data: a) DS; b) The kept parts of the tool; If the map of the kept parts of the tool is not filled boolean operation of the given type will be performed; c) Operation required. Steps: a) Fill myShapes, myRemoved maps; b) Rebuild edges and faces; c) Build images of the object; d) Build the result of the operation. Result: Result shape of the operation required.
BRepFeat_Builder::BRepFeat_Builder | ( | ) |
|
virtual |
|
inlineoverrideprotectedvirtual |
Avoid the check for open solids and always use the splits of solids for building the result shape.
Reimplemented from BOPAlgo_BOP.
void BRepFeat_Builder::CheckSolidImages | ( | ) |
Collects the images of the object, that contains in the images of the tool.
|
overridevirtual |
Clears internal fields and arguments.
Reimplemented from BOPAlgo_BOP.
|
overrideprotectedvirtual |
Function is redefined to avoid the usage of removed faces.
Reimplemented from BOPAlgo_Builder.
void BRepFeat_Builder::FillRemoved | ( | ) |
Collects the removed parts of the tool into myRemoved map.
void BRepFeat_Builder::FillRemoved | ( | const TopoDS_Shape & | theS, |
TopTools_MapOfShape & | theM | ||
) |
Adds the shape S and its sub-shapes into myRemoved map.
void BRepFeat_Builder::Init | ( | const TopoDS_Shape & | theShape | ) |
Initialyzes the object of local boolean operation.
void BRepFeat_Builder::Init | ( | const TopoDS_Shape & | theShape, |
const TopoDS_Shape & | theTool | ||
) |
Initialyzes the arguments of local boolean operation.
void BRepFeat_Builder::KeepPart | ( | const TopoDS_Shape & | theS | ) |
Adds shape theS and all its sub-shapes into myShapes map.
void BRepFeat_Builder::KeepParts | ( | const TopTools_ListOfShape & | theIm | ) |
Initialyzes parts of the tool for second step of algorithm. Collects shapes and all sub-shapes into myShapes map.
void BRepFeat_Builder::PartsOfTool | ( | TopTools_ListOfShape & | theLT | ) |
Collects parts of the tool.
void BRepFeat_Builder::PerformResult | ( | ) |
Main function to build the result of the local operation required.
|
overrideprotectedvirtual |
Prepares builder of local operation.
Reimplemented from BOPAlgo_Builder.
void BRepFeat_Builder::RebuildEdge | ( | const TopoDS_Shape & | theE, |
const TopoDS_Face & | theF, | ||
const TopTools_MapOfShape & | theME, | ||
TopTools_ListOfShape & | aLEIm | ||
) |
Rebuilds edges in accordance with the kept parts of the tool.
void BRepFeat_Builder::RebuildFaces | ( | ) |
Rebuilds faces in accordance with the kept parts of the tool.
void BRepFeat_Builder::SetOperation | ( | const Standard_Integer | theFuse | ) |
Sets the operation of local boolean operation. If theFuse = 0 than the operation is CUT, otherwise FUSE.
void BRepFeat_Builder::SetOperation | ( | const Standard_Integer | theFuse, |
const Standard_Boolean | theFlag | ||
) |
Sets the operation of local boolean operation. If theFlag = TRUE it means that no selection of parts of the tool is needed, t.e. no second part. In that case if theFuse = 0 than operation is COMMON, otherwise CUT21. If theFlag = FALSE SetOperation(theFuse) function is called.
|
protected |
|
protected |
|
protected |