7fd59977 |
1 | // File: Adaptor3d_SurfaceOfLinearExtrusion.gxx |
2 | // Created: Wed Apr 21 15:55:14 1993 |
3 | // Author: Bruno DUMORTIER |
4 | // <dub@phylox> |
5 | |
6 | #include <Adaptor3d_SurfaceOfLinearExtrusion.ixx> |
7 | #include <Adaptor3d_HSurfaceOfLinearExtrusion.hxx> |
8 | #include <Precision.hxx> |
9 | #include <gp.hxx> |
10 | |
11 | //======================================================================= |
12 | //function : Adaptor3d_SurfaceOfLinearExtrusion |
13 | //purpose : |
14 | //======================================================================= |
15 | |
16 | Adaptor3d_SurfaceOfLinearExtrusion::Adaptor3d_SurfaceOfLinearExtrusion() |
17 | {} |
18 | |
19 | //======================================================================= |
20 | //function : Adaptor3d_SurfaceOfLinearExtrusion |
21 | //purpose : |
22 | //======================================================================= |
23 | |
24 | Adaptor3d_SurfaceOfLinearExtrusion::Adaptor3d_SurfaceOfLinearExtrusion |
25 | (const Handle(Adaptor3d_HCurve)& C) |
26 | { |
27 | Load( C); |
28 | } |
29 | |
30 | //======================================================================= |
31 | //function : Adaptor3d_SurfaceOfLinearExtrusion |
32 | //purpose : |
33 | //======================================================================= |
34 | |
35 | Adaptor3d_SurfaceOfLinearExtrusion::Adaptor3d_SurfaceOfLinearExtrusion |
36 | (const Handle(Adaptor3d_HCurve)& C, |
37 | const gp_Dir& V) |
38 | { |
39 | Load( C); |
40 | Load( V); |
41 | } |
42 | |
43 | //======================================================================= |
44 | //function : Load |
45 | //purpose : |
46 | //======================================================================= |
47 | |
48 | void Adaptor3d_SurfaceOfLinearExtrusion::Load( const Handle(Adaptor3d_HCurve)& C) |
49 | { |
50 | myBasisCurve = C; |
51 | } |
52 | |
53 | //======================================================================= |
54 | //function : Load |
55 | //purpose : |
56 | //======================================================================= |
57 | |
58 | void Adaptor3d_SurfaceOfLinearExtrusion::Load( const gp_Dir& V) |
59 | { |
60 | myDirection = V; |
61 | } |
62 | |
63 | //======================================================================= |
64 | //function : FirstUParameter |
65 | //purpose : |
66 | //======================================================================= |
67 | |
68 | Standard_Real Adaptor3d_SurfaceOfLinearExtrusion::FirstUParameter() const |
69 | { |
70 | return myBasisCurve->FirstParameter(); |
71 | } |
72 | |
73 | //======================================================================= |
74 | //function : LastUParameter |
75 | //purpose : |
76 | //======================================================================= |
77 | |
78 | Standard_Real Adaptor3d_SurfaceOfLinearExtrusion::LastUParameter() const |
79 | { |
80 | return myBasisCurve->LastParameter(); |
81 | } |
82 | |
83 | //======================================================================= |
84 | //function : FirstVParameter |
85 | //purpose : |
86 | //======================================================================= |
87 | |
88 | Standard_Real Adaptor3d_SurfaceOfLinearExtrusion::FirstVParameter() const |
89 | { |
90 | return RealFirst(); |
91 | } |
92 | |
93 | //======================================================================= |
94 | //function : LastVParameter |
95 | //purpose : |
96 | //======================================================================= |
97 | |
98 | Standard_Real Adaptor3d_SurfaceOfLinearExtrusion::LastVParameter() const |
99 | { |
100 | return RealLast(); |
101 | } |
102 | |
103 | //======================================================================= |
104 | //function : UContinuity |
105 | //purpose : |
106 | //======================================================================= |
107 | |
108 | GeomAbs_Shape Adaptor3d_SurfaceOfLinearExtrusion::UContinuity() const |
109 | { |
110 | return myBasisCurve->Continuity(); |
111 | } |
112 | |
113 | //======================================================================= |
114 | //function : VContinuity |
115 | //purpose : |
116 | //======================================================================= |
117 | |
118 | GeomAbs_Shape Adaptor3d_SurfaceOfLinearExtrusion::VContinuity() const |
119 | { |
120 | return GeomAbs_CN; |
121 | } |
122 | |
123 | //======================================================================= |
124 | //function : NbUIntervals |
125 | //purpose : |
126 | //======================================================================= |
127 | |
128 | Standard_Integer Adaptor3d_SurfaceOfLinearExtrusion::NbUIntervals |
129 | (const GeomAbs_Shape S) const |
130 | { |
131 | return myBasisCurve->NbIntervals(S); |
132 | } |
133 | |
134 | //======================================================================= |
135 | //function : NbVIntervals |
136 | //purpose : |
137 | //======================================================================= |
138 | |
139 | Standard_Integer Adaptor3d_SurfaceOfLinearExtrusion::NbVIntervals |
140 | (const GeomAbs_Shape ) const |
141 | { |
142 | return 1; |
143 | } |
144 | |
145 | //======================================================================= |
146 | //function : UIntervals |
147 | //purpose : |
148 | //======================================================================= |
149 | |
150 | void Adaptor3d_SurfaceOfLinearExtrusion::UIntervals |
151 | (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const |
152 | { |
153 | myBasisCurve->Intervals(T,S); |
154 | } |
155 | |
156 | //======================================================================= |
157 | //function : VIntervals |
158 | //purpose : |
159 | //======================================================================= |
160 | |
161 | void Adaptor3d_SurfaceOfLinearExtrusion::VIntervals |
162 | //(TColStd_Array1OfReal& T, const GeomAbs_Shape S) const |
163 | (TColStd_Array1OfReal& T, const GeomAbs_Shape ) const |
164 | { |
165 | T(T.Lower()) = FirstVParameter() ; |
166 | T(T.Lower() + 1) = LastVParameter() ; |
167 | } |
168 | |
169 | //======================================================================= |
170 | //function : VTrim |
171 | //purpose : |
172 | //======================================================================= |
173 | |
174 | Handle(Adaptor3d_HSurface) Adaptor3d_SurfaceOfLinearExtrusion::VTrim |
175 | (const Standard_Real First , |
176 | const Standard_Real Last, |
177 | const Standard_Real Tol) const |
178 | { |
179 | Handle(Adaptor3d_HCurve) newBasisCurve = |
180 | myBasisCurve->Trim(First, |
181 | Last, |
182 | Tol) ; |
183 | Adaptor3d_SurfaceOfLinearExtrusion * SurfacePtr = |
184 | new Adaptor3d_SurfaceOfLinearExtrusion(newBasisCurve, myDirection) ; |
185 | |
186 | return new Adaptor3d_HSurfaceOfLinearExtrusion(*SurfacePtr); |
187 | } |
188 | |
189 | //======================================================================= |
190 | //function : UTrim |
191 | //purpose : |
192 | //======================================================================= |
193 | |
194 | Handle(Adaptor3d_HSurface) Adaptor3d_SurfaceOfLinearExtrusion::UTrim |
195 | //(const Standard_Real First , |
196 | // const Standard_Real Last, |
197 | // const Standard_Real Tol) const |
198 | (const Standard_Real , |
199 | const Standard_Real , |
200 | const Standard_Real ) const |
201 | { |
202 | Adaptor3d_SurfaceOfLinearExtrusion * SurfacePtr = |
203 | new Adaptor3d_SurfaceOfLinearExtrusion(myBasisCurve,myDirection); |
204 | |
205 | return new Adaptor3d_HSurfaceOfLinearExtrusion(*SurfacePtr) ; |
206 | } |
207 | |
208 | //======================================================================= |
209 | //function : IsUClosed |
210 | //purpose : |
211 | //======================================================================= |
212 | |
213 | Standard_Boolean Adaptor3d_SurfaceOfLinearExtrusion::IsUClosed() const |
214 | { |
215 | return myBasisCurve->IsClosed(); |
216 | } |
217 | |
218 | //======================================================================= |
219 | //function : IsVClosed |
220 | //purpose : |
221 | //======================================================================= |
222 | |
223 | Standard_Boolean Adaptor3d_SurfaceOfLinearExtrusion::IsVClosed() const |
224 | { |
225 | return Standard_True; |
226 | } |
227 | |
228 | //======================================================================= |
229 | //function : IsUPeriodic |
230 | //purpose : |
231 | //======================================================================= |
232 | |
233 | Standard_Boolean Adaptor3d_SurfaceOfLinearExtrusion::IsUPeriodic() const |
234 | { |
235 | return myBasisCurve->IsPeriodic(); |
236 | } |
237 | |
238 | //======================================================================= |
239 | //function : UPeriod |
240 | //purpose : |
241 | //======================================================================= |
242 | |
243 | Standard_Real Adaptor3d_SurfaceOfLinearExtrusion::UPeriod() const |
244 | { |
245 | return myBasisCurve->Period() ; |
246 | } |
247 | |
248 | //======================================================================= |
249 | //function : IsVPeriodic |
250 | //purpose : |
251 | //======================================================================= |
252 | |
253 | Standard_Boolean Adaptor3d_SurfaceOfLinearExtrusion::IsVPeriodic() const |
254 | { |
255 | return Standard_False; |
256 | } |
257 | |
258 | //======================================================================= |
259 | //function : VPeriod |
260 | //purpose : |
261 | //======================================================================= |
262 | |
263 | Standard_Real Adaptor3d_SurfaceOfLinearExtrusion::VPeriod() const |
264 | { |
265 | Standard_DomainError::Raise("Adaptor3d_SurfaceOfLinearExtrusion::VPeriod"); |
266 | return 0.0e0 ; |
267 | } |
268 | |
269 | //======================================================================= |
270 | //function : Value |
271 | //purpose : |
272 | //======================================================================= |
273 | |
274 | gp_Pnt Adaptor3d_SurfaceOfLinearExtrusion::Value(const Standard_Real U, |
275 | const Standard_Real V) |
276 | const |
277 | { |
278 | gp_Pnt P; |
279 | P = myBasisCurve->Value(U); |
280 | P.Translate( V * gp_Vec(myDirection)); |
281 | return P; |
282 | } |
283 | |
284 | //======================================================================= |
285 | //function : D0 |
286 | //purpose : |
287 | //======================================================================= |
288 | |
289 | void Adaptor3d_SurfaceOfLinearExtrusion::D0(const Standard_Real U, |
290 | const Standard_Real V, |
291 | gp_Pnt& P) const |
292 | { |
293 | myBasisCurve->D0(U,P); |
294 | P.Translate( V * gp_Vec(myDirection)); |
295 | } |
296 | |
297 | //======================================================================= |
298 | //function : D1 |
299 | //purpose : |
300 | //======================================================================= |
301 | |
302 | void Adaptor3d_SurfaceOfLinearExtrusion::D1(const Standard_Real U, |
303 | const Standard_Real V, |
304 | gp_Pnt& P, |
305 | gp_Vec& D1U, |
306 | gp_Vec& D1V) const |
307 | { |
308 | myBasisCurve->D1(U,P,D1U); |
309 | D0(U,V,P); |
310 | D1V = gp_Vec(myDirection); |
311 | } |
312 | |
313 | //======================================================================= |
314 | //function : D2 |
315 | //purpose : |
316 | //======================================================================= |
317 | |
318 | void Adaptor3d_SurfaceOfLinearExtrusion::D2(const Standard_Real U, |
319 | const Standard_Real V, |
320 | gp_Pnt& P, |
321 | gp_Vec& D1U, gp_Vec& D1V, |
322 | gp_Vec& D2U, gp_Vec& D2V, |
323 | gp_Vec& D2UV) const |
324 | { |
325 | myBasisCurve->D2(U,P,D1U,D2U); |
326 | D1V = gp_Vec(myDirection); |
327 | D2V.SetCoord( 0., 0., 0.); |
328 | D2UV.SetCoord( 0., 0., 0.); |
329 | D0(U,V,P); |
330 | } |
331 | |
332 | //======================================================================= |
333 | //function : D3 |
334 | //purpose : |
335 | //======================================================================= |
336 | |
337 | void Adaptor3d_SurfaceOfLinearExtrusion::D3(const Standard_Real U, |
338 | const Standard_Real V, |
339 | gp_Pnt& P, |
340 | gp_Vec& D1U, gp_Vec& D1V, |
341 | gp_Vec& D2U, gp_Vec& D2V, |
342 | gp_Vec& D2UV, |
343 | gp_Vec& D3U, gp_Vec& D3V, |
344 | gp_Vec& D3UUV, gp_Vec& D3UVV) const |
345 | { |
346 | myBasisCurve->D3(U,P,D1U,D2U,D3U); |
347 | D1V = gp_Vec(myDirection); |
348 | D2V.SetCoord( 0., 0., 0.); |
349 | D2UV.SetCoord( 0., 0., 0.); |
350 | D3V.SetCoord( 0., 0., 0.); |
351 | D3UUV.SetCoord( 0., 0., 0.); |
352 | D3UVV.SetCoord( 0., 0., 0.); |
353 | D0(U,V,P); |
354 | } |
355 | |
356 | //======================================================================= |
357 | //function : DN |
358 | //purpose : |
359 | //======================================================================= |
360 | |
361 | gp_Vec Adaptor3d_SurfaceOfLinearExtrusion::DN |
362 | (const Standard_Real U, |
363 | // const Standard_Real V, |
364 | const Standard_Real , |
365 | const Standard_Integer NU, |
366 | const Standard_Integer NV) const |
367 | { |
368 | if ( (NU+NV)<1 || NU<0 || NV<0) { |
369 | Standard_DomainError::Raise("Adaptor3d_SurfaceOfLinearExtrusion::DN"); |
370 | return gp_Vec(); |
371 | } |
372 | else { |
373 | if (NU == 0 && NV ==1) return gp_Vec( myDirection); |
374 | else if (NV == 0) return myBasisCurve->DN(U,NU); |
375 | else return gp_Vec( 0., 0., 0.); |
376 | } |
377 | } |
378 | |
379 | //======================================================================= |
380 | //function : UResolution |
381 | //purpose : |
382 | //======================================================================= |
383 | |
384 | Standard_Real Adaptor3d_SurfaceOfLinearExtrusion::UResolution |
385 | (const Standard_Real R3d) const |
386 | { |
387 | return myBasisCurve->Resolution(R3d); |
388 | } |
389 | |
390 | //======================================================================= |
391 | //function : VResolution |
392 | //purpose : |
393 | //======================================================================= |
394 | |
395 | Standard_Real Adaptor3d_SurfaceOfLinearExtrusion::VResolution |
396 | (const Standard_Real R3d) const |
397 | { |
398 | return R3d; |
399 | } |
400 | |
401 | //======================================================================= |
402 | //function : GetType |
403 | //purpose : |
404 | //======================================================================= |
405 | |
406 | GeomAbs_SurfaceType Adaptor3d_SurfaceOfLinearExtrusion::GetType() const |
407 | { |
408 | switch ( myBasisCurve->GetType()) { |
409 | |
410 | case GeomAbs_Line: |
411 | { |
412 | gp_Dir D = myBasisCurve->Line().Direction(); |
413 | if (myDirection.IsParallel( D, Precision::Angular())) { |
414 | return GeomAbs_SurfaceOfExtrusion; |
415 | } |
416 | else { |
417 | return GeomAbs_Plane; |
418 | } |
419 | break; |
420 | } |
421 | |
422 | case GeomAbs_Circle: |
423 | { |
424 | gp_Dir D = (myBasisCurve->Circle()).Axis().Direction(); |
425 | if ( myDirection.IsParallel( D, Precision::Angular())) { |
426 | return GeomAbs_Cylinder; |
427 | } |
428 | // JAG 10.11.95 |
429 | else if (myDirection.IsNormal(D, Precision::Angular())) { |
430 | return GeomAbs_Plane; |
431 | } |
432 | else { |
433 | return GeomAbs_SurfaceOfExtrusion; |
434 | } |
435 | break; |
436 | } |
437 | // JAG 10.11.95 |
438 | |
439 | case GeomAbs_Ellipse: |
440 | { |
441 | gp_Dir D = (myBasisCurve->Ellipse()).Axis().Direction(); |
442 | if (myDirection.IsNormal(D, Precision::Angular())) { |
443 | return GeomAbs_Plane; |
444 | } |
445 | else { |
446 | return GeomAbs_SurfaceOfExtrusion; |
447 | } |
448 | break; |
449 | } |
450 | |
451 | case GeomAbs_Parabola: |
452 | { |
453 | gp_Dir D = (myBasisCurve->Parabola()).Axis().Direction(); |
454 | if (myDirection.IsNormal(D, Precision::Angular())) { |
455 | return GeomAbs_Plane; |
456 | } |
457 | else { |
458 | return GeomAbs_SurfaceOfExtrusion; |
459 | } |
460 | break; |
461 | } |
462 | |
463 | case GeomAbs_Hyperbola: |
464 | { |
465 | gp_Dir D = (myBasisCurve->Hyperbola()).Axis().Direction(); |
466 | if (myDirection.IsNormal(D, Precision::Angular())) { |
467 | return GeomAbs_Plane; |
468 | } |
469 | else { |
470 | return GeomAbs_SurfaceOfExtrusion; |
471 | } |
472 | break; |
473 | } |
474 | |
475 | default: |
476 | return GeomAbs_SurfaceOfExtrusion; |
477 | |
478 | } |
479 | |
480 | // portage WNT |
481 | return GeomAbs_SurfaceOfExtrusion; |
482 | } |
483 | |
484 | //======================================================================= |
485 | //function : Plane |
486 | //purpose : |
487 | //======================================================================= |
488 | |
489 | gp_Pln Adaptor3d_SurfaceOfLinearExtrusion::Plane() const |
490 | { |
491 | Standard_NoSuchObject_Raise_if (GetType() != GeomAbs_Plane, |
492 | "Adaptor3d_SurfaceOfLinearExtrusion::Plane"); |
493 | /* |
494 | gp_Pnt P; |
495 | gp_Vec Ox, Oy; |
496 | D1( 0., 0., P, Ox, Oy); |
497 | gp_Ax3 Ax3(P,gp_Dir(Ox^Oy),gp_Dir(Ox)); |
498 | if (gp_Dir(Oy).Dot(Ax3.YDirection())<0.){ |
499 | Ax3.YReverse(); |
500 | } |
501 | return gp_Pln(Ax3); |
502 | */ |
503 | |
504 | gp_Pnt P; |
505 | gp_Vec D1u, newZ; |
506 | Standard_Real UFirst = myBasisCurve->FirstParameter(); |
507 | Standard_Real ULast = myBasisCurve->LastParameter(); |
508 | if (Precision::IsNegativeInfinite(UFirst) && |
509 | Precision::IsPositiveInfinite(ULast)) { |
510 | UFirst = -100.; |
511 | ULast = 100.; |
512 | } |
513 | else if (Precision::IsNegativeInfinite(UFirst)) { |
514 | UFirst = ULast - 200.; |
515 | } |
516 | else if (Precision::IsPositiveInfinite(ULast)) { |
517 | ULast = UFirst + 200.; |
518 | } |
519 | Standard_Real deltau = (ULast-UFirst)/20.; |
520 | for (Standard_Integer i =1; i<=21; i++) { |
521 | Standard_Real prm = UFirst + (i-1)*deltau; |
522 | myBasisCurve->D1(prm,P,D1u); |
523 | newZ = D1u.Normalized().Crossed(myDirection); |
524 | if (newZ.Magnitude() > 1.e-12) break; |
525 | } |
526 | gp_Ax3 Ax3(P,gp_Dir(newZ),gp_Dir(D1u)); |
527 | if (myDirection.Dot(Ax3.YDirection())<0.){ |
528 | Ax3.YReverse(); |
529 | } |
530 | return gp_Pln(Ax3); |
531 | } |
532 | |
533 | |
534 | //======================================================================= |
535 | //function : Cylinder |
536 | //purpose : |
537 | //======================================================================= |
538 | |
539 | gp_Cylinder Adaptor3d_SurfaceOfLinearExtrusion::Cylinder() const |
540 | { |
541 | Standard_NoSuchObject_Raise_if |
542 | (GetType() != GeomAbs_Cylinder, |
543 | "Adaptor3d_SurfaceOfLinearExtrusion::Cylinder"); |
544 | |
545 | gp_Circ C = myBasisCurve->Circle() ; |
546 | gp_Ax3 Ax3(C.Position()); |
547 | if(myDirection.Dot((C.Axis()).Direction())<0.){ |
548 | Ax3.ZReverse(); |
549 | } |
550 | return gp_Cylinder(Ax3,C.Radius()); |
551 | } |
552 | |
553 | //======================================================================= |
554 | //function : Cone |
555 | //purpose : |
556 | //======================================================================= |
557 | |
558 | gp_Cone Adaptor3d_SurfaceOfLinearExtrusion::Cone() const |
559 | { |
560 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::Cone"); |
561 | return gp_Cone(); |
562 | } |
563 | |
564 | //======================================================================= |
565 | //function : Sphere |
566 | //purpose : |
567 | //======================================================================= |
568 | |
569 | gp_Sphere Adaptor3d_SurfaceOfLinearExtrusion::Sphere() const |
570 | { |
571 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::Sphere"); |
572 | return gp_Sphere(); |
573 | } |
574 | |
575 | //======================================================================= |
576 | //function : Torus |
577 | //purpose : |
578 | //======================================================================= |
579 | |
580 | gp_Torus Adaptor3d_SurfaceOfLinearExtrusion::Torus() const |
581 | { |
582 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::Torus"); |
583 | return gp_Torus(); |
584 | } |
585 | |
586 | |
587 | //======================================================================= |
588 | //function : Axis |
589 | //purpose : |
590 | //======================================================================= |
591 | |
592 | gp_Ax1 Adaptor3d_SurfaceOfLinearExtrusion::AxeOfRevolution() const |
593 | { |
594 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::Axes"); |
595 | return gp_Ax1(); |
596 | } |
597 | |
598 | //======================================================================= |
599 | //function : UDegree |
600 | //purpose : |
601 | //======================================================================= |
602 | |
603 | Standard_Integer Adaptor3d_SurfaceOfLinearExtrusion::UDegree() const |
604 | { |
605 | return myBasisCurve -> Degree(); |
606 | } |
607 | //======================================================================= |
608 | //function : NbUPoles |
609 | //purpose : |
610 | //======================================================================= |
611 | |
612 | Standard_Integer Adaptor3d_SurfaceOfLinearExtrusion::NbUPoles() const |
613 | { |
614 | return myBasisCurve->NbPoles(); |
615 | } |
616 | //======================================================================= |
617 | //function : VDegree |
618 | //purpose : |
619 | //======================================================================= |
620 | |
621 | Standard_Integer Adaptor3d_SurfaceOfLinearExtrusion::VDegree() const |
622 | { |
623 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::VDegree"); |
624 | return 0; |
625 | } |
626 | |
627 | //======================================================================= |
628 | //function : NbVPoles |
629 | //purpose : |
630 | //======================================================================= |
631 | |
632 | Standard_Integer Adaptor3d_SurfaceOfLinearExtrusion::NbVPoles() const |
633 | { |
634 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::NbVPoles"); |
635 | return 0; |
636 | } |
637 | |
638 | //======================================================================= |
639 | //function : NbUKnots |
640 | //purpose : |
641 | //======================================================================= |
642 | |
643 | Standard_Integer Adaptor3d_SurfaceOfLinearExtrusion::NbUKnots() const |
644 | { |
645 | Standard_NoSuchObject::Raise |
646 | ("Adaptor3d_SurfaceOfLinearExtrusion::NbUKnots"); |
647 | return 0; |
648 | } |
649 | //======================================================================= |
650 | //function : NbVKnots |
651 | //purpose : |
652 | //======================================================================= |
653 | |
654 | Standard_Integer Adaptor3d_SurfaceOfLinearExtrusion::NbVKnots() const |
655 | { |
656 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::NbVKnots"); |
657 | return 0; |
658 | } |
659 | //======================================================================= |
660 | //function : IsURational |
661 | //purpose : |
662 | //======================================================================= |
663 | |
664 | Standard_Boolean Adaptor3d_SurfaceOfLinearExtrusion::IsURational() const |
665 | { |
666 | Standard_NoSuchObject::Raise |
667 | ("Adaptor3d_SurfaceOfLinearExtrusion::IsURational"); |
668 | return Standard_False; |
669 | } |
670 | //======================================================================= |
671 | //function : IsVRational |
672 | //purpose : |
673 | //======================================================================= |
674 | |
675 | Standard_Boolean Adaptor3d_SurfaceOfLinearExtrusion::IsVRational() const |
676 | { |
677 | Standard_NoSuchObject::Raise |
678 | ("Adaptor3d_SurfaceOfLinearExtrusion::IsVRational"); |
679 | return Standard_False; |
680 | } |
681 | //======================================================================= |
682 | //function : Bezier |
683 | //purpose : |
684 | //======================================================================= |
685 | |
686 | |
687 | Handle(Geom_BezierSurface) Adaptor3d_SurfaceOfLinearExtrusion::Bezier() const |
688 | { |
689 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::Axes"); |
690 | return Handle(Geom_BezierSurface)() ; |
691 | } |
692 | |
693 | //======================================================================= |
694 | //function : BSpline |
695 | //purpose : |
696 | //======================================================================= |
697 | |
698 | Handle(Geom_BSplineSurface) Adaptor3d_SurfaceOfLinearExtrusion::BSpline() const |
699 | { |
700 | Standard_NoSuchObject::Raise("Adaptor3d_SurfaceOfLinearExtrusion::Axes"); |
701 | return Handle(Geom_BSplineSurface)() ; |
702 | } |
703 | |
704 | //======================================================================= |
705 | //function : Direction |
706 | //purpose : |
707 | //======================================================================= |
708 | |
709 | gp_Dir Adaptor3d_SurfaceOfLinearExtrusion::Direction() const |
710 | { |
711 | return myDirection; |
712 | } |
713 | |
714 | //======================================================================= |
715 | //function : BasisCurve |
716 | //purpose : |
717 | //======================================================================= |
718 | |
719 | Handle(Adaptor3d_HCurve) Adaptor3d_SurfaceOfLinearExtrusion::BasisCurve() const |
720 | { |
721 | return myBasisCurve; |
722 | } |