Salome HOME
Preparation of intermediate revision
[modules/geom.git] / src / GEOMAlgo / GEOMAlgo_ShapeSolid.cxx
index 72ed66f4632fe125460004bea9aa000a8f31cfe2..1883de4a06df8ad3d6695d6eed2cac6f1ecc3bf3 100644 (file)
@@ -1,9 +1,29 @@
+//  Copyright (C) 2007-2008  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
+//
+//  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.
+//
+//  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
+//
 // File:       GEOMAlgo_ShapeSolid.cxx
 // Created:    Thu Jan 13 12:54:48 2005
 // Author:     Peter KURNEV
 //             <pkv@irinox>
-
-
+//
 #include <GEOMAlgo_ShapeSolid.ixx>
 
 #include <TopTools_ListIteratorOfListOfShape.hxx>
@@ -35,80 +55,27 @@ void GEOMAlgo_ShapeSolid::SetFiller(const BOPTools_DSFiller& aDSFiller)
 {
   myDSFiller=(BOPTools_DSFiller*) &aDSFiller;
 }
-
 //=======================================================================
 // function: Shapes
 // purpose: 
 //=======================================================================
-const TopTools_ListOfShape& GEOMAlgo_ShapeSolid::Shapes(const GEOMAlgo_State aState) const
+const TopTools_ListOfShape& GEOMAlgo_ShapeSolid::Shapes(const TopAbs_State aState) const
 {
-  TopTools_ListIteratorOfListOfShape aIt;
-  //
-  TopTools_ListOfShape* pLS=(TopTools_ListOfShape*)&myLS;
-  //
-  pLS->Clear();
+  const TopTools_ListOfShape *pL;
   //
   switch (aState) {
-    case GEOMAlgo_ST_IN: {
-      aIt.Initialize(myLSIN);
-      for (; aIt.More(); aIt.Next()) {
-       const TopoDS_Shape& aS=aIt.Value(); 
-       pLS->Append(aS);
-      }
-    }
+    case TopAbs_IN:
+      pL=&myLSIN;
       break;
-    //  
-    case GEOMAlgo_ST_OUT: {
-      aIt.Initialize(myLSOUT);
-      for (; aIt.More(); aIt.Next()) {
-       const TopoDS_Shape& aS=aIt.Value(); 
-       pLS->Append(aS);
-      }
-    }
+    case TopAbs_OUT:
+      pL=&myLSOUT;
       break;
-    //  
-    case GEOMAlgo_ST_ON: {
-      aIt.Initialize(myLSON);
-      for (; aIt.More(); aIt.Next()) {
-       const TopoDS_Shape& aS=aIt.Value(); 
-       pLS->Append(aS);
-      }
-    }
-      break;
-    //  
-    case GEOMAlgo_ST_ONIN: {
-      aIt.Initialize(myLSON);
-      for (; aIt.More(); aIt.Next()) {
-       const TopoDS_Shape& aS=aIt.Value(); 
-       pLS->Append(aS);
-      }
-      aIt.Initialize(myLSIN);
-      for (; aIt.More(); aIt.Next()) {
-       const TopoDS_Shape& aS=aIt.Value(); 
-       pLS->Append(aS);
-      }
-    }
-      break;
-    //  
-    case GEOMAlgo_ST_ONOUT: {
-      aIt.Initialize(myLSON);
-      for (; aIt.More(); aIt.Next()) {
-       const TopoDS_Shape& aS=aIt.Value(); 
-       pLS->Append(aS);
-      }
-      aIt.Initialize(myLSOUT);
-      for (; aIt.More(); aIt.Next()) {
-       const TopoDS_Shape& aS=aIt.Value(); 
-       pLS->Append(aS);
-      }
-    }
-      break;
-    //
-    case GEOMAlgo_ST_UNKNOWN:
-    case GEOMAlgo_ST_INOUT:
+    case TopAbs_ON:
+      pL=&myLSON;
+      break;  
     default:
-      break;
+      pL=&myLSON;
+      break; 
   }
-  return myLS;
+  return *pL;
 }
-