0024275: Cppcheck warnings on uninitialized class members
[occt.git] / src / BRepMesh / BRepMesh_Triangle.cxx
1 // Created on: 1993-09-23
2 // Created by: Didier PIFFAULT
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2012 OPEN CASCADE SAS
5 //
6 // The content of this file is subject to the Open CASCADE Technology Public
7 // License Version 6.5 (the "License"). You may not use the content of this file
8 // except in compliance with the License. Please obtain a copy of the License
9 // at http://www.opencascade.org and read it completely before using this file.
10 //
11 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 //
14 // The Original Code and all software distributed under the License is
15 // distributed on an "AS IS" basis, without warranty of any kind, and the
16 // Initial Developer hereby disclaims all such warranties, including without
17 // limitation, any warranties of merchantability, fitness for a particular
18 // purpose or non-infringement. Please see the License for the specific terms
19 // and conditions governing the rights and limitations under the License.
20
21 #include <BRepMesh_Triangle.hxx>
22
23 //=======================================================================
24 //function : Constructor
25 //purpose  : 
26 //=======================================================================
27 BRepMesh_Triangle::BRepMesh_Triangle()
28 : myEdge1(0),
29   myEdge2(0),
30   myEdge3(0),
31   myOrientation1(Standard_False),
32   myOrientation2(Standard_False),
33   myOrientation3(Standard_False),
34   myMovability(BRepMesh_Free)
35 {
36 }
37
38 //=======================================================================
39 //function : Constructor
40 //purpose  : 
41 //=======================================================================
42 BRepMesh_Triangle::BRepMesh_Triangle (const Standard_Integer          theEdge1,
43                                       const Standard_Integer          theEdge2,
44                                       const Standard_Integer          theEdge3,
45                                       const Standard_Boolean          theOrientation1,
46                                       const Standard_Boolean          theOrientation2,
47                                       const Standard_Boolean          theOrientation3,
48                                       const BRepMesh_DegreeOfFreedom  isCanMove)
49 : myEdge1(theEdge1),
50   myEdge2(theEdge2),
51   myEdge3(theEdge3),
52   myOrientation1(theOrientation1),
53   myOrientation2(theOrientation2), 
54   myOrientation3(theOrientation3), 
55   myMovability(isCanMove)
56 {
57 }
58
59 //=======================================================================
60 //function : Initialize
61 //purpose  : 
62 //=======================================================================
63 void  BRepMesh_Triangle::Initialize(const Standard_Integer          theEdge1,
64                                     const Standard_Integer          theEdge2,
65                                     const Standard_Integer          theEdge3,
66                                     const Standard_Boolean          theOrientation1,
67                                     const Standard_Boolean          theOrientation2,
68                                     const Standard_Boolean          theOrientation3,
69                                     const BRepMesh_DegreeOfFreedom  isCanMove)
70 {
71   myEdge1        = theEdge1;
72   myEdge2        = theEdge2;
73   myEdge3        = theEdge3;
74   myOrientation1 = theOrientation1;
75   myOrientation2 = theOrientation2;
76   myOrientation3 = theOrientation3;
77   myMovability   = isCanMove;
78 }
79
80 //=======================================================================
81 //function : Edges
82 //purpose  : 
83 //=======================================================================
84 void  BRepMesh_Triangle::Edges(Standard_Integer& theEdge1,
85                                Standard_Integer& theEdge2,
86                                Standard_Integer& theEdge3,
87                                Standard_Boolean& theOrientation1,
88                                Standard_Boolean& theOrientation2,
89                                Standard_Boolean& theOrientation3) const
90 {
91   theEdge1        = myEdge1;
92   theEdge2        = myEdge2;
93   theEdge3        = myEdge3;
94   theOrientation1 = myOrientation1;
95   theOrientation2 = myOrientation2;
96   theOrientation3 = myOrientation3;
97 }
98
99 //=======================================================================
100 //function : SetMovability
101 //purpose  : 
102 //=======================================================================
103 void BRepMesh_Triangle::SetMovability(const BRepMesh_DegreeOfFreedom theMovability)
104 {
105   myMovability = theMovability;
106 }
107
108 //=======================================================================
109 //function : HashCode
110 //purpose  : 
111 //=======================================================================
112 Standard_Integer BRepMesh_Triangle::HashCode(const Standard_Integer theUpper)const 
113 {
114   return ::HashCode(myEdge1 + myEdge2 + myEdge3, theUpper);
115 }
116
117 //=======================================================================
118 //function : IsEqual
119 //purpose  : 
120 //=======================================================================
121 Standard_Boolean BRepMesh_Triangle::IsEqual(const BRepMesh_Triangle& theOther) const 
122 {
123   if (myMovability == BRepMesh_Deleted || theOther.myMovability == BRepMesh_Deleted)
124     return Standard_False;
125
126   if (myEdge1 == theOther.myEdge1 && 
127       myEdge2 == theOther.myEdge2 && 
128       myEdge3 == theOther.myEdge3)
129   {
130     return Standard_True;
131   }
132
133   if (myEdge1 == theOther.myEdge2 && 
134       myEdge2 == theOther.myEdge3 && 
135       myEdge3 == theOther.myEdge1)
136   {
137     return Standard_True;
138   }
139
140   if (myEdge1 == theOther.myEdge3 && 
141       myEdge2 == theOther.myEdge1 && 
142       myEdge3 == theOther.myEdge2)
143   {
144     return Standard_True;
145   }
146
147   return Standard_False;
148 }