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