Integration of OCCT 6.5.0 from SVN
[occt.git] / src / IntRes2d / IntRes2d_Transition.lxx
1 // File:        IntRes2d_Transition.lxx
2 // Created:     Wed Jun 10 15:06:44 1992
3 // Author:      Laurent BUCHARD
4 //              <lbr@sdsun2>
5
6 #include <Standard_DomainError.hxx>
7
8 ostream& operator << (ostream&, IntRes2d_Transition&);
9
10 inline IntRes2d_Transition::IntRes2d_Transition (const Standard_Boolean Tangent, 
11                                           const IntRes2d_Position Pos,
12                                           const IntRes2d_TypeTrans Type ):
13
14     tangent(Tangent),posit(Pos),typetra(Type),situat(IntRes2d_Unknown),oppos(Standard_False)
15
16 {
17 }
18
19 inline IntRes2d_Transition::IntRes2d_Transition (const Standard_Boolean Tangent, 
20                                           const IntRes2d_Position Pos,
21                                           const IntRes2d_Situation Situ,
22                                           const Standard_Boolean Oppos):
23     tangent(Tangent),posit(Pos),typetra(IntRes2d_Touch),
24     situat(Situ),oppos(Oppos)
25 {
26 }
27
28 inline IntRes2d_Transition::IntRes2d_Transition (const IntRes2d_Position Pos):
29
30     tangent(Standard_True),posit(Pos),typetra(IntRes2d_Undecided),situat(IntRes2d_Unknown),oppos(Standard_False)
31 {
32 }
33
34 inline void IntRes2d_Transition::SetValue (const Standard_Boolean Tangent, 
35                                     const IntRes2d_Position Pos,
36                                     const IntRes2d_TypeTrans Type ) {
37
38   tangent=Tangent;
39   posit=Pos;
40   typetra=Type;
41 }
42
43 inline void IntRes2d_Transition::SetValue (const Standard_Boolean Tangent, 
44                                     const IntRes2d_Position Pos,
45                                     const IntRes2d_Situation Situ,
46                                     const Standard_Boolean Oppos) {
47
48   tangent=Tangent;
49   posit=Pos;
50   typetra=IntRes2d_Touch;
51   situat=Situ;
52   oppos=Oppos;
53   
54 }
55
56 inline void IntRes2d_Transition::SetValue (const IntRes2d_Position Pos ) {
57
58   posit=Pos;
59   typetra=IntRes2d_Undecided;
60 }
61
62 inline void IntRes2d_Transition::SetPosition (const IntRes2d_Position Pos ) {
63
64   posit=Pos;
65 }
66
67 inline IntRes2d_Position IntRes2d_Transition::PositionOnCurve () const {
68
69   return posit;
70 }
71
72 inline IntRes2d_TypeTrans IntRes2d_Transition::TransitionType () const {
73
74   return typetra;
75 }
76
77 inline Standard_Boolean IntRes2d_Transition::IsTangent () const {
78
79   if (typetra==IntRes2d_Undecided) {
80     Standard_DomainError::Raise();
81   }
82   return tangent;
83 }
84
85 inline IntRes2d_Situation IntRes2d_Transition::Situation () const {
86
87   if (typetra!=IntRes2d_Touch) {
88     Standard_DomainError::Raise();
89   }
90   return situat;
91 }
92
93 inline Standard_Boolean IntRes2d_Transition::IsOpposite () const {
94
95   if (typetra!=IntRes2d_Touch) {
96     Standard_DomainError::Raise();
97   }
98   return oppos;
99 }
100