]> SALOME platform Git repositories - modules/geom.git/blob - src/GEOMAlgo/GEOMAlgo_ShapeSolid.cxx
Salome HOME
Merge with OCC_development_01
[modules/geom.git] / src / GEOMAlgo / GEOMAlgo_ShapeSolid.cxx
1 // File:        GEOMAlgo_ShapeSolid.cxx
2 // Created:     Thu Jan 13 12:54:48 2005
3 // Author:      Peter KURNEV
4 //              <pkv@irinox>
5
6
7 #include <GEOMAlgo_ShapeSolid.ixx>
8
9 #include <TopTools_ListIteratorOfListOfShape.hxx>
10 #include <TopTools_ListOfShape.hxx>
11
12 //=======================================================================
13 //function : GEOMAlgo_ShapeSolid
14 //purpose  : 
15 //=======================================================================
16 GEOMAlgo_ShapeSolid::GEOMAlgo_ShapeSolid()
17 :
18   GEOMAlgo_Algo(),
19   myRank(0),
20   myDSFiller(NULL)
21 {
22 }
23 //=======================================================================
24 //function : ~
25 //purpose  : 
26 //=======================================================================
27 GEOMAlgo_ShapeSolid::~GEOMAlgo_ShapeSolid()
28 {
29 }
30 //=======================================================================
31 //function : SetFiller
32 //purpose  : 
33 //=======================================================================
34 void GEOMAlgo_ShapeSolid::SetFiller(const BOPTools_DSFiller& aDSFiller)
35 {
36   myDSFiller=(BOPTools_DSFiller*) &aDSFiller;
37 }
38
39 //=======================================================================
40 // function: Shapes
41 // purpose: 
42 //=======================================================================
43 const TopTools_ListOfShape& GEOMAlgo_ShapeSolid::Shapes(const GEOMAlgo_State aState) const
44 {
45   TopTools_ListIteratorOfListOfShape aIt;
46   //
47   TopTools_ListOfShape* pLS=(TopTools_ListOfShape*)&myLS;
48   //
49   pLS->Clear();
50   //
51   switch (aState) {
52     case GEOMAlgo_ST_IN: {
53       aIt.Initialize(myLSIN);
54       for (; aIt.More(); aIt.Next()) {
55         const TopoDS_Shape& aS=aIt.Value(); 
56         pLS->Append(aS);
57       }
58     }
59       break;
60     //  
61     case GEOMAlgo_ST_OUT: {
62       aIt.Initialize(myLSOUT);
63       for (; aIt.More(); aIt.Next()) {
64         const TopoDS_Shape& aS=aIt.Value(); 
65         pLS->Append(aS);
66       }
67     }
68       break;
69     //  
70     case GEOMAlgo_ST_ON: {
71       aIt.Initialize(myLSON);
72       for (; aIt.More(); aIt.Next()) {
73         const TopoDS_Shape& aS=aIt.Value(); 
74         pLS->Append(aS);
75       }
76     }
77       break;
78     //  
79     case GEOMAlgo_ST_ONIN: {
80       aIt.Initialize(myLSON);
81       for (; aIt.More(); aIt.Next()) {
82         const TopoDS_Shape& aS=aIt.Value(); 
83         pLS->Append(aS);
84       }
85       aIt.Initialize(myLSIN);
86       for (; aIt.More(); aIt.Next()) {
87         const TopoDS_Shape& aS=aIt.Value(); 
88         pLS->Append(aS);
89       }
90     }
91       break;
92     //  
93     case GEOMAlgo_ST_ONOUT: {
94       aIt.Initialize(myLSON);
95       for (; aIt.More(); aIt.Next()) {
96         const TopoDS_Shape& aS=aIt.Value(); 
97         pLS->Append(aS);
98       }
99       aIt.Initialize(myLSOUT);
100       for (; aIt.More(); aIt.Next()) {
101         const TopoDS_Shape& aS=aIt.Value(); 
102         pLS->Append(aS);
103       }
104     }
105       break;
106     //
107     case GEOMAlgo_ST_UNKNOWN:
108     case GEOMAlgo_ST_INOUT:
109     default:
110       break;
111   }
112   return myLS;
113 }
114