0032603: Coding - get rid of unsused forward declarations
[occt.git] / src / Blend / Blend_Point.hxx
1 // Created on: 1993-12-02
2 // Created by: Jacques GOUSSARD
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
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.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _Blend_Point_HeaderFile
18 #define _Blend_Point_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <gp_Pnt.hxx>
25 #include <gp_Vec.hxx>
26 #include <Standard_Real.hxx>
27 #include <Standard_Boolean.hxx>
28 #include <gp_Vec2d.hxx>
29 class gp_Vec2d;
30
31
32
33 class Blend_Point 
34 {
35 public:
36
37   DEFINE_STANDARD_ALLOC
38
39   
40   Standard_EXPORT Blend_Point();
41   
42   //! Creates a point on 2 surfaces, with tangents.
43   Standard_EXPORT Blend_Point(const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const gp_Vec& Tg1, const gp_Vec& Tg2, const gp_Vec2d& Tg12d, const gp_Vec2d& Tg22d);
44   
45   //! Creates a point on 2 surfaces, without tangents.
46   Standard_EXPORT Blend_Point(const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
47   
48   //! Creates a point on a surface and a curve, with tangents.
49   Standard_EXPORT Blend_Point(const gp_Pnt& Pts, const gp_Pnt& Ptc, const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W, const gp_Vec& Tgs, const gp_Vec& Tgc, const gp_Vec2d& Tg2d);
50   
51   //! Creates a point on a surface and a curve, without tangents.
52   Standard_EXPORT Blend_Point(const gp_Pnt& Pts, const gp_Pnt& Ptc, const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W);
53   
54   //! Creates a point on a surface and a curve on surface,
55   //! with tangents.
56   Standard_EXPORT Blend_Point(const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real PC, const gp_Vec& Tg1, const gp_Vec& Tg2, const gp_Vec2d& Tg12d, const gp_Vec2d& Tg22d);
57   
58   //! Creates a point on a surface and a curve on surface,
59   //! without tangents.
60   Standard_EXPORT Blend_Point(const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real PC);
61   
62   //! Creates a point on two curves on surfaces, with tangents.
63   Standard_EXPORT Blend_Point(const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real PC1, const Standard_Real PC2, const gp_Vec& Tg1, const gp_Vec& Tg2, const gp_Vec2d& Tg12d, const gp_Vec2d& Tg22d);
64   
65   //! Creates a point on two curves on surfaces, with tangents.
66   Standard_EXPORT Blend_Point(const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real PC1, const Standard_Real PC2);
67   
68   //! Set the values for a point on 2 surfaces, with tangents.
69   Standard_EXPORT void SetValue (const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const gp_Vec& Tg1, const gp_Vec& Tg2, const gp_Vec2d& Tg12d, const gp_Vec2d& Tg22d);
70   
71   //! Set the values for a point on 2 surfaces, without tangents.
72   Standard_EXPORT void SetValue (const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
73   
74   //! Set the values for a point on a surface and a curve,
75   //! with tangents.
76   Standard_EXPORT void SetValue (const gp_Pnt& Pts, const gp_Pnt& Ptc, const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W, const gp_Vec& Tgs, const gp_Vec& Tgc, const gp_Vec2d& Tg2d);
77   
78   //! Set the values for a point on a surface and a curve,
79   //! without tangents.
80   Standard_EXPORT void SetValue (const gp_Pnt& Pts, const gp_Pnt& Ptc, const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W);
81   
82   //! Creates a point on a surface and a curve on surface,
83   //! with tangents.
84   Standard_EXPORT void SetValue (const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real PC, const gp_Vec& Tg1, const gp_Vec& Tg2, const gp_Vec2d& Tg12d, const gp_Vec2d& Tg22d);
85   
86   //! Creates a point on a surface and a curve on surface,
87   //! without tangents.
88   Standard_EXPORT void SetValue (const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real PC);
89   
90   //! Creates a point on two curves on surfaces, with tangents.
91   Standard_EXPORT void SetValue (const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real PC1, const Standard_Real PC2, const gp_Vec& Tg1, const gp_Vec& Tg2, const gp_Vec2d& Tg12d, const gp_Vec2d& Tg22d);
92   
93   //! Creates a point on two curves on surfaces, without tangents.
94   Standard_EXPORT void SetValue (const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real PC1, const Standard_Real PC2);
95   
96   //! Creates a point on two curves.
97   Standard_EXPORT void SetValue (const gp_Pnt& Pt1, const gp_Pnt& Pt2, const Standard_Real Param, const Standard_Real PC1, const Standard_Real PC2);
98   
99   //! Changes parameter on existing point
100     void SetParameter (const Standard_Real Param);
101   
102     Standard_Real Parameter() const;
103   
104   //! Returns Standard_True if it was not possible to compute
105   //! the tangent vectors at PointOnS1 and/or PointOnS2.
106     Standard_Boolean IsTangencyPoint() const;
107   
108     const gp_Pnt& PointOnS1() const;
109   
110     const gp_Pnt& PointOnS2() const;
111   
112     void ParametersOnS1 (Standard_Real& U, Standard_Real& V) const;
113   
114     void ParametersOnS2 (Standard_Real& U, Standard_Real& V) const;
115   
116     const gp_Vec& TangentOnS1() const;
117   
118     const gp_Vec& TangentOnS2() const;
119   
120     gp_Vec2d Tangent2dOnS1() const;
121   
122     gp_Vec2d Tangent2dOnS2() const;
123   
124     const gp_Pnt& PointOnS() const;
125   
126     const gp_Pnt& PointOnC() const;
127   
128     void ParametersOnS (Standard_Real& U, Standard_Real& V) const;
129   
130     Standard_Real ParameterOnC() const;
131   
132     const gp_Vec& TangentOnS() const;
133   
134     const gp_Vec& TangentOnC() const;
135   
136     gp_Vec2d Tangent2d() const;
137   
138     const gp_Pnt& PointOnC1() const;
139   
140     const gp_Pnt& PointOnC2() const;
141   
142     Standard_Real ParameterOnC1() const;
143   
144     Standard_Real ParameterOnC2() const;
145   
146     const gp_Vec& TangentOnC1() const;
147   
148     const gp_Vec& TangentOnC2() const;
149
150
151
152
153 protected:
154
155
156
157
158
159 private:
160
161
162
163   gp_Pnt pt1;
164   gp_Pnt pt2;
165   gp_Vec tg1;
166   gp_Vec tg2;
167   Standard_Real prm;
168   Standard_Real u1;
169   Standard_Real v1;
170   Standard_Real u2;
171   Standard_Real v2;
172   Standard_Real pc1;
173   Standard_Real pc2;
174   Standard_Real utg12d;
175   Standard_Real vtg12d;
176   Standard_Real utg22d;
177   Standard_Real vtg22d;
178   Standard_Boolean hass1;
179   Standard_Boolean hass2;
180   Standard_Boolean hasc1;
181   Standard_Boolean hasc2;
182   Standard_Boolean istgt;
183
184
185 };
186
187
188 #include <Blend_Point.lxx>
189
190
191
192
193
194 #endif // _Blend_Point_HeaderFile