1 // Created on: 2000-10-27
2 // Created by: Peter KURNEV
3 // Copyright (c) 2000-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16
17 #include <gp_Pnt.hxx>
18 #include <IntTools_CommonPrt.hxx>
19 #include <IntTools_Range.hxx>
20 #include <IntTools_SequenceOfRanges.hxx>
21 #include <TopoDS_Edge.hxx>
22
23 //=======================================================================
24 //function : IntTools_CommonPrt::IntTools_CommonPr
25 //purpose :
26 //=======================================================================
IntTools_CommonPrt()27 IntTools_CommonPrt::IntTools_CommonPrt()
28 :
29 myType(TopAbs_SHAPE),
30 myAllNullFlag(Standard_False)
31
32 {
33 //
34 myPnt1.SetCoord(0.,0.,0.);
35 myPnt2.SetCoord(0.,0.,0.);
36 //
37 // modified by NIZHNY-MKK Wed Jun 8 16:47:04 2005.BEGIN
38 myVertPar1 = 0.;
39 myVertPar2 = 0.;
40 // modified by NIZHNY-MKK Wed Jun 8 16:47:07 2005.END
41 }
42
43 //=======================================================================
44 //function : IntTools_CommonPrt::IntTools_CommonPrt
45 //purpose :
46 //=======================================================================
IntTools_CommonPrt(const IntTools_CommonPrt & Other)47 IntTools_CommonPrt::IntTools_CommonPrt(const IntTools_CommonPrt& Other)
48 :
49 myEdge1(Other.myEdge1),
50 myEdge2(Other.myEdge2),
51 myType (Other.myType),
52 myRange1 (Other.myRange1),
53 myVertPar1(Other.myVertPar1),
54 myVertPar2(Other.myVertPar2),
55 myAllNullFlag(Standard_False),
56 //
57 myPnt1(Other.myPnt1),
58 myPnt2(Other.myPnt2)
59 //
60 {
61 Standard_Integer i, aNb=Other.myRanges2.Length();
62 for (i=1; i<=aNb; i++) {
63 myRanges2.Append(Other.myRanges2(i));
64 }
65 }
66
67 //=======================================================================
68 //function : IntTools_CommonPrt::Assign
69 //purpose :
70 //=======================================================================
Assign(const IntTools_CommonPrt & Other)71 IntTools_CommonPrt& IntTools_CommonPrt::Assign(const IntTools_CommonPrt& Other)
72 {
73 myEdge1=Other.myEdge1;
74 myEdge2=Other.myEdge2;
75 myType =Other.myType;
76 myRange1 =Other.myRange1;
77 myVertPar1=Other.myVertPar1;
78 myVertPar2=Other.myVertPar2;
79 //
80 myPnt1=Other.myPnt1;
81 myPnt2=Other.myPnt2;
82 //
83 Standard_Integer i, aNb=Other.myRanges2.Length();
84 for (i=1; i<=aNb; i++) {
85 myRanges2.Append(Other.myRanges2(i));
86 }
87 myAllNullFlag=Other.myAllNullFlag;
88 return *this;
89 }
90
91 //=======================================================================
92 //function : SetEdge1
93 //purpose :
94 //=======================================================================
SetEdge1(const TopoDS_Edge & anEdge)95 void IntTools_CommonPrt::SetEdge1(const TopoDS_Edge& anEdge)
96 {
97 myEdge1=anEdge;
98 }
99
100 //=======================================================================
101 //function : SetEdge2
102 //purpose :
103 //=======================================================================
SetEdge2(const TopoDS_Edge & anEdge)104 void IntTools_CommonPrt::SetEdge2(const TopoDS_Edge& anEdge)
105 {
106 myEdge2=anEdge;
107 }
108
109 //=======================================================================
110 //function : SetType
111 //purpose :
112 //=======================================================================
SetType(const TopAbs_ShapeEnum aType)113 void IntTools_CommonPrt::SetType (const TopAbs_ShapeEnum aType)
114 {
115 myType=aType;
116 }
117
118 //=======================================================================
119 //function : SetRange1
120 //purpose :
121 //=======================================================================
SetRange1(const IntTools_Range & aRange)122 void IntTools_CommonPrt::SetRange1 (const IntTools_Range& aRange)
123 {
124 myRange1=aRange;
125 }
126
127 //=======================================================================
128 //function : SetRange1
129 //purpose :
130 //=======================================================================
SetRange1(const Standard_Real tf,const Standard_Real tl)131 void IntTools_CommonPrt::SetRange1 (const Standard_Real tf,
132 const Standard_Real tl)
133 {
134 myRange1.SetFirst(tf);
135 myRange1.SetLast (tl);
136 }
137
138 //=======================================================================
139 //function : AppendRange2
140 //purpose :
141 //=======================================================================
AppendRange2(const IntTools_Range & aRange)142 void IntTools_CommonPrt::AppendRange2 (const IntTools_Range& aRange)
143 {
144 myRanges2.Append(aRange);
145 }
146 //=======================================================================
147 //function : AppendRange2
148 //purpose :
149 //=======================================================================
AppendRange2(const Standard_Real tf,const Standard_Real tl)150 void IntTools_CommonPrt::AppendRange2 (const Standard_Real tf,
151 const Standard_Real tl)
152 {
153 IntTools_Range aRange(tf, tl);
154 myRanges2.Append(aRange);
155 }
156 //=======================================================================
157 //function : SetVertexParameter1
158 //purpose :
159 //=======================================================================
SetVertexParameter1(const Standard_Real tV)160 void IntTools_CommonPrt::SetVertexParameter1(const Standard_Real tV)
161 {
162 myVertPar1=tV;
163 }
164 //=======================================================================
165 //function : SetVertexParameter2
166 //purpose :
167 //=======================================================================
SetVertexParameter2(const Standard_Real tV)168 void IntTools_CommonPrt::SetVertexParameter2(const Standard_Real tV)
169 {
170 myVertPar2=tV;
171 }
172
173 //=======================================================================
174 //function : Edge1
175 //purpose :
176 //=======================================================================
Edge1() const177 const TopoDS_Edge& IntTools_CommonPrt::Edge1() const
178 {
179 return myEdge1;
180 }
181
182 //=======================================================================
183 //function : Edge2
184 //purpose :
185 //=======================================================================
Edge2() const186 const TopoDS_Edge& IntTools_CommonPrt::Edge2() const
187 {
188 return myEdge2;
189 }
190
191 //=======================================================================
192 //function : TopAbs_ShapeEnum
193 //purpose :
194 //=======================================================================
Type() const195 TopAbs_ShapeEnum IntTools_CommonPrt::Type() const
196 {
197 return myType;
198 }
199
200 //=======================================================================
201 //function : Range1
202 //purpose :
203 //=======================================================================
Range1() const204 const IntTools_Range& IntTools_CommonPrt::Range1() const
205 {
206 return myRange1;
207 }
208
209 //=======================================================================
210 //function : Range1
211 //purpose :
212 //=======================================================================
Range1(Standard_Real & tf,Standard_Real & tl) const213 void IntTools_CommonPrt::Range1(Standard_Real& tf,
214 Standard_Real& tl) const
215 {
216 tf=myRange1.First();
217 tl=myRange1.Last();
218 }
219 //=======================================================================
220 //function : Ranges2
221 //purpose :
222 //=======================================================================
Ranges2() const223 const IntTools_SequenceOfRanges& IntTools_CommonPrt::Ranges2() const
224 {
225 return myRanges2;
226 }
227 //=======================================================================
228 //function : ChangeRanges2
229 //purpose :
230 //=======================================================================
ChangeRanges2()231 IntTools_SequenceOfRanges& IntTools_CommonPrt::ChangeRanges2()
232 {
233 return myRanges2;
234 }
235
236 //=======================================================================
237 //function : VertexParameter1
238 //purpose :
239 //=======================================================================
VertexParameter1() const240 Standard_Real IntTools_CommonPrt::VertexParameter1() const
241 {
242 return myVertPar1;
243 }
244 //=======================================================================
245 //function : VertexParameter2
246 //purpose :
247 //=======================================================================
VertexParameter2() const248 Standard_Real IntTools_CommonPrt::VertexParameter2() const
249 {
250 return myVertPar2;
251 }
252
253 //=======================================================================
254 //function : Copy
255 //purpose :
256 //=======================================================================
Copy(IntTools_CommonPrt & aCP) const257 void IntTools_CommonPrt::Copy(IntTools_CommonPrt& aCP) const
258 {
259 aCP.SetEdge1(Edge1());
260 aCP.SetEdge2(Edge2());
261 aCP.SetType (Type());
262 aCP.SetRange1(Range1());
263 aCP.SetVertexParameter1(myVertPar1);
264 aCP.SetVertexParameter2(myVertPar2);
265
266 IntTools_SequenceOfRanges aSeqRanges;
267 Standard_Integer i, aNb;
268 aNb=myRanges2.Length();
269 for (i=1; i<=aNb; i++) {
270 aCP.AppendRange2(myRanges2(i));
271 }
272 }
273
274 //=======================================================================
275 //function : SetAllNullFlag
276 //purpose :
277 //=======================================================================
SetAllNullFlag(const Standard_Boolean aFlag)278 void IntTools_CommonPrt::SetAllNullFlag(const Standard_Boolean aFlag)
279 {
280 myAllNullFlag=aFlag;
281 }
282
283 //=======================================================================
284 //function : AllNullFlag
285 //purpose :
286 //=======================================================================
AllNullFlag() const287 Standard_Boolean IntTools_CommonPrt::AllNullFlag()const
288 {
289 return myAllNullFlag;
290 }
291
292 //
293 //=======================================================================
294 //function : SetBoundingPoints
295 //purpose :
296 //=======================================================================
SetBoundingPoints(const gp_Pnt & aP1,const gp_Pnt & aP2)297 void IntTools_CommonPrt::SetBoundingPoints(const gp_Pnt& aP1,
298 const gp_Pnt& aP2)
299 {
300 myPnt1=aP1;
301 myPnt2=aP2;
302 }
303 //=======================================================================
304 //function : BoundingPoints
305 //purpose :
306 //=======================================================================
BoundingPoints(gp_Pnt & aP1,gp_Pnt & aP2) const307 void IntTools_CommonPrt::BoundingPoints(gp_Pnt& aP1,
308 gp_Pnt& aP2) const
309 {
310 aP1=myPnt1;
311 aP2=myPnt2;
312 }
313 //
314