1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0024157: Parallelization of assembly part of BO

New features
class BOPAlgo_BuilderSolid
-method:
void BOPAlgo_BuilderSolid::SetSolid(const TopoDS_Solid& theSolid) has been added.
Purpose: Sets the source solid <theSolid>

class BOPAlgo_BuilderSolid
-method:
const TopoDS_Solid& BOPAlgo_BuilderSolid::Solid()const
has been added.
Purpose: Returns the source solid

Auxiliary classes
BOPAlgo_BuilderSolidFunctor
BOPAlgo_BuilderSolidCnt
have been added.
Purpose: The classes provide the interface and implementation of the parallel computations.

class BOPTools_AlgoTools
-method:
Standard_Boolean  BOPTools_AlgoTools::IsOpenShell(const TopoDS_Shell& theShell) has been added.
Purpose: Returns true if the shell <theShell> is open

class BOPTools_AlgoTools
-method:
Standard_Boolean  BOPTools_AlgoTools::IsInvertedSolid(const TopoDS_Solid& theSolid) has been added.
Purpose: Returns true if the solid <theSolid> is inverted

class BOPDS_DS
-protected  method:
void BOPDS_DS::BuildBndBoxSolid(const Standard_Integer theIndex, Bnd_Box& theBoxS) has been added.
The method computes bouding box <theBoxS> for the solid with DS-index <theIndex>

Changes
class BOPDS_DS
- method:
void BOPDS_DS::Init()
The block to compute bouding box for the solids has been added.

class BOPAlgo_Builder
- method:
void BOPAlgo_Builder::FillIn3DParts
(BOPCol_DataMapOfShapeListOfShape& theInParts,
BOPCol_DataMapOfShapeShape& theDraftSolids,
const BOPCol_BaseAllocator& theAllocator)
The order of treatment of the unbalanced binary tree of overlapped bounding boxes has been changed

class BOPAlgo_Builder
- method:
 void BOPAlgo_Builder::BuildSplitSolids
(BOPCol_DataMapOfShapeListOfShape& theInParts,
BOPCol_DataMapOfShapeShape& theDraftSolids,
const BOPCol_BaseAllocator&  theAllocator)
The algorithm has been adapted to provide the parallel computations
This commit is contained in:
pkv
2013-12-10 09:08:44 +04:00
committed by bugmaster
parent 5a07b8e1c4
commit 30ecd5f8bf
9 changed files with 330 additions and 207 deletions

View File

@@ -90,7 +90,7 @@ static
//function :
//purpose :
//=======================================================================
BOPAlgo_BuilderSolid::BOPAlgo_BuilderSolid(const Handle(NCollection_BaseAllocator)& theAllocator)
BOPAlgo_BuilderSolid::BOPAlgo_BuilderSolid(const Handle(NCollection_BaseAllocator)& theAllocator)
:
BOPAlgo_BuilderArea(theAllocator)
{
@@ -99,14 +99,30 @@ static
//function : ~
//purpose :
//=======================================================================
BOPAlgo_BuilderSolid::~BOPAlgo_BuilderSolid()
BOPAlgo_BuilderSolid::~BOPAlgo_BuilderSolid()
{
}
//=======================================================================
//function : SetSolid
//purpose :
//=======================================================================
void BOPAlgo_BuilderSolid::SetSolid(const TopoDS_Solid& aS)
{
mySolid=aS;
}
//=======================================================================
//function : Solid
//purpose :
//=======================================================================
const TopoDS_Solid& BOPAlgo_BuilderSolid::Solid()const
{
return mySolid;
}
//=======================================================================
//function : Perform
//purpose :
//=======================================================================
void BOPAlgo_BuilderSolid::Perform()
void BOPAlgo_BuilderSolid::Perform()
{
myErrorStatus=0;
//
@@ -150,7 +166,7 @@ static
//function :PerformShapesToAvoid
//purpose :
//=======================================================================
void BOPAlgo_BuilderSolid::PerformShapesToAvoid()
void BOPAlgo_BuilderSolid::PerformShapesToAvoid()
{
Standard_Boolean bFound;
Standard_Integer i, iCnt, aNbE, aNbF;
@@ -227,7 +243,7 @@ static
//function : PerformLoops
//purpose :
//=======================================================================
void BOPAlgo_BuilderSolid::PerformLoops()
void BOPAlgo_BuilderSolid::PerformLoops()
{
myErrorStatus=0;
//
@@ -447,7 +463,7 @@ static
//function : PerformAreas
//purpose :
//=======================================================================
void BOPAlgo_BuilderSolid::PerformAreas()
void BOPAlgo_BuilderSolid::PerformAreas()
{
myErrorStatus=0;
//
@@ -583,7 +599,7 @@ static
//function : PerformInternalShapes
//purpose :
//=======================================================================
void BOPAlgo_BuilderSolid::PerformInternalShapes()
void BOPAlgo_BuilderSolid::PerformInternalShapes()
{
myErrorStatus=0;
//