0027870: Modeling - refactoring of HLR algorithms
[occt.git] / src / HLRAlgo / HLRAlgo_BiPoint.cxx
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 No_Exception
18 #define No_Exception
19 #endif
20
21
22 #include <HLRAlgo_BiPoint.hxx>
23
24 //=======================================================================
25 //function : HLRAlgo_BiPoint
26 //purpose  : 
27 //=======================================================================
28
29 HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
30                                   const Standard_Real Y1,
31                                   const Standard_Real Z1,
32                                   const Standard_Real X2,
33                                   const Standard_Real Y2,
34                                   const Standard_Real Z2,
35                                   const Standard_Real XT1,
36                                   const Standard_Real YT1,
37                                   const Standard_Real ZT1,
38                                   const Standard_Real XT2,
39                                   const Standard_Real YT2,
40                                   const Standard_Real ZT2,
41                                   const Standard_Integer Index,
42                                   const Standard_Boolean reg1,
43                                   const Standard_Boolean regn,
44                                   const Standard_Boolean outl,
45                                   const Standard_Boolean intl)
46 {
47   myPoints.Pnt1.SetCoord(X1, Y1, Z1);
48   myPoints.Pnt2.SetCoord(X2, Y2, Z2);
49   myPoints.PntP1.SetCoord(XT1, YT1, ZT1);
50   myPoints.PntP2.SetCoord(XT2, YT2, ZT2);
51   myIndices.ShapeIndex = Index;
52   myIndices.FaceConex1 = myIndices.Face1Pt1 = myIndices.Face1Pt2 =
53     myIndices.FaceConex2 = myIndices.Face2Pt1 = myIndices.Face2Pt2 = 0;
54   myIndices.SegFlags = 0;
55   Rg1Line(reg1);
56   RgNLine(regn);
57   OutLine(outl);
58   IntLine(intl);
59   Hidden(Standard_False);
60 }
61
62 //=======================================================================
63 //function : HLRAlgo_BiPoint
64 //purpose  : 
65 //=======================================================================
66
67 HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
68                                   const Standard_Real Y1,
69                                   const Standard_Real Z1,
70                                   const Standard_Real X2,
71                                   const Standard_Real Y2,
72                                   const Standard_Real Z2,
73                                   const Standard_Real XT1,
74                                   const Standard_Real YT1,
75                                   const Standard_Real ZT1,
76                                   const Standard_Real XT2,
77                                   const Standard_Real YT2,
78                                   const Standard_Real ZT2,
79                                   const Standard_Integer Index,
80                                   const Standard_Integer flag)
81 {
82   myPoints.Pnt1 = gp_XYZ(X1, Y1, Z1);
83   myPoints.Pnt2 = gp_XYZ(X2, Y2, Z2);
84   myPoints.PntP1 = gp_XYZ(XT1, YT1, ZT1);
85   myPoints.PntP2 = gp_XYZ(XT2, YT2, ZT2);
86   myIndices.ShapeIndex = Index;
87   myIndices.FaceConex1 = myIndices.Face1Pt1 = myIndices.Face1Pt2 =
88     myIndices.FaceConex2 = myIndices.Face2Pt1 = myIndices.Face2Pt2 = 0;
89   myIndices.SegFlags = flag;
90   Hidden(Standard_False);
91 }
92
93 //=======================================================================
94 //function : HLRAlgo_BiPoint
95 //purpose  : 
96 //=======================================================================
97
98 HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
99                                   const Standard_Real Y1,
100                                   const Standard_Real Z1,
101                                   const Standard_Real X2,
102                                   const Standard_Real Y2,
103                                   const Standard_Real Z2,
104                                   const Standard_Real XT1,
105                                   const Standard_Real YT1,
106                                   const Standard_Real ZT1,
107                                   const Standard_Real XT2,
108                                   const Standard_Real YT2,
109                                   const Standard_Real ZT2,
110                                   const Standard_Integer Index,
111                                   const Standard_Integer i1,
112                                   const Standard_Integer i1p1,
113                                   const Standard_Integer i1p2,
114                                   const Standard_Boolean reg1,
115                                   const Standard_Boolean regn,
116                                   const Standard_Boolean outl,
117                                   const Standard_Boolean intl)
118 {
119   myPoints.Pnt1.SetCoord(X1, Y1, Z1);
120   myPoints.Pnt2.SetCoord(X2, Y2, Z2);
121   myPoints.PntP1.SetCoord(XT1, YT1, ZT1);
122   myPoints.PntP2.SetCoord(XT2, YT2, ZT2);
123   myIndices.ShapeIndex = Index;
124   myIndices.FaceConex1 = i1;
125   myIndices.Face1Pt1 = i1p1;
126   myIndices.Face1Pt2 = i1p2;
127   myIndices.FaceConex2 = myIndices.Face2Pt1 = myIndices.Face2Pt2 = 0;
128   myIndices.SegFlags = 0;
129   Rg1Line(reg1);
130   RgNLine(regn);
131   OutLine(outl);
132   IntLine(intl);
133   Hidden(Standard_False);
134 }
135
136 //=======================================================================
137 //function : HLRAlgo_BiPoint
138 //purpose  : 
139 //=======================================================================
140
141 HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
142                                   const Standard_Real Y1,
143                                   const Standard_Real Z1,
144                                   const Standard_Real X2,
145                                   const Standard_Real Y2,
146                                   const Standard_Real Z2,
147                                   const Standard_Real XT1,
148                                   const Standard_Real YT1,
149                                   const Standard_Real ZT1,
150                                   const Standard_Real XT2,
151                                   const Standard_Real YT2,
152                                   const Standard_Real ZT2,
153                                   const Standard_Integer Index,
154                                   const Standard_Integer i1,
155                                   const Standard_Integer i1p1,
156                                   const Standard_Integer i1p2,
157                                   const Standard_Integer flag)
158 {
159   myPoints.Pnt1.SetCoord(X1, Y1, Z1);
160   myPoints.Pnt2.SetCoord(X2, Y2, Z2);
161   myPoints.PntP1.SetCoord(XT1, YT1, ZT1);
162   myPoints.PntP2.SetCoord(XT2, YT2, ZT2);
163   myIndices.ShapeIndex = Index;
164   myIndices.FaceConex1 = i1;
165   myIndices.Face1Pt1 = i1p1;
166   myIndices.Face1Pt2 = i1p2;
167   myIndices.FaceConex2 = myIndices.Face2Pt1 = myIndices.Face2Pt2 = 0;
168   myIndices.SegFlags = flag;
169   Hidden(Standard_False);
170 }
171
172 //=======================================================================
173 //function : HLRAlgo_BiPoint
174 //purpose  : 
175 //=======================================================================
176
177 HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
178                                   const Standard_Real Y1,
179                                   const Standard_Real Z1,
180                                   const Standard_Real X2,
181                                   const Standard_Real Y2,
182                                   const Standard_Real Z2,
183                                   const Standard_Real XT1,
184                                   const Standard_Real YT1,
185                                   const Standard_Real ZT1,
186                                   const Standard_Real XT2,
187                                   const Standard_Real YT2,
188                                   const Standard_Real ZT2,
189                                   const Standard_Integer Index,
190                                   const Standard_Integer i1,
191                                   const Standard_Integer i1p1,
192                                   const Standard_Integer i1p2,
193                                   const Standard_Integer i2,
194                                   const Standard_Integer i2p1,
195                                   const Standard_Integer i2p2,
196                                   const Standard_Boolean reg1,
197                                   const Standard_Boolean regn,
198                                   const Standard_Boolean outl,
199                                   const Standard_Boolean intl)
200 {
201   myPoints.Pnt1.SetCoord(X1, Y1, Z1);
202   myPoints.Pnt2.SetCoord(X2, Y2, Z2);
203   myPoints.PntP1.SetCoord(XT1, YT1, ZT1);
204   myPoints.PntP2.SetCoord(XT2, YT2, ZT2);
205   myIndices.ShapeIndex = Index;
206   myIndices.FaceConex1 = i1;
207   myIndices.Face1Pt1 = i1p1;
208   myIndices.Face1Pt2 = i1p2;
209   myIndices.FaceConex2 = i2;
210   myIndices.Face2Pt1 = i2p1;
211   myIndices.Face2Pt2 = i2p2;
212   myIndices.SegFlags = 0;
213   Rg1Line(reg1);
214   RgNLine(regn);
215   OutLine(outl);
216   IntLine(intl);
217   Hidden(Standard_False);
218 }
219
220 //=======================================================================
221 //function : HLRAlgo_BiPoint
222 //purpose  : 
223 //=======================================================================
224
225 HLRAlgo_BiPoint::HLRAlgo_BiPoint (const Standard_Real X1,
226                                   const Standard_Real Y1,
227                                   const Standard_Real Z1,
228                                   const Standard_Real X2,
229                                   const Standard_Real Y2,
230                                   const Standard_Real Z2,
231                                   const Standard_Real XT1,
232                                   const Standard_Real YT1,
233                                   const Standard_Real ZT1,
234                                   const Standard_Real XT2,
235                                   const Standard_Real YT2,
236                                   const Standard_Real ZT2,
237                                   const Standard_Integer Index,
238                                   const Standard_Integer i1,
239                                   const Standard_Integer i1p1,
240                                   const Standard_Integer i1p2,
241                                   const Standard_Integer i2,
242                                   const Standard_Integer i2p1,
243                                   const Standard_Integer i2p2,
244                                   const Standard_Integer flag)
245 {
246   myPoints.Pnt1.SetCoord(X1, Y1, Z1);
247   myPoints.Pnt2.SetCoord(X2, Y2, Z2);
248   myPoints.PntP1.SetCoord(XT1, YT1, ZT1);
249   myPoints.PntP2.SetCoord(XT2, YT2, ZT2);
250   myIndices.ShapeIndex = Index;
251   myIndices.FaceConex1 = i1;
252   myIndices.Face1Pt1 = i1p1;
253   myIndices.Face1Pt2 = i1p2;
254   myIndices.FaceConex2 = i2;
255   myIndices.Face2Pt1 = i2p1;
256   myIndices.Face2Pt2 = i2p2;
257   myIndices.SegFlags = flag;
258   Hidden(Standard_False);
259 }