0031035: Coding - uninitialized class fields reported by Visual Studio Code Analysis
[occt.git] / src / HLRAlgo / HLRAlgo_BiPoint.hxx
1 // Created on: 1995-06-22
2 // Created by: Christophe MARION
3 // Copyright (c) 1995-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _HLRAlgo_BiPoint_HeaderFile
18 #define _HLRAlgo_BiPoint_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <Standard_Integer.hxx>
25 #include <Standard_Real.hxx>
26 #include <Standard_Boolean.hxx>
27 #include <gp_XYZ.hxx>
28 #include <gp_XY.hxx>
29
30
31
32 class HLRAlgo_BiPoint
33 {
34 public:
35   struct IndicesT
36   {
37     IndicesT()
38     : ShapeIndex(-1),
39       FaceConex1(0),
40       Face1Pt1(0),
41       Face1Pt2(0),
42       FaceConex2(0),
43       Face2Pt1(0),
44       Face2Pt2(0),
45       MinSeg(0),
46       MaxSeg(0),
47       SegFlags(0)
48     {
49     }
50     Standard_Integer ShapeIndex;
51     Standard_Integer FaceConex1;
52     Standard_Integer Face1Pt1;
53     Standard_Integer Face1Pt2;
54     Standard_Integer FaceConex2;
55     Standard_Integer Face2Pt1;
56     Standard_Integer Face2Pt2;
57     Standard_Integer MinSeg;
58     Standard_Integer MaxSeg;
59     Standard_Integer SegFlags;
60   };
61
62   struct PointsT
63   {
64     gp_XYZ Pnt1;
65     gp_XYZ Pnt2;
66     gp_XYZ PntP1;
67     gp_XYZ PntP2;
68
69     gp_XY PntP12D() const
70     {
71       return gp_XY(PntP1.X(), PntP1.Y());
72     }
73
74     gp_XY PntP22D() const
75     {
76       return gp_XY(PntP2.X(), PntP2.Y());
77     }
78   };
79
80   DEFINE_STANDARD_ALLOC
81
82   HLRAlgo_BiPoint() {}
83
84   Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Boolean reg1, const Standard_Boolean regn, const Standard_Boolean outl, const Standard_Boolean intl);
85   
86   Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer flag);
87   
88   Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Boolean reg1, const Standard_Boolean regn, const Standard_Boolean outl, const Standard_Boolean intl);
89   
90   Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Integer flag);
91   
92   Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Integer i2, const Standard_Integer i2p1, const Standard_Integer i2p2, const Standard_Boolean reg1, const Standard_Boolean regn, const Standard_Boolean outl, const Standard_Boolean intl);
93   
94   Standard_EXPORT HLRAlgo_BiPoint(const Standard_Real X1, const Standard_Real Y1, const Standard_Real Z1, const Standard_Real X2, const Standard_Real Y2, const Standard_Real Z2, const Standard_Real XT1, const Standard_Real YT1, const Standard_Real ZT1, const Standard_Real XT2, const Standard_Real YT2, const Standard_Real ZT2, const Standard_Integer Index, const Standard_Integer i1, const Standard_Integer i1p1, const Standard_Integer i1p2, const Standard_Integer i2, const Standard_Integer i2p1, const Standard_Integer i2p2, const Standard_Integer flag);
95
96   Standard_Boolean Rg1Line() const
97   {
98     return (myIndices.SegFlags & EMskRg1Line) != 0;
99   }
100
101   void Rg1Line (const Standard_Boolean B)
102   {
103     if (B) myIndices.SegFlags |=  EMskRg1Line;
104     else   myIndices.SegFlags &= ~EMskRg1Line;
105   }
106
107   Standard_Boolean RgNLine() const
108   {
109     return (myIndices.SegFlags & EMskRgNLine) != 0;
110   }
111
112   void RgNLine (const Standard_Boolean B)
113   {
114     if (B) myIndices.SegFlags |=  EMskRgNLine;
115     else   myIndices.SegFlags &= ~EMskRgNLine;
116   }
117
118   Standard_Boolean OutLine() const
119   {
120     return (myIndices.SegFlags & EMskOutLine) != 0;
121   }
122
123   void OutLine (const Standard_Boolean B)
124   {
125     if (B) myIndices.SegFlags |=  EMskOutLine;
126     else   myIndices.SegFlags &= ~EMskOutLine;
127   }
128
129   Standard_Boolean IntLine() const
130   {
131     return (myIndices.SegFlags & EMskIntLine) != 0;
132   }
133
134   void IntLine (const Standard_Boolean B)
135   {
136     if (B) myIndices.SegFlags |=  EMskIntLine;
137     else   myIndices.SegFlags &= ~EMskIntLine;
138   }
139
140   Standard_Boolean Hidden() const
141   {
142     return (myIndices.SegFlags & EMskHidden) != 0;
143   }
144
145   void Hidden (const Standard_Boolean B)
146   {
147     if (B) myIndices.SegFlags |=  EMskHidden;
148     else   myIndices.SegFlags &= ~EMskHidden;
149   }
150
151   IndicesT& Indices()
152   {
153     return myIndices;
154   }
155
156   PointsT& Points()
157   {
158     return myPoints;
159   }
160
161 protected:
162
163   enum EMskFlags
164   {
165     EMskRg1Line = 1,
166     EMskRgNLine = 2,
167     EMskOutLine = 4,
168     EMskIntLine = 8,
169     EMskHidden  = 16
170   };
171
172 private:
173   IndicesT myIndices;
174   PointsT myPoints;
175
176 };
177
178 #endif // _HLRAlgo_BiPoint_HeaderFile