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.
24 #include <gp_Parab.hxx>
26 #include <gp_Elips.hxx>
27 #include <gp_Hypr.hxx>
28 #include <gp_Circ.hxx>
29 #include <Geom_BezierCurve.hxx>
30 #include <Geom_BSplineCurve.hxx>
31 #include <Adaptor3d_Curve.hxx>
34 //=======================================================================
35 //function : FirstParameter
37 //=======================================================================
39 inline Standard_Real Extrema_CurveTool::FirstParameter(const Adaptor3d_Curve& C)
41 return C.FirstParameter();
44 //=======================================================================
45 //function : LastParameter
47 //=======================================================================
49 inline Standard_Real Extrema_CurveTool::LastParameter(const Adaptor3d_Curve& C)
51 return C.LastParameter();
54 //=======================================================================
57 //=======================================================================
59 inline gp_Pnt Extrema_CurveTool::Value(const Adaptor3d_Curve& C,
60 const Standard_Real U)
66 //=======================================================================
69 //=======================================================================
71 inline void Extrema_CurveTool::D1(const Adaptor3d_Curve& C,
72 const Standard_Real U,
79 //=======================================================================
82 //=======================================================================
84 inline void Extrema_CurveTool::D2(const Adaptor3d_Curve& C,
85 const Standard_Real U,
95 //=======================================================================
96 //function : Continuity
98 //=======================================================================
100 inline GeomAbs_Shape Extrema_CurveTool::Continuity(const Adaptor3d_Curve& C)
102 return C.Continuity();
105 //=======================================================================
106 //function : NbIntervals
108 //=======================================================================
110 inline Standard_Integer Extrema_CurveTool::NbIntervals(Adaptor3d_Curve& C,
111 const GeomAbs_Shape S)
113 return C.NbIntervals(S);
117 //=======================================================================
118 //function : Intervals
120 //=======================================================================
122 inline void Extrema_CurveTool::Intervals(Adaptor3d_Curve& C,
123 TColStd_Array1OfReal& T,
124 const GeomAbs_Shape S)
129 //=======================================================================
132 //=======================================================================
134 inline Standard_Real Extrema_CurveTool::Period(const Adaptor3d_Curve& C)
140 //=======================================================================
143 //=======================================================================
145 inline GeomAbs_CurveType Extrema_CurveTool::GetType(const Adaptor3d_Curve& C)
150 //=======================================================================
153 //=======================================================================
155 inline gp_Lin Extrema_CurveTool::Line(const Adaptor3d_Curve& C)
160 //=======================================================================
163 //=======================================================================
165 inline gp_Circ Extrema_CurveTool::Circle(const Adaptor3d_Curve& C)
170 //=======================================================================
173 //=======================================================================
175 inline gp_Elips Extrema_CurveTool::Ellipse(const Adaptor3d_Curve& C)
180 //=======================================================================
181 //function : Hyperbola
183 //=======================================================================
185 inline gp_Hypr Extrema_CurveTool::Hyperbola(const Adaptor3d_Curve& C)
187 return C.Hyperbola();
190 //=======================================================================
191 //function : Parabola
193 //=======================================================================
195 inline gp_Parab Extrema_CurveTool::Parabola(const Adaptor3d_Curve& C)
199 //=======================================================================
202 //=======================================================================
204 inline Standard_Integer Extrema_CurveTool::NbPoles(const Adaptor3d_Curve& C)
209 //=======================================================================
212 //=======================================================================
214 inline Standard_Integer Extrema_CurveTool::Degree(const Adaptor3d_Curve& C)
219 //=======================================================================
220 //function : IsRational
222 //=======================================================================
224 inline Standard_Boolean Extrema_CurveTool::IsRational(const Adaptor3d_Curve& C)
226 return C.IsRational();
229 //=======================================================================
232 //=======================================================================
234 inline Standard_Integer Extrema_CurveTool::NbKnots(const Adaptor3d_Curve& C)
240 //=======================================================================
243 //=======================================================================
245 inline Handle(Geom_BezierCurve) Extrema_CurveTool::Bezier(const Adaptor3d_Curve& C)
250 //=======================================================================
253 //=======================================================================
255 inline Handle(Geom_BSplineCurve) Extrema_CurveTool::BSpline(const Adaptor3d_Curve& C)
260 //=======================================================================
261 //function : Resolution
263 //=======================================================================
265 inline Standard_Real Extrema_CurveTool::Resolution(const Adaptor3d_Curve& C,
266 const Standard_Real R3d)
268 return C.Resolution(R3d);