0023024: Update headers of OCCT files
[occt.git] / src / GCPnts / GCPnts_QuasiUniformDeflection.cxx
1 // Copyright (c) 1995-1999 Matra Datavision
2 // Copyright (c) 1999-2012 OPEN CASCADE SAS
3 //
4 // The content of this file is subject to the Open CASCADE Technology Public
5 // License Version 6.5 (the "License"). You may not use the content of this file
6 // except in compliance with the License. Please obtain a copy of the License
7 // at http://www.opencascade.org and read it completely before using this file.
8 //
9 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
11 //
12 // The Original Code and all software distributed under the License is
13 // distributed on an "AS IS" basis, without warranty of any kind, and the
14 // Initial Developer hereby disclaims all such warranties, including without
15 // limitation, any warranties of merchantability, fitness for a particular
16 // purpose or non-infringement. Please see the License for the specific terms
17 // and conditions governing the rights and limitations under the License.
18
19 #include <GCPnts_QuasiUniformDeflection.ixx>
20 #include <StdFail_NotDone.hxx>
21 #include <Standard_DomainError.hxx>
22 #include <Standard_OutOfRange.hxx>
23 #include <Standard_ConstructionError.hxx>
24 #include <Standard_NotImplemented.hxx>
25 #include <gp_Pnt2d.hxx>
26 #include <gp_Vec2d.hxx>
27 #include <gp_Vec.hxx>
28 // mask the return of a Adaptor2d_Curve2d as a gp_Pnt 
29 static gp_Pnt Value(const Adaptor3d_Curve & C,
30                     const Standard_Real Parameter) 
31 {
32   return C.Value(Parameter) ;
33 }
34 static gp_Pnt Value(const Adaptor2d_Curve2d & C,
35                     const Standard_Real Parameter) 
36 {
37   gp_Pnt aPoint ;
38   gp_Pnt2d a2dPoint(C.Value(Parameter));
39   aPoint.SetCoord(a2dPoint.X(),a2dPoint.Y(),0.);
40   return aPoint ;
41 }
42
43 static void D1(const Adaptor3d_Curve & C,
44                const Standard_Real Parameter,
45                gp_Pnt& P,
46                gp_Vec& V) 
47 {
48   C.D1(Parameter,P,V);
49 }
50
51 static void D1(const Adaptor2d_Curve2d & C,
52                const Standard_Real Parameter,
53                gp_Pnt& P,
54                gp_Vec& V) 
55 {
56   gp_Pnt2d a2dPoint;
57   gp_Vec2d a2dVec;
58   C.D1(Parameter,a2dPoint,a2dVec);
59   P.SetCoord(a2dPoint.X(),a2dPoint.Y(),0.);
60   V.SetCoord(a2dVec.X(),a2dVec.Y(),0.);
61 }
62
63
64 //=======================================================================
65 //function : Value
66 //purpose  : 
67 //=======================================================================
68
69 gp_Pnt GCPnts_QuasiUniformDeflection::Value
70                       (const Standard_Integer Index) const
71
72   StdFail_NotDone_Raise_if(!myDone, 
73                          "GCPnts_QuasiUniformAbscissa::Parameter()");
74   return myPoints.Value(Index) ;
75 }
76 //=======================================================================
77 //function : GCPnts_QuasiUniformDeflection
78 //purpose  : 
79 //=======================================================================
80
81 GCPnts_QuasiUniformDeflection::GCPnts_QuasiUniformDeflection ()
82 :myDone(Standard_False),myCont(GeomAbs_C1)
83 {
84
85
86 #include <Geom_BezierCurve.hxx>
87 #include <Geom_BSplineCurve.hxx>
88
89 #define TheCurve                 Adaptor3d_Curve
90 #define Handle_TheBezierCurve   Handle(Geom_BezierCurve)
91 #define Handle_TheBSplineCurve  Handle(Geom_BSplineCurve)
92
93 #include <GCPnts_QuasiUniformDeflection.gxx>
94
95 #undef TheCurve
96 #undef Handle_TheBezierCurve
97 #undef Handle_TheBSplineCurve
98
99 #include <Geom2d_BezierCurve.hxx>
100 #include <Geom2d_BSplineCurve.hxx>
101
102 #define TheCurve                 Adaptor2d_Curve2d
103 #define Handle_TheBezierCurve   Handle(Geom2d_BezierCurve)
104 #define Handle_TheBSplineCurve  Handle(Geom2d_BSplineCurve)
105
106 #include <GCPnts_QuasiUniformDeflection.gxx>
107
108
109
110
111
112