1 // Created on: 1995-07-18
2 // Created by: Modelistation
3 // Copyright (c) 1995-1999 Matra Datavision
4 // Copyright (c) 1999-2012 OPEN CASCADE SAS
6 // The content of this file is subject to the Open CASCADE Technology Public
7 // License Version 6.5 (the "License"). You may not use the content of this file
8 // except in compliance with the License. Please obtain a copy of the License
9 // at http://www.opencascade.org and read it completely before using this file.
11 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 // The Original Code and all software distributed under the License is
15 // distributed on an "AS IS" basis, without warranty of any kind, and the
16 // Initial Developer hereby disclaims all such warranties, including without
17 // limitation, any warranties of merchantability, fitness for a particular
18 // purpose or non-infringement. Please see the License for the specific terms
19 // and conditions governing the rights and limitations under the License.
22 #include <gp_Lin2d.hxx>
23 #include <gp_Elips2d.hxx>
24 #include <gp_Circ2d.hxx>
25 #include <gp_Hypr2d.hxx>
26 #include <gp_Parab2d.hxx>
27 #include <Geom2d_BezierCurve.hxx>
28 #include <Geom2d_BSplineCurve.hxx>
29 #include <Adaptor2d_Curve2d.hxx>
31 //=======================================================================
32 //function : FirstParameter
34 //=======================================================================
36 inline Standard_Real Extrema_Curve2dTool::FirstParameter(const Adaptor2d_Curve2d& C)
38 return C.FirstParameter();
41 //=======================================================================
42 //function : LastParameter
44 //=======================================================================
46 inline Standard_Real Extrema_Curve2dTool::LastParameter(const Adaptor2d_Curve2d& C)
48 return C.LastParameter();
51 //=======================================================================
52 //function : Continuity
54 //=======================================================================
56 inline GeomAbs_Shape Extrema_Curve2dTool::Continuity(const Adaptor2d_Curve2d& C)
58 return C.Continuity();
61 //=======================================================================
62 //function : NbIntervals
64 //=======================================================================
66 inline Standard_Integer Extrema_Curve2dTool::NbIntervals(const Adaptor2d_Curve2d& C,
67 const GeomAbs_Shape S)
69 return C.NbIntervals(S);
72 //=======================================================================
73 //function : Intervals
75 //=======================================================================
77 inline void Extrema_Curve2dTool::Intervals(const Adaptor2d_Curve2d& C,
78 TColStd_Array1OfReal& T,
79 const GeomAbs_Shape S)
84 //=======================================================================
87 //=======================================================================
89 inline Standard_Boolean Extrema_Curve2dTool::IsClosed(const Adaptor2d_Curve2d& C)
94 //=======================================================================
95 //function : IsPeriodic
97 //=======================================================================
99 inline Standard_Boolean Extrema_Curve2dTool::IsPeriodic(const Adaptor2d_Curve2d& C)
101 return C.IsPeriodic();
104 //=======================================================================
107 //=======================================================================
109 inline Standard_Real Extrema_Curve2dTool::Period(const Adaptor2d_Curve2d& C)
114 //=======================================================================
117 //=======================================================================
119 inline gp_Pnt2d Extrema_Curve2dTool::Value(const Adaptor2d_Curve2d& C,
120 const Standard_Real U)
125 //=======================================================================
128 //=======================================================================
130 inline void Extrema_Curve2dTool::D0(const Adaptor2d_Curve2d& C,
131 const Standard_Real U,
137 //=======================================================================
140 //=======================================================================
142 inline void Extrema_Curve2dTool::D1(const Adaptor2d_Curve2d& C,
143 const Standard_Real U,
150 //=======================================================================
153 //=======================================================================
155 inline void Extrema_Curve2dTool::D2(const Adaptor2d_Curve2d& C,
156 const Standard_Real U,
164 //=======================================================================
167 //=======================================================================
169 inline void Extrema_Curve2dTool::D3(const Adaptor2d_Curve2d& C,
170 const Standard_Real U,
176 C.D3(U, P, V1, V2, V3);
179 //=======================================================================
182 //=======================================================================
184 inline gp_Vec2d Extrema_Curve2dTool::DN(const Adaptor2d_Curve2d& C,
185 const Standard_Real U,
186 const Standard_Integer N)
191 //=======================================================================
192 //function : Resolution
194 //=======================================================================
196 inline Standard_Real Extrema_Curve2dTool::Resolution(const Adaptor2d_Curve2d& C,
197 const Standard_Real R3d)
199 return C.Resolution(R3d);
202 //=======================================================================
205 //=======================================================================
207 inline GeomAbs_CurveType Extrema_Curve2dTool::GetType(const Adaptor2d_Curve2d& C)
212 //=======================================================================
215 //=======================================================================
217 inline gp_Lin2d Extrema_Curve2dTool::Line(const Adaptor2d_Curve2d& C)
222 //=======================================================================
225 //=======================================================================
227 inline gp_Circ2d Extrema_Curve2dTool::Circle(const Adaptor2d_Curve2d& C)
232 //=======================================================================
235 //=======================================================================
237 inline gp_Elips2d Extrema_Curve2dTool::Ellipse(const Adaptor2d_Curve2d& C)
242 //=======================================================================
243 //function : Hyperbola
245 //=======================================================================
247 inline gp_Hypr2d Extrema_Curve2dTool::Hyperbola(const Adaptor2d_Curve2d& C)
249 return C.Hyperbola();
252 //=======================================================================
253 //function : Parabola
255 //=======================================================================
257 inline gp_Parab2d Extrema_Curve2dTool::Parabola(const Adaptor2d_Curve2d& C)
262 //=======================================================================
265 //=======================================================================
267 inline Standard_Integer Extrema_Curve2dTool::NbPoles(const Adaptor2d_Curve2d& C)
272 //=======================================================================
275 //=======================================================================
277 inline Standard_Integer Extrema_Curve2dTool::Degree(const Adaptor2d_Curve2d& C)
282 //=======================================================================
283 //function : IsRational
285 //=======================================================================
287 inline Standard_Boolean Extrema_Curve2dTool::IsRational(const Adaptor2d_Curve2d& C)
293 //=======================================================================
296 //=======================================================================
298 inline Standard_Integer Extrema_Curve2dTool::NbKnots(const Adaptor2d_Curve2d& C)
303 //=======================================================================
306 //=======================================================================
308 inline Handle(Geom2d_BezierCurve) Extrema_Curve2dTool::Bezier(const Adaptor2d_Curve2d& C)
313 //=======================================================================
316 //=======================================================================
318 inline Handle(Geom2d_BSplineCurve) Extrema_Curve2dTool::BSpline(const Adaptor2d_Curve2d& C)