]> SALOME platform Git repositories - modules/geom.git/blobdiff - src/GEOMAlgo/GEOMAlgo_Builder.cxx
Salome HOME
0021672: [CEA 565] Dump Study from script
[modules/geom.git] / src / GEOMAlgo / GEOMAlgo_Builder.cxx
index a98fed7165daf4ef8b7f5a90ea6daac62bbbd181..669274cfa0713a1da6b9584628f9a1dc88f448f0 100755 (executable)
@@ -1,29 +1,29 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 // File:        GEOMAlgo_Builder.cxx
-// Created:     
-// Author:      Peter KURNEV 
+// Created:
+// Author:      Peter KURNEV
 //
-#include <GEOMAlgo_Builder.ixx>
+#include <GEOMAlgo_Builder.hxx>
 
 #include <TopAbs_ShapeEnum.hxx>
 
 
 #include <BRepLib.hxx>
 #include <NMTTools_PaveFiller.hxx>
+#include <GEOMAlgo_Tools.hxx>
 
 //=======================================================================
-//function : 
-//purpose  : 
+//function :
+//purpose  :
 //=======================================================================
   GEOMAlgo_Builder::GEOMAlgo_Builder()
 :
@@ -56,7 +57,7 @@
 }
 //=======================================================================
 //function : ~
-//purpose  : 
+//purpose  :
 //=======================================================================
   GEOMAlgo_Builder::~GEOMAlgo_Builder()
 {
@@ -69,7 +70,7 @@
 }
 //=======================================================================
 //function : AddCompound
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::AddCompound(const TopoDS_Shape& theShape)
 {
@@ -83,7 +84,7 @@
 }
 //=======================================================================
 //function : AddShape
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::AddShape(const TopoDS_Shape& theShape)
 {
@@ -93,7 +94,7 @@
 }
 //=======================================================================
 //function : Shapes
-//purpose  : 
+//purpose  :
 //=======================================================================
   const TopTools_ListOfShape& GEOMAlgo_Builder::Shapes()const
 {
 }
 //=======================================================================
 //function : Clear
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::Clear()
 {
 }
 //=======================================================================
 //function : ClearInternals
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::ClearInternals()
 {
 }
 //=======================================================================
 //function : Prepare
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::Prepare()
 {
     AddShape1(aS);
   }
 }
-//=======================================================================
-//function : PostTreat
-//purpose  : 
-//=======================================================================
-  void GEOMAlgo_Builder::PostTreat()
-{
-  Standard_Integer aNbS;
-  TopoDS_Iterator aIt;
-  TopTools_ListOfShape aLS;
-  //
-  aIt.Initialize(myShape);
-  for (; aIt.More(); aIt.Next()) {
-    const TopoDS_Shape& aS=aIt.Value();
-    aLS.Append(aS);
-  }
-  aNbS=aLS.Extent();
-  if (aNbS==1) {
-    myShape=aLS.First();
-  }
-  
-  BRepLib::SameParameter(myShape, 1.e-7, Standard_True);
-}
+
 //=======================================================================
 //function : AddShape1
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::AddShape1(const TopoDS_Shape& theShape)
 {
 }
 //=======================================================================
 //function : BuildResult
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::BuildResult(const TopAbs_ShapeEnum theType)
 {
 }
 //=======================================================================
 //function : Perform
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::Perform()
 {
 }
 //=======================================================================
 //function : PerformWithFiller
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::PerformWithFiller(const NMTTools_PaveFiller& theDSF)
 {
 }
 //=======================================================================
 //function : PerformInternal
-//purpose  : 
+//purpose  :
 //=======================================================================
   void GEOMAlgo_Builder::PerformInternal(const NMTTools_PaveFiller& pPF)
 {
   if (myErrorStatus) {
     return;
   }
-  
+
   BuildResult(TopAbs_EDGE);
   if (myErrorStatus) {
     return;
   if (myErrorStatus) {
     return;
   }
-  
+
   BuildResult(TopAbs_WIRE);
   if (myErrorStatus) {
     return;
   }
-  
+
   // 3.4 Faces
   FillImagesFaces();
   if (myErrorStatus) {
     return;
   }
-  
+
   BuildResult(TopAbs_FACE);
   if (myErrorStatus) {
     return;
   }
   // 3.5 Shells
-  
+
   FillImagesContainers(TopAbs_SHELL);
   if (myErrorStatus) {
     return;
   }
-  
+
   BuildResult(TopAbs_SHELL);
   if (myErrorStatus) {
     return;
   if (myErrorStatus) {
     return;
   }
-  
+
   BuildResult(TopAbs_SOLID);
   if (myErrorStatus) {
     return;
   if (myErrorStatus) {
     return;
   }
-  
+
   BuildResult(TopAbs_COMPSOLID);
   if (myErrorStatus) {
     return;
   if (myErrorStatus) {
     return;
   }
-  
+
   BuildResult(TopAbs_COMPOUND);
   if (myErrorStatus) {
     return;
   // 4.History
   PrepareHistory();
   //
-  // 5 Post-treatment 
+  // 5 Post-treatment
   PostTreat();
 }
 //
+// static
+//   void CorrectWires(const TopoDS_Shape& aS);
+//
+//=======================================================================
+//function : PostTreat
+//purpose  :
+//=======================================================================
+  void GEOMAlgo_Builder::PostTreat()
+{
+  Standard_Integer aNbS;
+  TopoDS_Iterator aIt;
+  TopTools_ListOfShape aLS;
+  //
+  aIt.Initialize(myShape);
+  for (; aIt.More(); aIt.Next()) {
+    const TopoDS_Shape& aS=aIt.Value();
+    aLS.Append(aS);
+  }
+  aNbS=aLS.Extent();
+  if (aNbS==1) {
+    myShape=aLS.First();
+  }
+
+  BRepLib::SameParameter(myShape, 1.e-7, Standard_True);
+  //
+  GEOMAlgo_Tools::CorrectWires(myShape);
+}
+//
 // myErrorStatus
-// 
+//
 // 0  - Ok
 // 1  - The object is just initialized
 // 2  - PaveFiller is failed
 // 10 - No shapes to process
 // 30 - SolidBuilder failed
+