1 // Created on: 1995-07-18
2 // Created by: Modelistation
3 // Copyright (c) 1995-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
19 #include <gp_Parab.hxx>
21 #include <gp_Elips.hxx>
22 #include <gp_Hypr.hxx>
23 #include <gp_Circ.hxx>
24 #include <Geom_BezierCurve.hxx>
25 #include <Geom_BSplineCurve.hxx>
26 #include <Adaptor3d_Curve.hxx>
29 //=======================================================================
30 //function : FirstParameter
32 //=======================================================================
34 inline Standard_Real Extrema_CurveTool::FirstParameter(const Adaptor3d_Curve& C)
36 return C.FirstParameter();
39 //=======================================================================
40 //function : LastParameter
42 //=======================================================================
44 inline Standard_Real Extrema_CurveTool::LastParameter(const Adaptor3d_Curve& C)
46 return C.LastParameter();
49 //=======================================================================
52 //=======================================================================
54 inline gp_Pnt Extrema_CurveTool::Value(const Adaptor3d_Curve& C,
55 const Standard_Real U)
60 //=======================================================================
63 //=======================================================================
65 inline void Extrema_CurveTool::D0(const Adaptor3d_Curve& C,
66 const Standard_Real U,
72 //=======================================================================
75 //=======================================================================
77 inline void Extrema_CurveTool::D1(const Adaptor3d_Curve& C,
78 const Standard_Real U,
85 //=======================================================================
88 //=======================================================================
90 inline void Extrema_CurveTool::D2(const Adaptor3d_Curve& C,
91 const Standard_Real U,
99 //=======================================================================
102 //=======================================================================
104 inline void Extrema_CurveTool::D3(const Adaptor3d_Curve& C,
105 const Standard_Real U,
111 C.D3(U, P, V1, V2, V3);
114 //=======================================================================
117 //=======================================================================
118 inline gp_Vec Extrema_CurveTool::DN(const Adaptor3d_Curve& C,
119 const Standard_Real U,
120 const Standard_Integer N)
126 //=======================================================================
127 //function : Continuity
129 //=======================================================================
131 inline GeomAbs_Shape Extrema_CurveTool::Continuity(const Adaptor3d_Curve& C)
133 return C.Continuity();
136 //=======================================================================
137 //function : NbIntervals
139 //=======================================================================
141 inline Standard_Integer Extrema_CurveTool::NbIntervals(Adaptor3d_Curve& C,
142 const GeomAbs_Shape S)
144 return C.NbIntervals(S);
148 //=======================================================================
149 //function : Intervals
151 //=======================================================================
153 inline void Extrema_CurveTool::Intervals(Adaptor3d_Curve& C,
154 TColStd_Array1OfReal& T,
155 const GeomAbs_Shape S)
160 //=======================================================================
163 //=======================================================================
165 inline Standard_Real Extrema_CurveTool::Period(const Adaptor3d_Curve& C)
171 //=======================================================================
174 //=======================================================================
176 inline GeomAbs_CurveType Extrema_CurveTool::GetType(const Adaptor3d_Curve& C)
181 //=======================================================================
184 //=======================================================================
186 inline gp_Lin Extrema_CurveTool::Line(const Adaptor3d_Curve& C)
191 //=======================================================================
194 //=======================================================================
196 inline gp_Circ Extrema_CurveTool::Circle(const Adaptor3d_Curve& C)
201 //=======================================================================
204 //=======================================================================
206 inline gp_Elips Extrema_CurveTool::Ellipse(const Adaptor3d_Curve& C)
211 //=======================================================================
212 //function : Hyperbola
214 //=======================================================================
216 inline gp_Hypr Extrema_CurveTool::Hyperbola(const Adaptor3d_Curve& C)
218 return C.Hyperbola();
221 //=======================================================================
222 //function : Parabola
224 //=======================================================================
226 inline gp_Parab Extrema_CurveTool::Parabola(const Adaptor3d_Curve& C)
230 //=======================================================================
233 //=======================================================================
235 inline Standard_Integer Extrema_CurveTool::NbPoles(const Adaptor3d_Curve& C)
240 //=======================================================================
243 //=======================================================================
245 inline Standard_Integer Extrema_CurveTool::Degree(const Adaptor3d_Curve& C)
250 //=======================================================================
251 //function : IsRational
253 //=======================================================================
255 inline Standard_Boolean Extrema_CurveTool::IsRational(const Adaptor3d_Curve& C)
257 return C.IsRational();
260 //=======================================================================
263 //=======================================================================
265 inline Standard_Integer Extrema_CurveTool::NbKnots(const Adaptor3d_Curve& C)
271 //=======================================================================
274 //=======================================================================
276 inline Handle(Geom_BezierCurve) Extrema_CurveTool::Bezier(const Adaptor3d_Curve& C)
281 //=======================================================================
284 //=======================================================================
286 inline Handle(Geom_BSplineCurve) Extrema_CurveTool::BSpline(const Adaptor3d_Curve& C)
291 //=======================================================================
292 //function : Resolution
294 //=======================================================================
296 inline Standard_Real Extrema_CurveTool::Resolution(const Adaptor3d_Curve& C,
297 const Standard_Real R3d)
299 return C.Resolution(R3d);