summaryrefslogtreecommitdiff
path: root/inc/ProjLib.hxx
blob: b9e4ec2bdeb4b6fddd4f3b859d718eb4622b686f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _ProjLib_HeaderFile
#define _ProjLib_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

class gp_Pnt2d;
class gp_Pln;
class gp_Pnt;
class gp_Lin2d;
class gp_Lin;
class gp_Circ2d;
class gp_Circ;
class gp_Elips2d;
class gp_Elips;
class gp_Parab2d;
class gp_Parab;
class gp_Hypr2d;
class gp_Hypr;
class gp_Cylinder;
class gp_Cone;
class gp_Sphere;
class gp_Torus;
class ProjLib_ProjectOnPlane;
class ProjLib_ProjectOnSurface;
class ProjLib_ComputeApprox;
class ProjLib_ComputeApproxOnPolarSurface;
class ProjLib_ProjectedCurve;
class ProjLib_HProjectedCurve;
class ProjLib_SequenceOfHSequenceOfPnt;
class ProjLib_HSequenceOfHSequenceOfPnt;
class ProjLib_CompProjectedCurve;
class ProjLib_HCompProjectedCurve;
class ProjLib_PrjResolve;
class ProjLib_PrjFunc;
class ProjLib_Projector;
class ProjLib_Plane;
class ProjLib_Cylinder;
class ProjLib_Cone;
class ProjLib_Sphere;
class ProjLib_Torus;
class ProjLib_SequenceNodeOfSequenceOfHSequenceOfPnt;


//! The  projLib package  first provides projection of <br>
//!          curves on a   plane along a  given Direction.  The <br>
//!          result will be a 3D curve. <br>//! The ProjLib package  provides projection of curves <br>
//!          on surfaces to compute the curve in the parametric <br>
//!          space. <br>
//! <br>
//!          It is assumed that the curve is on the surface. <br>
//! <br>
//!          It provides : <br>
//! <br>
//!          * Package methods to handle the easiest cases : <br>
//! <br>
//!            - Line, Circle, Ellipse, Parabola, Hyperbola on plane. <br>
//! <br>
//!            - Line, Circle on cylinder. <br>
//! <br>
//!            - Line, Circle on cone. <br>
//! <br>
//!          * Classes to handle the general cases : <br>
//! <br>
//!            - Plane. <br>
//! <br>
//!            - Cylinder. <br>
//! <br>
//!            - Cone. <br>
//! <br>
//!            - Sphere. <br>
//! <br>
//!            - Torus. <br>
//! <br>
//! <br>
//!          * A generic  class to handle  a Curve from Adaptor3d <br>
//!          on a Surface from Adaptor3d. <br>
//! <br>
class ProjLib  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  
  Standard_EXPORT   static  gp_Pnt2d Project(const gp_Pln& Pl,const gp_Pnt& P) ;
  
  Standard_EXPORT   static  gp_Lin2d Project(const gp_Pln& Pl,const gp_Lin& L) ;
  
  Standard_EXPORT   static  gp_Circ2d Project(const gp_Pln& Pl,const gp_Circ& C) ;
  
  Standard_EXPORT   static  gp_Elips2d Project(const gp_Pln& Pl,const gp_Elips& E) ;
  
  Standard_EXPORT   static  gp_Parab2d Project(const gp_Pln& Pl,const gp_Parab& P) ;
  
  Standard_EXPORT   static  gp_Hypr2d Project(const gp_Pln& Pl,const gp_Hypr& H) ;
  
  Standard_EXPORT   static  gp_Pnt2d Project(const gp_Cylinder& Cy,const gp_Pnt& P) ;
  
  Standard_EXPORT   static  gp_Lin2d Project(const gp_Cylinder& Cy,const gp_Lin& L) ;
  
  Standard_EXPORT   static  gp_Lin2d Project(const gp_Cylinder& Cy,const gp_Circ& Ci) ;
  
  Standard_EXPORT   static  gp_Pnt2d Project(const gp_Cone& Co,const gp_Pnt& P) ;
  
  Standard_EXPORT   static  gp_Lin2d Project(const gp_Cone& Co,const gp_Lin& L) ;
  
  Standard_EXPORT   static  gp_Lin2d Project(const gp_Cone& Co,const gp_Circ& Ci) ;
  
  Standard_EXPORT   static  gp_Pnt2d Project(const gp_Sphere& Sp,const gp_Pnt& P) ;
  
  Standard_EXPORT   static  gp_Lin2d Project(const gp_Sphere& Sp,const gp_Circ& Ci) ;
  
  Standard_EXPORT   static  gp_Pnt2d Project(const gp_Torus& To,const gp_Pnt& P) ;
  
  Standard_EXPORT   static  gp_Lin2d Project(const gp_Torus& To,const gp_Circ& Ci) ;





protected:





private:




friend class ProjLib_ProjectOnPlane;
friend class ProjLib_ProjectOnSurface;
friend class ProjLib_ComputeApprox;
friend class ProjLib_ComputeApproxOnPolarSurface;
friend class ProjLib_ProjectedCurve;
friend class ProjLib_HProjectedCurve;
friend class ProjLib_SequenceOfHSequenceOfPnt;
friend class ProjLib_HSequenceOfHSequenceOfPnt;
friend class ProjLib_CompProjectedCurve;
friend class ProjLib_HCompProjectedCurve;
friend class ProjLib_PrjResolve;
friend class ProjLib_PrjFunc;
friend class ProjLib_Projector;
friend class ProjLib_Plane;
friend class ProjLib_Cylinder;
friend class ProjLib_Cone;
friend class ProjLib_Sphere;
friend class ProjLib_Torus;
friend class ProjLib_SequenceNodeOfSequenceOfHSequenceOfPnt;

};





// other Inline functions and methods (like "C++: function call" methods)


#endif