Open CASCADE Technology  6.9.0
Public Member Functions | Protected Member Functions | Protected Attributes
BOPAlgo_MakerVolume Class Reference

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>

Inheritance diagram for BOPAlgo_MakerVolume:
Inheritance graph
[legend]

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_SolidBox () const
 Returns the solid box <mySBox>. More...
 
const BOPCol_ListOfShapeFaces () 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_ListOfShapeArguments () 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_DataMapOfShapeShapeOrigins () const
 Returns myOrigins. More...
 
const BOPCol_DataMapOfShapeShapeShapesSD () 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_ShapeShape () 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_BaseAllocatorAllocator () 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...
 

Protected Attributes

Standard_Boolean myIntersect
 
Bnd_Box myBBox
 
TopoDS_Solid mySBox
 
BOPCol_ListOfShape myFaces
 
- Protected Attributes inherited from BOPAlgo_Builder
BOPCol_ListOfShape myArguments
 
BOPCol_MapOfShape myMapFence
 
BOPAlgo_PPaveFiller myPaveFiller
 
BOPDS_PDS myDS
 
Handle< IntTools_ContextmyContext
 
Standard_Integer myEntryPoint
 
BOPCol_DataMapOfShapeListOfShape myImages
 
BOPCol_DataMapOfShapeShape myShapesSD
 
BOPCol_DataMapOfShapeListOfShape mySplits
 
BOPCol_DataMapOfShapeShape myOrigins
 
Standard_Real myFuzzyValue
 
- Protected Attributes inherited from BOPAlgo_BuilderShape
TopoDS_Shape myShape
 
TopTools_ListOfShape myHistShapes
 
BOPCol_MapOfShape myMapShape
 
Standard_Boolean myHasDeleted
 
Standard_Boolean myHasGenerated
 
Standard_Boolean myHasModified
 
BOPCol_IndexedDataMapOfShapeListOfShape myImagesResult
 
Standard_Boolean myFlagHistory
 
- Protected Attributes inherited from BOPAlgo_Algo
BOPCol_BaseAllocator myAllocator
 
Standard_Integer myErrorStatus
 
Standard_Integer myWarningStatus
 
Standard_Boolean myRunParallel
 
Handle< Message_ProgressIndicatormyProgressIndicator
 

Additional Inherited Members

- Static Public Member Functions inherited from BOPAlgo_Algo
static Standard_Boolean GetParallelMode ()
 
static void SetParallelMode (const Standard_Boolean theNewMode)
 

Detailed Description

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:

  1. Collect all faces: intersect the shapes if necessary and collect the images of faces, otherwise just collect the faces to the <myFaces> list; All faces on this step added twice, with orientation FORWARD and REVERSED;
  2. Create bounding box covering all the faces from <myFaces> and create solid box from corner points of that bounding box (myBBox, mySBox). Add faces from that box to <myFaces>;
  3. Build solids from <myFaces> using BOPAlgo_BuilderSolid algorithm;
  4. Treat the result: Eliminate solid containig faces from <mySBox>;
  5. Fill internal shapes: add internal vertices and edges into created solids;
  6. Prepare the history.

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

Constructor & Destructor Documentation

BOPAlgo_MakerVolume::BOPAlgo_MakerVolume ( )

Empty contructor.

virtual BOPAlgo_MakerVolume::~BOPAlgo_MakerVolume ( )
virtual
BOPAlgo_MakerVolume::BOPAlgo_MakerVolume ( const BOPCol_BaseAllocator theAllocator)

Empty contructor.

Member Function Documentation

const TopoDS_Solid& BOPAlgo_MakerVolume::Box ( ) const

Returns the solid box <mySBox>.

void BOPAlgo_MakerVolume::BuildShape ( const BOPCol_ListOfShape theLSR)
protected

Builds the result.

void BOPAlgo_MakerVolume::BuildSolids ( BOPCol_ListOfShape theLSR)
protected

Builds solids.

virtual void BOPAlgo_MakerVolume::CheckData ( )
protectedvirtual

Checks the data.

Reimplemented from BOPAlgo_Builder.

virtual void BOPAlgo_MakerVolume::Clear ( )
virtual

Clears the data.

Reimplemented from BOPAlgo_Builder.

void BOPAlgo_MakerVolume::CollectFaces ( )
protected

Collects all faces.

const BOPCol_ListOfShape& BOPAlgo_MakerVolume::Faces ( ) const

Returns the processed faces <myFaces>.

void BOPAlgo_MakerVolume::FillInternalShapes ( const BOPCol_ListOfShape theLSR)
protected

Fills the solids with internal shapes.

Standard_Boolean BOPAlgo_MakerVolume::IsIntersect ( ) const

Returns the flag <myIntersect>.

void BOPAlgo_MakerVolume::MakeBox ( BOPCol_MapOfShape theBoxFaces)
protected

Makes solid box.

virtual void BOPAlgo_MakerVolume::Perform ( )
virtual

Performs the operation.

Reimplemented from BOPAlgo_Builder.

virtual void BOPAlgo_MakerVolume::PerformInternal1 ( const BOPAlgo_PaveFiller thePF)
protectedvirtual

Performs the operation.

Reimplemented from BOPAlgo_Builder.

void BOPAlgo_MakerVolume::RemoveBox ( BOPCol_ListOfShape theLSR,
const BOPCol_MapOfShape theBoxFaces 
)
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.

Field Documentation

Bnd_Box BOPAlgo_MakerVolume::myBBox
protected
BOPCol_ListOfShape BOPAlgo_MakerVolume::myFaces
protected
Standard_Boolean BOPAlgo_MakerVolume::myIntersect
protected
TopoDS_Solid BOPAlgo_MakerVolume::mySBox
protected

The documentation for this class was generated from the following file: