1 // Created on: 1997-03-21
2 // Created by: Bruno DUMORTIER
3 // Copyright (c) 1997-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.
18 #include <Adaptor3d_HCurve.hxx>
19 #include <BiTgte_CurveOnVertex.hxx>
20 #include <BiTgte_HCurveOnVertex.hxx>
21 #include <BRep_Tool.hxx>
22 #include <Geom_BezierCurve.hxx>
23 #include <Geom_BSplineCurve.hxx>
24 #include <gp_Circ.hxx>
25 #include <gp_Elips.hxx>
26 #include <gp_Hypr.hxx>
28 #include <gp_Parab.hxx>
31 #include <Standard_DomainError.hxx>
32 #include <Standard_NoSuchObject.hxx>
33 #include <Standard_NotImplemented.hxx>
34 #include <Standard_OutOfRange.hxx>
35 #include <TopoDS_Edge.hxx>
36 #include <TopoDS_Vertex.hxx>
38 //=======================================================================
39 //function : BiTgte_CurveOnVertex
41 //======================================================================
42 BiTgte_CurveOnVertex::BiTgte_CurveOnVertex()
43 : myFirst(0.0), myLast(0.0)
48 //=======================================================================
49 //function : BiTgte_CurveOnVertex
51 //=======================================================================
53 BiTgte_CurveOnVertex::BiTgte_CurveOnVertex(const TopoDS_Edge& theEonF,
54 const TopoDS_Vertex& theVertex)
55 : myFirst(0.0), myLast(0.0)
57 Init(theEonF, theVertex);
61 //=======================================================================
64 //=======================================================================
66 void BiTgte_CurveOnVertex::Init(const TopoDS_Edge& EonF,
67 const TopoDS_Vertex& V)
69 BRep_Tool::Range(EonF,myFirst,myLast);
70 myPnt = BRep_Tool::Pnt(V);
74 //=======================================================================
75 //function : FirstParameter
77 //=======================================================================
79 Standard_Real BiTgte_CurveOnVertex::FirstParameter() const
85 //=======================================================================
86 //function : LastParameter
88 //=======================================================================
90 Standard_Real BiTgte_CurveOnVertex::LastParameter() const
96 //=======================================================================
99 //=======================================================================
101 GeomAbs_Shape BiTgte_CurveOnVertex::Continuity() const
103 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
108 //=======================================================================
111 //=======================================================================
113 Standard_Integer BiTgte_CurveOnVertex::NbIntervals(const GeomAbs_Shape) const
115 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
120 //=======================================================================
123 //=======================================================================
125 void BiTgte_CurveOnVertex::Intervals(TColStd_Array1OfReal&,
126 const GeomAbs_Shape) const
128 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
132 //=======================================================================
135 //=======================================================================
137 Handle(Adaptor3d_HCurve) BiTgte_CurveOnVertex::Trim(const Standard_Real,
142 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
143 Handle(BiTgte_HCurveOnVertex) HC;
148 //=======================================================================
151 //=======================================================================
153 Standard_Boolean BiTgte_CurveOnVertex::IsClosed() const
155 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
156 return Standard_False;
160 //=======================================================================
163 //=======================================================================
165 Standard_Boolean BiTgte_CurveOnVertex::IsPeriodic() const
167 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
168 return Standard_False;
172 //=======================================================================
175 //=======================================================================
177 Standard_Real BiTgte_CurveOnVertex::Period() const
179 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
184 //=======================================================================
187 //=======================================================================
189 gp_Pnt BiTgte_CurveOnVertex::Value(const Standard_Real) const
195 //=======================================================================
198 //=======================================================================
200 void BiTgte_CurveOnVertex::D0(const Standard_Real /*U*/,gp_Pnt& P) const
206 //=======================================================================
209 //=======================================================================
211 void BiTgte_CurveOnVertex::D1(const Standard_Real ,gp_Pnt& ,gp_Vec&) const
213 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
217 //=======================================================================
220 //=======================================================================
222 void BiTgte_CurveOnVertex::D2(const Standard_Real,gp_Pnt&,
223 gp_Vec& ,gp_Vec& ) const
225 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
229 //=======================================================================
232 //=======================================================================
234 void BiTgte_CurveOnVertex::D3(const Standard_Real,
240 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
244 //=======================================================================
247 //=======================================================================
249 gp_Vec BiTgte_CurveOnVertex::DN(const Standard_Real,
250 const Standard_Integer) const
252 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
257 //=======================================================================
260 //=======================================================================
262 Standard_Real BiTgte_CurveOnVertex::Resolution(const Standard_Real) const
264 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
269 //=======================================================================
272 //=======================================================================
274 GeomAbs_CurveType BiTgte_CurveOnVertex::GetType() const
276 return GeomAbs_OtherCurve;
280 //=======================================================================
283 //=======================================================================
285 gp_Lin BiTgte_CurveOnVertex::Line() const
287 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
292 //=======================================================================
295 //=======================================================================
297 gp_Circ BiTgte_CurveOnVertex::Circle() const
299 Standard_NoSuchObject::Raise("BiTgte_CurveOnVertex::Circle");
304 //=======================================================================
307 //=======================================================================
309 gp_Elips BiTgte_CurveOnVertex::Ellipse() const
311 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
316 //=======================================================================
319 //=======================================================================
321 gp_Hypr BiTgte_CurveOnVertex::Hyperbola() const
323 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
328 //=======================================================================
331 //=======================================================================
333 gp_Parab BiTgte_CurveOnVertex::Parabola() const
335 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
340 //=======================================================================
343 //=======================================================================
345 Standard_Integer BiTgte_CurveOnVertex::Degree() const
347 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
352 //=======================================================================
355 //=======================================================================
357 Standard_Boolean BiTgte_CurveOnVertex::IsRational() const
359 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
360 return Standard_False;
364 //=======================================================================
367 //=======================================================================
369 Standard_Integer BiTgte_CurveOnVertex::NbPoles() const
371 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
376 //=======================================================================
379 //=======================================================================
381 Standard_Integer BiTgte_CurveOnVertex::NbKnots() const
383 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
388 //=======================================================================
391 //=======================================================================
393 Handle(Geom_BezierCurve) BiTgte_CurveOnVertex::Bezier() const
395 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
396 Handle(Geom_BezierCurve) B;
401 //=======================================================================
404 //=======================================================================
406 Handle(Geom_BSplineCurve) BiTgte_CurveOnVertex::BSpline() const
408 Standard_NotImplemented::Raise("BiTgte_CurveOnVertex");
409 Handle(Geom_BSplineCurve) B;