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:
@@ -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;
|
||||
//
|
||||
|
Reference in New Issue
Block a user