0022692: A wrong function is called inside the Extrema_CurveTool::IsRational
[occt.git] / src / Extrema / Extrema_Curve2dTool.lxx
1 // File:        Extrema_Curve2dTool.lxx
2 // Created:     Tue Jul 18 14:57:08 1995
3 // Author:      Modelistation
4 //              <model@metrox>
5
6 #include <gp_Lin2d.hxx>
7 #include <gp_Elips2d.hxx>
8 #include <gp_Circ2d.hxx>
9 #include <gp_Hypr2d.hxx>
10 #include <gp_Parab2d.hxx>
11 #include <Geom2d_BezierCurve.hxx>
12 #include <Geom2d_BSplineCurve.hxx>
13 #include <Adaptor2d_Curve2d.hxx>
14
15 //=======================================================================
16 //function : FirstParameter
17 //purpose  : 
18 //=======================================================================
19
20  inline Standard_Real Extrema_Curve2dTool::FirstParameter(const Adaptor2d_Curve2d& C)
21 {
22   return C.FirstParameter();
23 }
24
25 //=======================================================================
26 //function : LastParameter
27 //purpose  : 
28 //=======================================================================
29
30  inline Standard_Real Extrema_Curve2dTool::LastParameter(const Adaptor2d_Curve2d& C)
31 {
32   return C.LastParameter();
33 }
34
35 //=======================================================================
36 //function : Continuity
37 //purpose  : 
38 //=======================================================================
39
40  inline GeomAbs_Shape Extrema_Curve2dTool::Continuity(const Adaptor2d_Curve2d& C)
41 {
42   return C.Continuity();
43 }
44
45 //=======================================================================
46 //function : NbIntervals
47 //purpose  : 
48 //=======================================================================
49
50  inline Standard_Integer Extrema_Curve2dTool::NbIntervals(const Adaptor2d_Curve2d& C, 
51                                                               const GeomAbs_Shape S)
52 {
53   return C.NbIntervals(S);
54 }
55
56 //=======================================================================
57 //function : Intervals
58 //purpose  : 
59 //=======================================================================
60
61  inline void Extrema_Curve2dTool::Intervals(const Adaptor2d_Curve2d& C, 
62                                                 TColStd_Array1OfReal& T, 
63                                                 const GeomAbs_Shape S)
64 {
65   C.Intervals(T, S);
66 }
67
68 //=======================================================================
69 //function : IsClosed
70 //purpose  : 
71 //=======================================================================
72
73  inline Standard_Boolean Extrema_Curve2dTool::IsClosed(const Adaptor2d_Curve2d& C)
74 {
75   return C.IsClosed();
76 }
77
78 //=======================================================================
79 //function : IsPeriodic
80 //purpose  : 
81 //=======================================================================
82
83  inline Standard_Boolean Extrema_Curve2dTool::IsPeriodic(const Adaptor2d_Curve2d& C)
84 {
85   return C.IsPeriodic();
86 }
87
88 //=======================================================================
89 //function : Period
90 //purpose  : 
91 //=======================================================================
92
93  inline Standard_Real Extrema_Curve2dTool::Period(const Adaptor2d_Curve2d& C)
94 {
95   return C.Period();
96 }
97
98 //=======================================================================
99 //function : Value
100 //purpose  : 
101 //=======================================================================
102
103  inline gp_Pnt2d Extrema_Curve2dTool::Value(const Adaptor2d_Curve2d& C, 
104                                                 const Standard_Real U)
105 {
106   return C.Value(U);
107 }
108
109 //=======================================================================
110 //function : D0
111 //purpose  : 
112 //=======================================================================
113
114 inline void Extrema_Curve2dTool::D0(const Adaptor2d_Curve2d& C, 
115                                         const Standard_Real U, 
116                                         gp_Pnt2d& P)
117 {
118   C.D0(U, P);
119 }
120
121 //=======================================================================
122 //function : D1
123 //purpose  : 
124 //=======================================================================
125
126  inline void Extrema_Curve2dTool::D1(const Adaptor2d_Curve2d& C, 
127                                          const Standard_Real U, 
128                                          gp_Pnt2d& P, 
129                                          gp_Vec2d& V)
130 {
131   C.D1(U, P, V);
132 }
133
134 //=======================================================================
135 //function : D2
136 //purpose  : 
137 //=======================================================================
138
139 inline void Extrema_Curve2dTool::D2(const Adaptor2d_Curve2d& C, 
140                                         const Standard_Real U, 
141                                         gp_Pnt2d& P, 
142                                         gp_Vec2d& V1, 
143                                         gp_Vec2d& V2)
144 {
145   C.D2(U, P, V1, V2);
146 }
147
148 //=======================================================================
149 //function : D3
150 //purpose  : 
151 //=======================================================================
152
153  inline void Extrema_Curve2dTool::D3(const Adaptor2d_Curve2d& C, 
154                                          const Standard_Real U, 
155                                          gp_Pnt2d& P, 
156                                          gp_Vec2d& V1, 
157                                          gp_Vec2d& V2, 
158                                          gp_Vec2d& V3)
159 {
160   C.D3(U, P, V1, V2, V3);
161 }
162
163 //=======================================================================
164 //function : DN
165 //purpose  : 
166 //=======================================================================
167
168  inline gp_Vec2d Extrema_Curve2dTool::DN(const Adaptor2d_Curve2d& C, 
169                                              const Standard_Real U, 
170                                              const Standard_Integer N)
171 {
172   return C.DN(U, N);
173 }
174
175 //=======================================================================
176 //function : Resolution
177 //purpose  : 
178 //=======================================================================
179
180  inline Standard_Real Extrema_Curve2dTool::Resolution(const Adaptor2d_Curve2d& C, 
181                                                           const Standard_Real R3d)
182 {
183   return C.Resolution(R3d);
184 }
185
186 //=======================================================================
187 //function : GetType
188 //purpose  : 
189 //=======================================================================
190
191  inline GeomAbs_CurveType Extrema_Curve2dTool::GetType(const Adaptor2d_Curve2d& C)
192 {
193   return C.GetType();
194 }
195
196 //=======================================================================
197 //function : Line
198 //purpose  : 
199 //=======================================================================
200
201  inline gp_Lin2d Extrema_Curve2dTool::Line(const Adaptor2d_Curve2d& C)
202 {
203   return C.Line();
204 }
205
206 //=======================================================================
207 //function : Circle
208 //purpose  : 
209 //=======================================================================
210
211  inline gp_Circ2d Extrema_Curve2dTool::Circle(const Adaptor2d_Curve2d& C)
212 {
213   return C.Circle();
214 }
215
216 //=======================================================================
217 //function : Ellipse
218 //purpose  : 
219 //=======================================================================
220
221  inline gp_Elips2d Extrema_Curve2dTool::Ellipse(const Adaptor2d_Curve2d& C)
222 {
223   return C.Ellipse();
224 }
225
226 //=======================================================================
227 //function : Hyperbola
228 //purpose  : 
229 //=======================================================================
230
231  inline gp_Hypr2d Extrema_Curve2dTool::Hyperbola(const Adaptor2d_Curve2d& C)
232 {
233   return C.Hyperbola();
234 }
235
236 //=======================================================================
237 //function : Parabola
238 //purpose  : 
239 //=======================================================================
240
241  inline gp_Parab2d Extrema_Curve2dTool::Parabola(const Adaptor2d_Curve2d& C)
242 {
243   return C.Parabola();
244 }
245
246 //=======================================================================
247 //function : NbPoles
248 //purpose  : 
249 //=======================================================================
250
251  inline Standard_Integer Extrema_Curve2dTool::NbPoles(const Adaptor2d_Curve2d& C)
252 {
253   return C.NbPoles();
254 }
255
256 //=======================================================================
257 //function : Degree
258 //purpose  : 
259 //=======================================================================
260
261  inline Standard_Integer Extrema_Curve2dTool::Degree(const Adaptor2d_Curve2d& C)
262 {
263   return C.Degree();
264 }
265
266 //=======================================================================
267 //function : IsRational
268 //purpose  : 
269 //=======================================================================
270
271  inline Standard_Boolean Extrema_Curve2dTool::IsRational(const Adaptor2d_Curve2d& C)
272 {
273   return C.Degree();
274 }
275
276
277 //=======================================================================
278 //function : NbKnots
279 //purpose  : 
280 //=======================================================================
281
282  inline Standard_Integer Extrema_Curve2dTool::NbKnots(const Adaptor2d_Curve2d& C)
283 {
284   return C.NbKnots();
285 }
286
287 //=======================================================================
288 //function : Bezier
289 //purpose  : 
290 //=======================================================================
291
292  inline Handle(Geom2d_BezierCurve) Extrema_Curve2dTool::Bezier(const Adaptor2d_Curve2d& C)
293 {
294   return C.Bezier();
295 }
296
297 //=======================================================================
298 //function : BSpline
299 //purpose  : 
300 //=======================================================================
301
302  inline Handle(Geom2d_BSplineCurve) Extrema_Curve2dTool::BSpline(const Adaptor2d_Curve2d& C)
303 {
304   return C.BSpline();
305 }
306