0022627: Change OCCT memory management defaults
[occt.git] / src / GeomPlate / GeomPlate_Surface.cxx
CommitLineData
7fd59977 1// File: GeomPlate_Surface.cxx
2// Created: Thu Nov 21 13:47:59 1996
3// Author: Joelle CHAUVET
4// <jct@sgi38>
5// Modified: Wed Mar 5 09:45:42 1997
6// by: Joelle CHAUVET
7// G1134 : new methods RealBounds and Constraints
8// Modified: Mon Jun 16 15:22:41 1997
9// by: Jerome LEMONIER
10// Correction de la methode D2 (faute de frappe dans le code)
11// Correction de la methode D1 (D0 inutile)
12
13
14#include <GeomPlate_Surface.ixx>
15#include <gp_XY.hxx>
16
17
18//=======================================================================
19//function : GeomPlate_Surface
20//purpose :
21//=======================================================================
22
23GeomPlate_Surface::GeomPlate_Surface(const Handle(Geom_Surface)& Surfinit,const Plate_Plate& Surfinter) : mySurfinter(Surfinter),mySurfinit(Surfinit)
24{
25}
26
27//=======================================================================
28//function : UReverse
29//purpose :
30//=======================================================================
31
32void GeomPlate_Surface::UReverse()
33{
34 //Standard_Failure::Raise("UReverse");
35}
36
37
38//=======================================================================
39//function : UReversedParameter
40//purpose :
41//=======================================================================
42
43Standard_Real GeomPlate_Surface::UReversedParameter(const Standard_Real U) const
44{ //Standard_Failure::Raise("UReversedParameter");
45 return (-U);
46}
47
48
49//=======================================================================
50//function : VReverse
51//purpose :
52//=======================================================================
53
54void GeomPlate_Surface::VReverse()
55{ //Standard_Failure::Raise("VReverse");
56}
57
58
59//=======================================================================
60//function : VReversedParameter
61//purpose :
62//=======================================================================
63
64Standard_Real GeomPlate_Surface::VReversedParameter(const Standard_Real V) const
65{ //Standard_Failure::Raise("VReversedParameter");
66 return (-V);
67}
68
69
70//=======================================================================
71//function : TransformParameters
72//purpose :
73//=======================================================================
74
75//void GeomPlate_Surface::TransformParameters(Standard_Real& U, Standard_Real& V, const gp_Trsf& T) const
76void GeomPlate_Surface::TransformParameters(Standard_Real& , Standard_Real& , const gp_Trsf& ) const
77{//Standard_Failure::Raise("TransformParameters");
78}
79
80
81//=======================================================================
82//function : ParametricTransformation
83//purpose :
84//=======================================================================
85
86//gp_GTrsf2d GeomPlate_Surface::ParametricTransformation(const gp_Trsf& T) const
87gp_GTrsf2d GeomPlate_Surface::ParametricTransformation(const gp_Trsf& ) const
88{//Standard_Failure::Raise("ParametricTransformation");
89 return gp_GTrsf2d();
90}
91
92
93//=======================================================================
94//function : Bounds
95//purpose :
96//=======================================================================
97
98void GeomPlate_Surface::Bounds(Standard_Real& U1, Standard_Real& U2, Standard_Real& V1, Standard_Real& V2) const
99{
100 if (mySurfinit->DynamicType() == STANDARD_TYPE(GeomPlate_Surface))
101 mySurfinit->Bounds(U1,U2,V1,V2);
102 else
103 {U1=myUmin;U2=myUmax;V1=myVmin;V2=myVmax;}
104}
105
106
107//=======================================================================
108//function : IsUClosed
109//purpose :
110//=======================================================================
111
112Standard_Boolean GeomPlate_Surface::IsUClosed() const
113{ //Standard_Failure::Raise("IsUClosed(");
114 //return 1;
115 return 0;
116}
117
118
119//=======================================================================
120//function : IsVClosed
121//purpose :
122//=======================================================================
123
124Standard_Boolean GeomPlate_Surface::IsVClosed() const
125{ //Standard_Failure::Raise("IsVClosed(");
126 //return 1;
127 return 0;
128}
129
130
131//=======================================================================
132//function : IsUPeriodic
133//purpose :
134//=======================================================================
135
136Standard_Boolean GeomPlate_Surface::IsUPeriodic() const
137{
138 return Standard_False;
139}
140
141
142//=======================================================================
143//function : UPeriod
144//purpose :
145//=======================================================================
146
147Standard_Real GeomPlate_Surface::UPeriod() const
148{
149 return Standard_False;
150}
151
152
153//=======================================================================
154//function : IsVPeriodic
155//purpose :
156//=======================================================================
157
158Standard_Boolean GeomPlate_Surface::IsVPeriodic() const
159{
160 return Standard_False;
161}
162
163
164//=======================================================================
165//function : VPeriod
166//purpose :
167//=======================================================================
168
169Standard_Real GeomPlate_Surface::VPeriod() const
170{
171 return Standard_False;
172}
173
174
175//=======================================================================
176//function : UIso
177//purpose :
178//=======================================================================
179
180//Handle(Geom_Curve) GeomPlate_Surface::UIso(const Standard_Real U) const
181Handle(Geom_Curve) GeomPlate_Surface::UIso(const Standard_Real ) const
182{ //Standard_Failure::Raise("UIso");
183 return Handle(Geom_Curve)();
184}
185
186
187//=======================================================================
188//function : VIso
189//purpose :
190//=======================================================================
191
192//Handle(Geom_Curve) GeomPlate_Surface::VIso(const Standard_Real V) const
193Handle(Geom_Curve) GeomPlate_Surface::VIso(const Standard_Real ) const
194{ //Standard_Failure::Raise("VIso");
195 return Handle(Geom_Curve)();
196}
197
198
199//=======================================================================
200//function : Continuity
201//purpose :
202//=======================================================================
203
204GeomAbs_Shape GeomPlate_Surface::Continuity() const
205{ //Standard_Failure::Raise("Continuity()");
206 return GeomAbs_Shape();
207
208}
209
210
211//=======================================================================
212//function : IsCNu
213//purpose :
214//=======================================================================
215
216//Standard_Boolean GeomPlate_Surface::IsCNu(const Standard_Integer N) const
217Standard_Boolean GeomPlate_Surface::IsCNu(const Standard_Integer ) const
218{ Standard_Failure::Raise("IsCNu");
219 return 1;
220}
221
222
223//=======================================================================
224//function : IsCNv
225//purpose :
226//=======================================================================
227
228//Standard_Boolean GeomPlate_Surface::IsCNv(const Standard_Integer N) const
229Standard_Boolean GeomPlate_Surface::IsCNv(const Standard_Integer ) const
230{ Standard_Failure::Raise("IsCNv");
231 return 1;
232}
233
234
235//=======================================================================
236//function : D0
237//purpose :
238//=======================================================================
239
240void GeomPlate_Surface::D0(const Standard_Real U, const Standard_Real V, gp_Pnt& P) const
241{
242 gp_XY P1(U,V);
243 gp_Pnt P2;
244 mySurfinit->D0(U,V,P2);
245 gp_XYZ P3;//=mySurfinter.Evaluate(P1);
246 P3=mySurfinter.Evaluate(P1);
247 for (Standard_Integer i=1; i<=3; i++)
248 {
249 P.SetCoord(i,P3.Coord(i)+P2.Coord(i));
250 }
251}
252
253
254//=======================================================================
255//function : D1
256//purpose :
257//=======================================================================
258
259void GeomPlate_Surface::D1(const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V) const
260{
261 gp_XY P1(U,V);
262 gp_Pnt P2;
263 D0(U,V,P);
264 gp_Vec V1U,V1V;
265 mySurfinit->D1(U,V,P2,V1U,V1V);
266 gp_XYZ V2U=mySurfinter.EvaluateDerivative(P1,1,0);
267 gp_XYZ V2V=mySurfinter.EvaluateDerivative(P1,0,1);
268 for (Standard_Integer i=1; i<=3; i++)
269 {
270 D1U.SetCoord(i,V1U.Coord(i)+V2U.Coord(i));
271 D1V.SetCoord(i,V1V.Coord(i)+V2V.Coord(i));
272 }
273}
274
275
276//=======================================================================
277//function : D2
278//purpose :
279//=======================================================================
280
281void GeomPlate_Surface::D2(const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V, gp_Vec& D2U, gp_Vec& D2V, gp_Vec& D2UV) const
282{
283 gp_XY P1(U,V);
284 gp_Pnt P2;
285
286 gp_Vec V1U,V1V,V1UV,vv,v;
287 D1(U,V,P,D1U,D1V);
288 mySurfinit->D2(U,V,P2,vv,v,V1U,V1V,V1UV);
289 gp_XYZ V2U=mySurfinter.EvaluateDerivative(P1,2,0);
290 gp_XYZ V2V=mySurfinter.EvaluateDerivative(P1,0,2);
291 gp_XYZ V2UV=mySurfinter.EvaluateDerivative(P1,1,1);
292 for (Standard_Integer i=1; i<=3; i++)
293 {
294 D2U.SetCoord(i,V1U.Coord(i)+V2U.Coord(i));
295 D2V.SetCoord(i,V1V.Coord(i)+V2V.Coord(i));
296 D2UV.SetCoord(i,V1UV.Coord(i)+V2UV.Coord(i));
297 }
298}
299
300
301//=======================================================================
302//function : D3
303//purpose :
304//=======================================================================
305
306//void GeomPlate_Surface::D3(const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V, gp_Vec& D2U, gp_Vec& D2V, gp_Vec& D2UV, gp_Vec& D3U, gp_Vec& D3V, gp_Vec& D3UUV, gp_Vec& D3UVV) const
307void GeomPlate_Surface::D3(const Standard_Real , const Standard_Real , gp_Pnt& , gp_Vec& , gp_Vec& , gp_Vec& , gp_Vec& , gp_Vec& , gp_Vec& , gp_Vec& , gp_Vec& , gp_Vec& ) const
308{ Standard_Failure::Raise("D3");
309}
310
311
312//=======================================================================
313//function : DN
314//purpose :
315//=======================================================================
316
317//gp_Vec GeomPlate_Surface::DN(const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const
318gp_Vec GeomPlate_Surface::DN(const Standard_Real , const Standard_Real , const Standard_Integer , const Standard_Integer ) const
319{ Standard_Failure::Raise("DN");
320 return gp_Vec();
321}
322
323
324//=======================================================================
325//function : Copy
326//purpose :
327//=======================================================================
328
329Handle(Geom_Geometry) GeomPlate_Surface::Copy() const
330{
331 Handle(GeomPlate_Surface) GPS
332 = new GeomPlate_Surface(mySurfinit,mySurfinter);
333 return GPS;
334}
335
336
337//=======================================================================
338//function : Transform
339//purpose :
340//=======================================================================
341
342//void GeomPlate_Surface::Transform(const gp_Trsf& T)
343void GeomPlate_Surface::Transform(const gp_Trsf& )
344{ //Standard_Failure::Raise("Transform");
345}
346
347//=======================================================================
348//function : CallSurfinit
349//purpose :
350//=======================================================================
351
352Handle(Geom_Surface) GeomPlate_Surface::CallSurfinit() const
353
354{
355 return mySurfinit;
356}
357
358
359//=======================================================================
360//function : SetBounds
361//purpose :
362//=======================================================================
363
364void GeomPlate_Surface::SetBounds(const Standard_Real Umin, const Standard_Real Umax, const Standard_Real Vmin, const Standard_Real Vmax)
365{
366 if ((Umin>Umax) || (Vmin>Vmax)) Standard_Failure::Raise("Bounds haven't the good sense");
367 else
368 myUmin=Umin;myUmax=Umax;myVmin=Vmin;myVmax=Vmax;
369 if ((Umin==Umax) || (Vmin==Vmax)) Standard_Failure::Raise("Bounds are equal");
370
371}
372
373
374//=======================================================================
375//function : RealBounds
376//purpose :
377//=======================================================================
378
379void GeomPlate_Surface::RealBounds(Standard_Real& U1, Standard_Real& U2, Standard_Real& V1, Standard_Real& V2) const
380{
381 mySurfinter.UVBox(U1,U2,V1,V2);
382}
383
384
385//=======================================================================
386//function : Constraints
387//purpose :
388//=======================================================================
389
390void GeomPlate_Surface::Constraints(TColgp_SequenceOfXY& Seq) const
391{
392 mySurfinter.UVConstraints(Seq);
393}