summaryrefslogtreecommitdiff
path: root/src/TopOpeBRepDS/TopOpeBRepDS_ShapeWithState.cxx
blob: 96cf04795b6998921c086d9871359c24420ebdbb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// File:	TopOpeBRepDS_ShapeWithState.cxx
// Created:	Mon Sep 20 11:54:00 1999
// Author:	Peter KURNEV
//		<pkv@kivox.nnov.matra-dtv.fr>

#include <TopOpeBRepDS_ShapeWithState.ixx>
#include <TopTools_ListIteratorOfListOfShape.hxx>

//=======================================================================
//function : TopOpeBRepDS_ShapeWithState
//purpose  : 
//=======================================================================
TopOpeBRepDS_ShapeWithState::TopOpeBRepDS_ShapeWithState():
       myState(TopAbs_UNKNOWN), myIsSplitted(Standard_False) 
{}
//=======================================================================
//function : Part
//purpose  : 
//=======================================================================
  const TopTools_ListOfShape& TopOpeBRepDS_ShapeWithState::Part (const TopAbs_State aState) const
{
  static TopTools_ListOfShape myEmptyListOfShape ;
  switch (aState) 
    {
    case TopAbs_IN:
      return myPartIn;
    case TopAbs_OUT:
      return myPartOut;
    case TopAbs_ON:
      return myPartOn;
    default :
      return myEmptyListOfShape;
    }
}

//=======================================================================
//function : AddPart
//purpose  : 
//=======================================================================
  void TopOpeBRepDS_ShapeWithState::AddPart (const TopoDS_Shape& aShape, 
					     const TopAbs_State aState) 
{
  switch (aState) 
    {
    case TopAbs_IN:
      myPartIn.Append(aShape);
      break;
    case TopAbs_OUT:
      myPartOut.Append(aShape);
      break;
    case TopAbs_ON:
     myPartOn.Append(aShape);
      break;
    default :
      break; 
    }
}

//=======================================================================
//function : AddParts
//purpose  : 
//=======================================================================
  void TopOpeBRepDS_ShapeWithState::AddParts (const TopTools_ListOfShape& aListOfShape, 
					      const TopAbs_State aState) 
{
  TopTools_ListIteratorOfListOfShape anIt(aListOfShape);

  switch (aState) 
    {
    case TopAbs_IN:
      for (; anIt.More(); anIt.Next()) {
	myPartIn.Append(anIt.Value());
      }
      break;
    case TopAbs_OUT:
      for (; anIt.More(); anIt.Next()) {
	myPartOut.Append(anIt.Value());
      }
      break;
    case TopAbs_ON:
      for (; anIt.More(); anIt.Next()) {
	myPartOn.Append(anIt.Value());
      }
      break;
    
      default :
	break; 
    }
}


//=======================================================================
//function : SetState
//purpose  : 
//=======================================================================
  void TopOpeBRepDS_ShapeWithState::SetState(const TopAbs_State aState) 
{
  myState=aState;
}
//=======================================================================
//function : State
//purpose  : 
//=======================================================================
  TopAbs_State TopOpeBRepDS_ShapeWithState::State() const
{
  return myState;
}

//=======================================================================
//function : SetIsSplitted
//purpose  : 
//=======================================================================
  void TopOpeBRepDS_ShapeWithState::SetIsSplitted(const Standard_Boolean aFlag) 
{
  myIsSplitted=aFlag;
}
//=======================================================================
//function : IsSplitted
//purpose  : 
//=======================================================================
  Standard_Boolean TopOpeBRepDS_ShapeWithState::IsSplitted() const
{
  return myIsSplitted;
}