Open CASCADE Technology
7.1.0.beta
|
The algorithm is to build solids from set of shapes. It uses the BOPAlgo_Builder algorithm to intersect the given shapes and build the images of faces (if needed) and BOPAlgo_BuilderSolid algorithm to build the solids. More...
#include <BOPAlgo_MakerVolume.hxx>
Public Member Functions | |
BOPAlgo_MakerVolume () | |
Empty contructor. More... | |
virtual | ~BOPAlgo_MakerVolume () |
BOPAlgo_MakerVolume (const BOPCol_BaseAllocator &theAllocator) | |
Empty contructor. More... | |
virtual void | Clear () override |
Clears the data. More... | |
void | SetIntersect (const Standard_Boolean bIntersect) |
Sets the flag myIntersect: if <bIntersect> is TRUE the shapes from <myArguments> will be intersected. if <bIntersect> is FALSE no intersection will be done. More... | |
Standard_Boolean | IsIntersect () const |
Returns the flag <myIntersect>. More... | |
const TopoDS_Solid & | Box () const |
Returns the solid box <mySBox>. More... | |
const BOPCol_ListOfShape & | Faces () const |
Returns the processed faces <myFaces>. More... | |
virtual void | Perform () override |
Performs the operation. More... | |
Public Member Functions inherited from BOPAlgo_Builder | |
BOPAlgo_Builder () | |
virtual | ~BOPAlgo_Builder () |
BOPAlgo_Builder (const BOPCol_BaseAllocator &theAllocator) | |
BOPAlgo_PPaveFiller | PPaveFiller () |
BOPDS_PDS | PDS () |
virtual void | AddArgument (const TopoDS_Shape &theShape) |
virtual void | SetArguments (const BOPCol_ListOfShape &theLS) |
const BOPCol_ListOfShape & | Arguments () const |
virtual void | PerformWithFiller (const BOPAlgo_PaveFiller &theFiller) |
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... | |
const BOPCol_DataMapOfShapeListOfShape & | Images () const |
Standard_Boolean | IsInterferred (const TopoDS_Shape &theS) const |
const BOPCol_DataMapOfShapeShape & | Origins () const |
Returns myOrigins. More... | |
const BOPCol_DataMapOfShapeShape & | ShapesSD () const |
Returns myShapesSD. More... | |
const BOPCol_DataMapOfShapeListOfShape & | Splits () const |
Returns mySplits. 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... | |
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 BOPCol_IndexedDataMapOfShapeListOfShape & | ImagesResult () const |
Public Member Functions inherited from BOPAlgo_Algo | |
Standard_Integer | ErrorStatus () const |
Standard_Integer | WarningStatus () const |
const BOPCol_BaseAllocator & | Allocator () const |
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 | 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... | |
Protected Member Functions | |
virtual void | CheckData () override |
Checks the data. More... | |
virtual void | PerformInternal1 (const BOPAlgo_PaveFiller &thePF) override |
Performs the operation. More... | |
void | CollectFaces () |
Collects all faces. More... | |
void | MakeBox (BOPCol_MapOfShape &theBoxFaces) |
Makes solid box. More... | |
void | BuildSolids (BOPCol_ListOfShape &theLSR) |
Builds solids. More... | |
void | RemoveBox (BOPCol_ListOfShape &theLSR, const BOPCol_MapOfShape &theBoxFaces) |
Removes the covering box. More... | |
void | FillInternalShapes (const BOPCol_ListOfShape &theLSR) |
Fills the solids with internal shapes. More... | |
void | BuildShape (const BOPCol_ListOfShape &theLSR) |
Builds the result. More... | |
Protected Member Functions inherited from BOPAlgo_Builder | |
virtual void | PrepareHistory () override |
Prepare information for history support. More... | |
virtual void | PerformInternal (const BOPAlgo_PaveFiller &thePF) |
virtual void | Prepare () |
void | FillImagesVertices () |
void | FillImagesEdges () |
virtual void | BuildResult (const TopAbs_ShapeEnum theType) |
void | FillImagesContainers (const TopAbs_ShapeEnum theType) |
void | FillImagesCompounds () |
void | FillImagesContainer (const TopoDS_Shape &theS, const TopAbs_ShapeEnum theType) |
void | FillImagesCompound (const TopoDS_Shape &theS, BOPCol_MapOfShape &theMF) |
void | FillImagesFaces () |
virtual void | BuildSplitFaces () |
void | FillSameDomainFaces () |
void | FillImagesFaces1 () |
void | FillImagesSolids () |
void | BuildDraftSolid (const TopoDS_Shape &theSolid, TopoDS_Shape &theDraftSolid, BOPCol_ListOfShape &theLIF) |
virtual void | FillIn3DParts (BOPCol_DataMapOfShapeListOfShape &theInParts, BOPCol_DataMapOfShapeShape &theDraftSolids, const BOPCol_BaseAllocator &theAllocator) |
void | BuildSplitSolids (BOPCol_DataMapOfShapeListOfShape &theInParts, BOPCol_DataMapOfShapeShape &theDraftSolids, const BOPCol_BaseAllocator &theAllocator) |
void | FillInternalShapes () |
virtual void | PostTreat () |
Protected Member Functions inherited from BOPAlgo_BuilderShape | |
BOPAlgo_BuilderShape () | |
virtual | ~BOPAlgo_BuilderShape () |
BOPAlgo_BuilderShape (const BOPCol_BaseAllocator &theAllocator) | |
Protected Member Functions inherited from BOPAlgo_Algo | |
BOPAlgo_Algo () | |
virtual | ~BOPAlgo_Algo () |
BOPAlgo_Algo (const BOPCol_BaseAllocator &theAllocator) | |
virtual void | CheckResult () |
void | UserBreak () const |
Breaks the execution if the break signal is indicated by myProgressIndicator. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from BOPAlgo_Algo | |
static Standard_Boolean | GetParallelMode () |
static void | SetParallelMode (const Standard_Boolean theNewMode) |
The algorithm is to build solids from set of shapes. It uses the BOPAlgo_Builder algorithm to intersect the given shapes and build the images of faces (if needed) and BOPAlgo_BuilderSolid algorithm to build the solids.
Steps of the algorithm:
Fields: <myIntersect> - boolean flag. It defines whether intersect shapes from <myArguments> (if set to TRUE) or not (FALSE). The default value is TRUE. By setting it to FALSE the user should guarantee that shapes in <myArguments> do not interfere with each other, otherwise the result is unpredictable.
<myBBox> - bounding box, covering all faces from <myFaces>.
<mySBox> - Solid box created from the corner points of <myBBox>.
<myFaces> - the list is to keep the "final" faces, that will be given to the BOPAlgo_BuilderSolid algorithm. If the shapes have been interfered it should contain the images of the source shapes, otherwise its just the original faces. It also contains the faces from <mySBox>.
Fields inherited from BOPAlgo_Builder:
<myArguments> - list of the source shapes. The source shapes can have any type, but each shape must not be self-interfered.
<myShape> - Result shape:
Fields inherited from BOPAlgo_Algo:
<myRunParallel> - Defines whether the parallel processing is switched on or not. <myErrorStatus> - Error status of the operation: 0 - operation successful; 100 - no shapes to process; 102 - BOPAlgo_PaveFiller algorithm has failed; 103 - BOPAlgo_BuilderSolid algorithm has failed.
Example:
BOPAlgo_MakerVolume aMV; // aMV.SetArguments(aLS); //source shapes aMV.SetRunParallel(bRunParallel); //parallel or single mode aMV.SetIntersect(bIntersect); //intersect or not the shapes from <aLS> // aMV.Perform(); //perform the operation if (aMV.ErrorStatus()) { //check error status return; } // const TopoDS_Shape& aResult = aMV.Shape(); //result of the operation
BOPAlgo_MakerVolume::BOPAlgo_MakerVolume | ( | ) |
Empty contructor.
|
virtual |
BOPAlgo_MakerVolume::BOPAlgo_MakerVolume | ( | const BOPCol_BaseAllocator & | theAllocator | ) |
Empty contructor.
const TopoDS_Solid& BOPAlgo_MakerVolume::Box | ( | ) | const |
Returns the solid box <mySBox>.
|
protected |
Builds the result.
|
protected |
Builds solids.
|
overrideprotectedvirtual |
Checks the data.
Reimplemented from BOPAlgo_Builder.
|
overridevirtual |
Clears the data.
Reimplemented from BOPAlgo_Builder.
|
protected |
Collects all faces.
const BOPCol_ListOfShape& BOPAlgo_MakerVolume::Faces | ( | ) | const |
Returns the processed faces <myFaces>.
|
protected |
Fills the solids with internal shapes.
Standard_Boolean BOPAlgo_MakerVolume::IsIntersect | ( | ) | const |
Returns the flag <myIntersect>.
|
protected |
Makes solid box.
|
overridevirtual |
Performs the operation.
Reimplemented from BOPAlgo_Builder.
|
overrideprotectedvirtual |
Performs the operation.
Reimplemented from BOPAlgo_Builder.
|
protected |
Removes the covering box.
void BOPAlgo_MakerVolume::SetIntersect | ( | const Standard_Boolean | bIntersect | ) |
Sets the flag myIntersect: if <bIntersect> is TRUE the shapes from <myArguments> will be intersected. if <bIntersect> is FALSE no intersection will be done.
|
protected |
|
protected |
|
protected |
|
protected |