Open CASCADE Technology  7.1.0.beta
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 () 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_SolidBox () const
 Returns the solid box <mySBox>. More...
 
const BOPCol_ListOfShapeFaces () 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_ListOfShapeArguments () const
 
virtual void PerformWithFiller (const BOPAlgo_PaveFiller &theFiller)
 
virtual const TopTools_ListOfShapeGenerated (const TopoDS_Shape &theS) override
 Returns the list of shapes generated from the shape theS. More...
 
virtual const TopTools_ListOfShapeModified (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_DataMapOfShapeListOfShapeImages () 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_DataMapOfShapeListOfShapeSplits () 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_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_IndexedDataMapOfShapeListOfShapeImagesResult () 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 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...
 

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_Boolean myNonDestructive
 
- 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
 
Standard_Real myFuzzyValue
 
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 ( )
overrideprotectedvirtual

Checks the data.

Reimplemented from BOPAlgo_Builder.

virtual void BOPAlgo_MakerVolume::Clear ( )
overridevirtual

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 ( )
overridevirtual

Performs the operation.

Reimplemented from BOPAlgo_Builder.

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

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: