0024157: Parallelization of assembly part of BO
[occt.git] / src / BOPAlgo / BOPAlgo_Builder.cxx
index 8c15237..4ab91e1 100644 (file)
@@ -34,7 +34,7 @@
 //function : 
 //purpose  : 
 //=======================================================================
-  BOPAlgo_Builder::BOPAlgo_Builder()
+BOPAlgo_Builder::BOPAlgo_Builder()
 :
   BOPAlgo_BuilderShape(),
   myArguments(myAllocator),
   myImages(100, myAllocator),
   myShapesSD(100, myAllocator),
   mySplits(100, myAllocator),
-  myOrigins(100, myAllocator)
+  myOrigins(100, myAllocator),
+  myRunParallel(Standard_False)
 {
 }
 //=======================================================================
 //function : 
 //purpose  : 
 //=======================================================================
-  BOPAlgo_Builder::BOPAlgo_Builder(const Handle(NCollection_BaseAllocator)& theAllocator)
+BOPAlgo_Builder::BOPAlgo_Builder
+  (const Handle(NCollection_BaseAllocator)& theAllocator)
 :
   BOPAlgo_BuilderShape(theAllocator),
   myArguments(myAllocator),
   myImages(100, myAllocator), 
   myShapesSD(100, myAllocator),
   mySplits(100, myAllocator),
-  myOrigins(100, myAllocator)
+  myOrigins(100, myAllocator),
+  myRunParallel(Standard_False)
 {
 }
 //=======================================================================
 //function : ~
 //purpose  : 
 //=======================================================================
-  BOPAlgo_Builder::~BOPAlgo_Builder()
+BOPAlgo_Builder::~BOPAlgo_Builder()
 {
   if (myEntryPoint==1) {
     if (myPaveFiller) {
@@ -85,7 +88,7 @@
 //function : Clear
 //purpose  : 
 //=======================================================================
-  void BOPAlgo_Builder::Clear()
+void BOPAlgo_Builder::Clear()
 {
   myArguments.Clear();
   myMapFence.Clear();
   myOrigins.Clear();
 }
 //=======================================================================
+//function : SetRunParallel
+//purpose  : 
+//=======================================================================
+void BOPAlgo_Builder::SetRunParallel(const Standard_Boolean theFlag)
+{
+  myRunParallel=theFlag;
+}
+//=======================================================================
+//function : RunParallel
+//purpose  : 
+//=======================================================================
+Standard_Boolean BOPAlgo_Builder::RunParallel()const
+{
+  return myRunParallel;
+}
+//=======================================================================
 //function : AddArgument
 //purpose  : 
 //=======================================================================
-  void BOPAlgo_Builder::AddArgument(const TopoDS_Shape& theShape)
+void BOPAlgo_Builder::AddArgument(const TopoDS_Shape& theShape)
 {
   if (myMapFence.Add(theShape)) {
     myArguments.Append(theShape);
 //function : Arguments
 //purpose  : 
 //=======================================================================
-  const BOPCol_ListOfShape& BOPAlgo_Builder::Arguments()const
+const BOPCol_ListOfShape& BOPAlgo_Builder::Arguments()const
 {
   return myArguments;
 }
 //function : Images
 //purpose  : 
 //=======================================================================
-  const BOPCol_DataMapOfShapeListOfShape& BOPAlgo_Builder::Images()const
+const BOPCol_DataMapOfShapeListOfShape& BOPAlgo_Builder::Images()const
 {
   return myImages;
 }
 //function : Origins
 //purpose  : 
 //=======================================================================
-  const BOPCol_DataMapOfShapeShape& BOPAlgo_Builder::Origins()const
+const BOPCol_DataMapOfShapeShape& BOPAlgo_Builder::Origins()const
 {
   return myOrigins;
 }
 //function : ShapesSd
 //purpose  : 
 //=======================================================================
-  const BOPCol_DataMapOfShapeShape& BOPAlgo_Builder::ShapesSD()const
+const BOPCol_DataMapOfShapeShape& BOPAlgo_Builder::ShapesSD()const
 {
   return myShapesSD;
 }
 //function : Splits
 //purpose  : 
 //=======================================================================
-  const BOPCol_DataMapOfShapeListOfShape& BOPAlgo_Builder::Splits()const
+const BOPCol_DataMapOfShapeListOfShape& BOPAlgo_Builder::Splits()const
 {
   return mySplits;
 }
 //function : PPaveFiller
 //purpose  : 
 //=======================================================================
-  BOPAlgo_PPaveFiller BOPAlgo_Builder::PPaveFiller()
+BOPAlgo_PPaveFiller BOPAlgo_Builder::PPaveFiller()
 {
   return myPaveFiller;
 }
 //function : PDS
 //purpose  : 
 //=======================================================================
-  BOPDS_PDS BOPAlgo_Builder::PDS()
+BOPDS_PDS BOPAlgo_Builder::PDS()
 {
   return myDS;
 }
 // function: CheckData
 // purpose: 
 //=======================================================================
-  void BOPAlgo_Builder::CheckData()
+void BOPAlgo_Builder::CheckData()
 {
   Standard_Integer aNb;
   //
 //function : Prepare
 //purpose  : 
 //=======================================================================
-  void BOPAlgo_Builder::Prepare()
+void BOPAlgo_Builder::Prepare()
 {
   myErrorStatus=0;
   //
 //function : Perform
 //purpose  : 
 //=======================================================================
-  void BOPAlgo_Builder::Perform()
+void BOPAlgo_Builder::Perform()
 {
   myErrorStatus=0;
   //
 //function : PerformWithFiller
 //purpose  : 
 //=======================================================================
-  void BOPAlgo_Builder::PerformWithFiller(const BOPAlgo_PaveFiller& theFiller)
+void BOPAlgo_Builder::PerformWithFiller(const BOPAlgo_PaveFiller& theFiller)
 {
   myEntryPoint=0;
   PerformInternal(theFiller);
 //function : PerformInternal
 //purpose  : 
 //=======================================================================
-  void BOPAlgo_Builder::PerformInternal(const BOPAlgo_PaveFiller& theFiller)
+void BOPAlgo_Builder::PerformInternal(const BOPAlgo_PaveFiller& theFiller)
 {
   myErrorStatus=0;
   //
 //function : PostTreat
 //purpose  : 
 //=======================================================================
-  void BOPAlgo_Builder::PostTreat()
+void BOPAlgo_Builder::PostTreat()
 {
   //BRepLib::SameParameter(myShape, 1.e-7, Standard_True);
   BOPTools_AlgoTools::CorrectTolerances(myShape, 0.05);