1 // File: Extrema_Curve2dTool.lxx
2 // Created: Tue Jul 18 14:57:08 1995
3 // Author: Modelistation
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>
15 //=======================================================================
16 //function : FirstParameter
18 //=======================================================================
20 inline Standard_Real Extrema_Curve2dTool::FirstParameter(const Adaptor2d_Curve2d& C)
22 return C.FirstParameter();
25 //=======================================================================
26 //function : LastParameter
28 //=======================================================================
30 inline Standard_Real Extrema_Curve2dTool::LastParameter(const Adaptor2d_Curve2d& C)
32 return C.LastParameter();
35 //=======================================================================
36 //function : Continuity
38 //=======================================================================
40 inline GeomAbs_Shape Extrema_Curve2dTool::Continuity(const Adaptor2d_Curve2d& C)
42 return C.Continuity();
45 //=======================================================================
46 //function : NbIntervals
48 //=======================================================================
50 inline Standard_Integer Extrema_Curve2dTool::NbIntervals(const Adaptor2d_Curve2d& C,
51 const GeomAbs_Shape S)
53 return C.NbIntervals(S);
56 //=======================================================================
57 //function : Intervals
59 //=======================================================================
61 inline void Extrema_Curve2dTool::Intervals(const Adaptor2d_Curve2d& C,
62 TColStd_Array1OfReal& T,
63 const GeomAbs_Shape S)
68 //=======================================================================
71 //=======================================================================
73 inline Standard_Boolean Extrema_Curve2dTool::IsClosed(const Adaptor2d_Curve2d& C)
78 //=======================================================================
79 //function : IsPeriodic
81 //=======================================================================
83 inline Standard_Boolean Extrema_Curve2dTool::IsPeriodic(const Adaptor2d_Curve2d& C)
85 return C.IsPeriodic();
88 //=======================================================================
91 //=======================================================================
93 inline Standard_Real Extrema_Curve2dTool::Period(const Adaptor2d_Curve2d& C)
98 //=======================================================================
101 //=======================================================================
103 inline gp_Pnt2d Extrema_Curve2dTool::Value(const Adaptor2d_Curve2d& C,
104 const Standard_Real U)
109 //=======================================================================
112 //=======================================================================
114 inline void Extrema_Curve2dTool::D0(const Adaptor2d_Curve2d& C,
115 const Standard_Real U,
121 //=======================================================================
124 //=======================================================================
126 inline void Extrema_Curve2dTool::D1(const Adaptor2d_Curve2d& C,
127 const Standard_Real U,
134 //=======================================================================
137 //=======================================================================
139 inline void Extrema_Curve2dTool::D2(const Adaptor2d_Curve2d& C,
140 const Standard_Real U,
148 //=======================================================================
151 //=======================================================================
153 inline void Extrema_Curve2dTool::D3(const Adaptor2d_Curve2d& C,
154 const Standard_Real U,
160 C.D3(U, P, V1, V2, V3);
163 //=======================================================================
166 //=======================================================================
168 inline gp_Vec2d Extrema_Curve2dTool::DN(const Adaptor2d_Curve2d& C,
169 const Standard_Real U,
170 const Standard_Integer N)
175 //=======================================================================
176 //function : Resolution
178 //=======================================================================
180 inline Standard_Real Extrema_Curve2dTool::Resolution(const Adaptor2d_Curve2d& C,
181 const Standard_Real R3d)
183 return C.Resolution(R3d);
186 //=======================================================================
189 //=======================================================================
191 inline GeomAbs_CurveType Extrema_Curve2dTool::GetType(const Adaptor2d_Curve2d& C)
196 //=======================================================================
199 //=======================================================================
201 inline gp_Lin2d Extrema_Curve2dTool::Line(const Adaptor2d_Curve2d& C)
206 //=======================================================================
209 //=======================================================================
211 inline gp_Circ2d Extrema_Curve2dTool::Circle(const Adaptor2d_Curve2d& C)
216 //=======================================================================
219 //=======================================================================
221 inline gp_Elips2d Extrema_Curve2dTool::Ellipse(const Adaptor2d_Curve2d& C)
226 //=======================================================================
227 //function : Hyperbola
229 //=======================================================================
231 inline gp_Hypr2d Extrema_Curve2dTool::Hyperbola(const Adaptor2d_Curve2d& C)
233 return C.Hyperbola();
236 //=======================================================================
237 //function : Parabola
239 //=======================================================================
241 inline gp_Parab2d Extrema_Curve2dTool::Parabola(const Adaptor2d_Curve2d& C)
246 //=======================================================================
249 //=======================================================================
251 inline Standard_Integer Extrema_Curve2dTool::NbPoles(const Adaptor2d_Curve2d& C)
256 //=======================================================================
259 //=======================================================================
261 inline Standard_Integer Extrema_Curve2dTool::Degree(const Adaptor2d_Curve2d& C)
266 //=======================================================================
267 //function : IsRational
269 //=======================================================================
271 inline Standard_Boolean Extrema_Curve2dTool::IsRational(const Adaptor2d_Curve2d& C)
277 //=======================================================================
280 //=======================================================================
282 inline Standard_Integer Extrema_Curve2dTool::NbKnots(const Adaptor2d_Curve2d& C)
287 //=======================================================================
290 //=======================================================================
292 inline Handle(Geom2d_BezierCurve) Extrema_Curve2dTool::Bezier(const Adaptor2d_Curve2d& C)
297 //=======================================================================
300 //=======================================================================
302 inline Handle(Geom2d_BSplineCurve) Extrema_Curve2dTool::BSpline(const Adaptor2d_Curve2d& C)