Open CASCADE Technology
6.9.0
|
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 () |
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 () |
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) |
void | SetArguments (const TopTools_ListOfShape &theLS) |
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) |
Returns the list of shapes generated from the shape theS. More... | |
virtual const TopTools_ListOfShape & | Modified (const TopoDS_Shape &theS) |
Returns the list of shapes modified from the shape theS. More... | |
virtual Standard_Boolean | IsDeleted (const TopoDS_Shape &theS) |
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 | SetFuzzyValue (const Standard_Real theFuzz) |
Sets the additional tolerance. More... | |
Standard_Real | FuzzyValue () const |
Returns the additional tolerance. 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 | SetProgressIndicator (const Handle< Message_ProgressIndicator > &theObj) |
Set the Progress Indicator object. More... | |
Protected Member Functions | |
virtual void | CheckData () |
Checks the data. More... | |
virtual void | PerformInternal1 (const BOPAlgo_PaveFiller &thePF) |
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 () |
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.
|
protectedvirtual |
Checks the data.
Reimplemented from BOPAlgo_Builder.
|
virtual |
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.
|
virtual |
Performs the operation.
Reimplemented from BOPAlgo_Builder.
|
protectedvirtual |
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 |