b311480e |
1 | // Created on: 1994-06-17 |
2 | // Created by: Modeling |
3 | // Copyright (c) 1994-1999 Matra Datavision |
973c2be1 |
4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | // |
973c2be1 |
6 | // This file is part of Open CASCADE Technology software library. |
b311480e |
7 | // |
d5f74e42 |
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 |
973c2be1 |
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. |
b311480e |
13 | // |
973c2be1 |
14 | // Alternatively, this file may be used under the terms of Open CASCADE |
15 | // commercial license or contractual agreement. |
7fd59977 |
16 | |
17 | #include <Precision.hxx> |
18 | #include <BRepFilletAPI_MakeFillet.ixx> |
19 | #include <TopExp_Explorer.hxx> |
20 | #include <TopOpeBRepDS_HDataStructure.hxx> |
21 | #include <TopTools_ListIteratorOfListOfShape.hxx> |
22 | #include <ChFiDS_Spine.hxx> |
23 | #include <ChFiDS_ErrorStatus.hxx> |
24 | #include <Law_Linear.hxx> |
25 | #include <Law_S.hxx> |
26 | #include <Law_Interpol.hxx> |
27 | |
28 | //======================================================================= |
29 | //function : BRepFilletAPI_MakeFillet |
30 | //purpose : |
31 | //======================================================================= |
32 | |
33 | BRepFilletAPI_MakeFillet::BRepFilletAPI_MakeFillet(const TopoDS_Shape& S, |
34 | const ChFi3d_FilletShape FShape): |
35 | myBuilder(S,FShape) |
36 | { |
37 | } |
38 | |
39 | //======================================================================= |
40 | //function : SetParams |
41 | //purpose : |
42 | //======================================================================= |
43 | |
44 | void BRepFilletAPI_MakeFillet::SetParams(const Standard_Real Tang, |
45 | const Standard_Real Tesp, |
46 | const Standard_Real T2d, |
47 | const Standard_Real TApp3d, |
48 | const Standard_Real TolApp2d, |
49 | const Standard_Real Fleche) |
50 | { |
51 | myBuilder.SetParams(Tang,Tesp, T2d, TApp3d, TolApp2d, Fleche); |
52 | } |
53 | |
54 | //======================================================================= |
55 | //function : SetContinuity |
56 | //purpose : |
57 | //======================================================================= |
58 | |
59 | void BRepFilletAPI_MakeFillet::SetContinuity( |
60 | const GeomAbs_Shape InternalContinuity, |
61 | const Standard_Real AngleTol) |
62 | { |
63 | myBuilder.SetContinuity(InternalContinuity, AngleTol ); |
64 | } |
65 | |
66 | //======================================================================= |
67 | //function : Add |
68 | //purpose : |
69 | //======================================================================= |
70 | |
71 | void BRepFilletAPI_MakeFillet::Add(const TopoDS_Edge& E) |
72 | { |
73 | myBuilder.Add(E); |
74 | } |
75 | |
76 | |
77 | //======================================================================= |
78 | //function : Add |
79 | //purpose : |
80 | //======================================================================= |
81 | |
82 | void BRepFilletAPI_MakeFillet::Add(const Standard_Real Radius, |
83 | const TopoDS_Edge& E) |
84 | { |
85 | //myBuilder.Add(Radius,E); |
86 | myBuilder.Add(E); |
87 | Standard_Integer IinC; |
88 | Standard_Integer IC = myBuilder.Contains(E, IinC); |
89 | if (IC) |
90 | SetRadius( Radius, IC, IinC ); |
91 | } |
92 | |
93 | |
94 | |
95 | //======================================================================= |
96 | //function : Add |
97 | //purpose : |
98 | //======================================================================= |
99 | |
100 | void BRepFilletAPI_MakeFillet::Add(const Standard_Real R1, |
101 | const Standard_Real R2, |
102 | const TopoDS_Edge& E) |
103 | { |
104 | myBuilder.Add(E); |
105 | Standard_Integer IinC; |
106 | Standard_Integer IC = myBuilder.Contains(E, IinC); |
107 | if (IC) |
108 | SetRadius(R1,R2,IC,IinC); |
109 | } |
110 | |
111 | |
112 | //======================================================================= |
113 | //function : Add |
114 | //purpose : |
115 | //======================================================================= |
116 | |
117 | void BRepFilletAPI_MakeFillet::Add(const Handle(Law_Function)& L, |
118 | const TopoDS_Edge& E) |
119 | { |
120 | //myBuilder.Add(L,E); |
121 | myBuilder.Add(E); |
122 | Standard_Integer IinC; |
123 | Standard_Integer IC = myBuilder.Contains(E, IinC); |
124 | if (IC) |
125 | SetRadius(L,IC,IinC); |
126 | } |
127 | |
128 | |
129 | //======================================================================= |
130 | //function : Add |
131 | //purpose : |
132 | //======================================================================= |
133 | |
134 | void BRepFilletAPI_MakeFillet::Add(const TColgp_Array1OfPnt2d& UandR, |
135 | const TopoDS_Edge& E) |
136 | { |
137 | myBuilder.Add(E); |
138 | Standard_Integer IinC; |
139 | Standard_Integer IC = myBuilder.Contains(E, IinC); |
140 | if (IC) |
141 | SetRadius( UandR, IC, IinC ); |
142 | } |
143 | |
144 | |
145 | //======================================================================= |
146 | //function : SetRadius |
147 | //purpose : |
148 | //======================================================================= |
149 | |
150 | void BRepFilletAPI_MakeFillet::SetRadius(const Standard_Real Radius, |
151 | const Standard_Integer IC, |
152 | const Standard_Integer IinC) |
153 | { |
154 | gp_XY FirstUandR( 0., Radius ), LastUandR( 1., Radius ); |
155 | myBuilder.SetRadius( FirstUandR, IC, IinC ); |
156 | myBuilder.SetRadius( LastUandR, IC, IinC ); |
157 | } |
158 | |
159 | |
160 | //======================================================================= |
161 | //function : SetRadius |
162 | //purpose : |
163 | //======================================================================= |
164 | |
165 | void BRepFilletAPI_MakeFillet::SetRadius(const Standard_Real R1, |
166 | const Standard_Real R2, |
167 | const Standard_Integer IC, |
168 | const Standard_Integer IinC) |
169 | { |
170 | Standard_Real r1, r2; |
171 | |
172 | if(Abs(R1-R2) < Precision::Confusion()) |
173 | r1 = r2 = (R1+R2)*0.5; |
174 | else |
175 | { |
176 | r1 = R1; |
177 | r2 = R2; |
178 | } |
179 | gp_XY FirstUandR( 0., r1 ), LastUandR( 1., r2 ); |
180 | myBuilder.SetRadius( FirstUandR, IC, IinC ); |
181 | myBuilder.SetRadius( LastUandR, IC, IinC ); |
182 | } |
183 | |
184 | |
185 | //======================================================================= |
186 | //function : SetRadius |
187 | //purpose : |
188 | //======================================================================= |
189 | |
190 | void BRepFilletAPI_MakeFillet::SetRadius(const Handle(Law_Function)& L, |
191 | const Standard_Integer IC, |
192 | const Standard_Integer IinC) |
193 | { |
194 | myBuilder.SetRadius(L,IC,IinC); |
195 | } |
196 | |
197 | |
198 | //======================================================================= |
199 | //function : SetRadius |
200 | //purpose : |
201 | //======================================================================= |
202 | |
203 | void BRepFilletAPI_MakeFillet::SetRadius(const TColgp_Array1OfPnt2d& UandR, |
204 | const Standard_Integer IC, |
205 | const Standard_Integer IinC) |
206 | { |
207 | if(UandR.Length() == 1) |
208 | SetRadius( UandR(UandR.Lower()).Y(), IC, IinC ); |
209 | else if(UandR.Length() == 2) |
210 | SetRadius( UandR(UandR.Lower()).Y(), UandR(UandR.Upper()).Y(), IC, IinC ); |
211 | else{ |
212 | Standard_Real Uf = UandR(UandR.Lower()).X(); |
213 | Standard_Real Ul = UandR(UandR.Upper()).X(); |
214 | for(Standard_Integer i = UandR.Lower(); i <= UandR.Upper(); i++){ |
215 | Standard_Real Ucur = UandR(i).X(); |
216 | Ucur = ( Ucur - Uf ) / ( Ul - Uf ); |
217 | gp_XY newUandR( Ucur, UandR(i).Y() ); |
218 | myBuilder.SetRadius( newUandR, IC, IinC ); |
219 | } |
220 | } |
221 | } |
222 | |
223 | |
224 | //======================================================================= |
225 | //function : IsConstant |
226 | //purpose : |
227 | //======================================================================= |
228 | |
229 | Standard_Boolean BRepFilletAPI_MakeFillet::IsConstant(const Standard_Integer IC) |
230 | { |
231 | return myBuilder.IsConstant(IC); |
232 | } |
233 | |
234 | |
235 | //======================================================================= |
236 | //function : Radius |
237 | //purpose : |
238 | //======================================================================= |
239 | |
240 | Standard_Real BRepFilletAPI_MakeFillet::Radius(const Standard_Integer IC) |
241 | { |
242 | return myBuilder.Radius(IC); |
243 | } |
244 | |
245 | |
246 | //======================================================================= |
247 | //function : ResetContour |
248 | //purpose : |
249 | //======================================================================= |
250 | |
251 | void BRepFilletAPI_MakeFillet::ResetContour(const Standard_Integer IC) |
252 | { |
253 | myBuilder.ResetContour(IC); |
254 | } |
255 | |
256 | |
257 | //======================================================================= |
258 | //function : IsConstant |
259 | //purpose : |
260 | //======================================================================= |
261 | |
262 | Standard_Boolean BRepFilletAPI_MakeFillet::IsConstant(const Standard_Integer IC, |
263 | const TopoDS_Edge& E) |
264 | { |
265 | return myBuilder.IsConstant(IC,E); |
266 | } |
267 | |
268 | |
269 | //======================================================================= |
270 | //function : Radius |
271 | //purpose : |
272 | //======================================================================= |
273 | |
274 | Standard_Real BRepFilletAPI_MakeFillet::Radius(const Standard_Integer IC, |
275 | const TopoDS_Edge& E) |
276 | { |
277 | return myBuilder.Radius(IC,E); |
278 | } |
279 | |
280 | |
281 | //======================================================================= |
282 | //function : SetRadius |
283 | //purpose : |
284 | //======================================================================= |
285 | |
286 | void BRepFilletAPI_MakeFillet::SetRadius(const Standard_Real Radius, |
287 | const Standard_Integer IC, |
288 | const TopoDS_Edge& E) |
289 | { |
290 | myBuilder.SetRadius(Radius,IC,E); |
291 | } |
292 | |
293 | |
294 | //======================================================================= |
295 | //function : GetBounds |
296 | //purpose : |
297 | //======================================================================= |
298 | |
299 | Standard_Boolean BRepFilletAPI_MakeFillet::GetBounds(const Standard_Integer IC, |
300 | const TopoDS_Edge& E, |
301 | Standard_Real& F, |
302 | Standard_Real& L) |
303 | { |
304 | return myBuilder.GetBounds(IC,E,F,L); |
305 | } |
306 | |
307 | |
308 | //======================================================================= |
309 | //function : GetLaw |
310 | //purpose : |
311 | //======================================================================= |
312 | |
313 | Handle(Law_Function) BRepFilletAPI_MakeFillet::GetLaw(const Standard_Integer IC, |
314 | const TopoDS_Edge& E) |
315 | { |
316 | return myBuilder.GetLaw(IC,E); |
317 | } |
318 | |
319 | |
320 | //======================================================================= |
321 | //function : SetLaw |
322 | //purpose : |
323 | //======================================================================= |
324 | |
325 | void BRepFilletAPI_MakeFillet::SetLaw(const Standard_Integer IC, |
326 | const TopoDS_Edge& E, |
327 | const Handle(Law_Function)& L) |
328 | { |
329 | myBuilder.SetLaw(IC,E, L); |
330 | } |
331 | |
332 | |
333 | //======================================================================= |
334 | //function : SetRadius |
335 | //purpose : |
336 | //======================================================================= |
337 | |
338 | void BRepFilletAPI_MakeFillet::SetRadius(const Standard_Real Radius, |
339 | const Standard_Integer IC, |
340 | const TopoDS_Vertex& V) |
341 | { |
342 | myBuilder.SetRadius(Radius,IC,V); |
343 | } |
344 | |
345 | //======================================================================= |
346 | //function : SetFilletShape |
347 | //purpose : |
348 | //======================================================================= |
349 | |
350 | void BRepFilletAPI_MakeFillet::SetFilletShape(const ChFi3d_FilletShape FShape) |
351 | { |
352 | myBuilder.SetFilletShape(FShape); |
353 | } |
354 | |
355 | |
356 | //======================================================================= |
357 | //function : GetFilletShape |
358 | //purpose : |
359 | //======================================================================= |
360 | |
361 | ChFi3d_FilletShape BRepFilletAPI_MakeFillet::GetFilletShape() const |
362 | { |
363 | return myBuilder.GetFilletShape(); |
364 | } |
365 | |
366 | |
367 | //======================================================================= |
368 | //function : NbContours |
369 | //purpose : |
370 | //======================================================================= |
371 | |
372 | Standard_Integer BRepFilletAPI_MakeFillet::NbContours()const |
373 | { |
374 | return myBuilder.NbElements(); |
375 | } |
376 | |
377 | |
378 | //======================================================================= |
379 | //function : Contour |
380 | //purpose : |
381 | //======================================================================= |
382 | |
383 | Standard_Integer BRepFilletAPI_MakeFillet::Contour(const TopoDS_Edge& E)const |
384 | { |
385 | return myBuilder.Contains(E); |
386 | } |
387 | |
388 | |
389 | //======================================================================= |
390 | //function : NbEdges |
391 | //purpose : |
392 | //======================================================================= |
393 | |
394 | Standard_Integer BRepFilletAPI_MakeFillet::NbEdges(const Standard_Integer I)const |
395 | { |
396 | const Handle(ChFiDS_Spine)& Spine = myBuilder.Value(I); |
397 | Standard_Integer n = Spine->NbEdges(); |
398 | return n; |
399 | } |
400 | |
401 | //======================================================================= |
402 | //function : Edge |
403 | //purpose : |
404 | //======================================================================= |
405 | |
406 | const TopoDS_Edge& BRepFilletAPI_MakeFillet::Edge(const Standard_Integer I, |
407 | const Standard_Integer J)const |
408 | { |
409 | const Handle(ChFiDS_Spine)& Spine = myBuilder.Value(I); |
410 | const TopoDS_Edge& S = Spine->Edges(J); |
411 | return S; |
412 | } |
413 | |
414 | |
415 | //======================================================================= |
416 | //function : Remove |
417 | //purpose : |
418 | //======================================================================= |
419 | |
420 | void BRepFilletAPI_MakeFillet::Remove(const TopoDS_Edge& E) |
421 | { |
422 | myBuilder.Remove(E); |
423 | } |
424 | |
425 | |
426 | //======================================================================= |
427 | //function : Length |
428 | //purpose : |
429 | //======================================================================= |
430 | |
431 | Standard_Real BRepFilletAPI_MakeFillet::Length(const Standard_Integer IC)const |
432 | { |
433 | return myBuilder.Length(IC); |
434 | } |
435 | |
436 | |
437 | //======================================================================= |
438 | //function : FirstVertex |
439 | //purpose : |
440 | //======================================================================= |
441 | |
442 | TopoDS_Vertex BRepFilletAPI_MakeFillet::FirstVertex(const Standard_Integer IC)const |
443 | { |
444 | return myBuilder.FirstVertex(IC); |
445 | } |
446 | |
447 | |
448 | //======================================================================= |
449 | //function : LastVertex |
450 | //purpose : |
451 | //======================================================================= |
452 | |
453 | TopoDS_Vertex BRepFilletAPI_MakeFillet::LastVertex(const Standard_Integer IC)const |
454 | { |
455 | return myBuilder.LastVertex(IC); |
456 | } |
457 | |
458 | |
459 | //======================================================================= |
460 | //function : Abscissa |
461 | //purpose : |
462 | //======================================================================= |
463 | |
464 | Standard_Real BRepFilletAPI_MakeFillet::Abscissa(const Standard_Integer IC, |
465 | const TopoDS_Vertex& V)const |
466 | { |
467 | return myBuilder.Abscissa(IC,V); |
468 | } |
469 | |
470 | |
471 | //======================================================================= |
472 | //function : RelativeAbscissa |
473 | //purpose : |
474 | //======================================================================= |
475 | |
476 | Standard_Real BRepFilletAPI_MakeFillet::RelativeAbscissa(const Standard_Integer IC, |
477 | const TopoDS_Vertex& V)const |
478 | { |
479 | return myBuilder.RelativeAbscissa(IC,V); |
480 | } |
481 | |
482 | |
483 | //======================================================================= |
484 | //function : ClosedAndTangent |
485 | //purpose : |
486 | //======================================================================= |
487 | |
488 | Standard_Boolean BRepFilletAPI_MakeFillet::ClosedAndTangent |
489 | (const Standard_Integer IC)const |
490 | { |
491 | return myBuilder.ClosedAndTangent(IC); |
492 | } |
493 | |
494 | |
495 | //======================================================================= |
496 | //function : Closed |
497 | //purpose : |
498 | //======================================================================= |
499 | |
500 | Standard_Boolean BRepFilletAPI_MakeFillet::Closed |
501 | (const Standard_Integer IC)const |
502 | { |
503 | return myBuilder.Closed(IC); |
504 | } |
505 | |
506 | |
507 | //======================================================================= |
508 | //function : Builder |
509 | //purpose : |
510 | //======================================================================= |
511 | |
512 | Handle(TopOpeBRepBuild_HBuilder) BRepFilletAPI_MakeFillet::Builder()const |
513 | { |
514 | return myBuilder.Builder(); |
515 | } |
516 | |
517 | |
518 | //======================================================================= |
519 | //function : Build |
520 | //purpose : |
521 | //======================================================================= |
522 | |
523 | void BRepFilletAPI_MakeFillet::Build() |
524 | { |
525 | myBuilder.Compute(); |
526 | if(myBuilder.IsDone()) { |
527 | Done(); |
528 | myShape = myBuilder.Shape(); |
529 | |
530 | // creation of the Map. |
531 | TopExp_Explorer ex; |
532 | for (ex.Init(myShape, TopAbs_FACE); ex.More(); ex.Next()) { |
533 | myMap.Add(ex.Current()); |
534 | } |
535 | } |
536 | } |
537 | |
538 | |
539 | //======================================================================= |
540 | //function : Reset |
541 | //purpose : |
542 | //======================================================================= |
543 | |
544 | void BRepFilletAPI_MakeFillet::Reset() |
545 | { |
546 | NotDone(); |
547 | myBuilder.Reset(); |
548 | myMap.Clear(); |
549 | } |
550 | |
551 | //======================================================================= |
552 | //function : NbSurfaces |
553 | //purpose : |
554 | //======================================================================= |
555 | |
556 | Standard_Integer BRepFilletAPI_MakeFillet::NbSurfaces() const |
557 | { |
558 | return (myBuilder.Builder()->DataStructure())->NbSurfaces(); |
559 | } |
560 | |
561 | //======================================================================= |
562 | //function : NewFaces |
563 | //purpose : |
564 | //======================================================================= |
565 | |
566 | const TopTools_ListOfShape& BRepFilletAPI_MakeFillet::NewFaces |
567 | (const Standard_Integer I) |
568 | { |
569 | return (*(TopTools_ListOfShape*)&(myBuilder.Builder()->NewFaces(I))); |
570 | } |
571 | |
572 | //======================================================================= |
573 | //function : Simulate |
574 | //purpose : |
575 | //======================================================================= |
576 | |
577 | void BRepFilletAPI_MakeFillet::Simulate(const Standard_Integer IC) |
578 | { |
579 | myBuilder.Simulate(IC); |
580 | } |
581 | |
582 | |
583 | //======================================================================= |
584 | //function : NbSurf |
585 | //purpose : |
586 | //======================================================================= |
587 | |
588 | Standard_Integer BRepFilletAPI_MakeFillet::NbSurf(const Standard_Integer IC)const |
589 | { |
590 | return myBuilder.NbSurf(IC); |
591 | } |
592 | |
593 | //======================================================================= |
594 | //function : Sect |
595 | //purpose : |
596 | //======================================================================= |
597 | |
598 | Handle(ChFiDS_SecHArray1) BRepFilletAPI_MakeFillet::Sect(const Standard_Integer IC, |
599 | const Standard_Integer IS)const |
600 | { |
601 | return myBuilder.Sect(IC, IS); |
602 | } |
603 | |
604 | //======================================================================= |
605 | //function : Generated |
606 | //purpose : |
607 | //======================================================================= |
608 | |
609 | const TopTools_ListOfShape& BRepFilletAPI_MakeFillet::Generated |
610 | (const TopoDS_Shape& EorV) |
611 | { |
612 | return myBuilder.Generated(EorV); |
613 | } |
614 | |
615 | //======================================================================= |
616 | //function : Modified |
617 | //purpose : |
618 | //======================================================================= |
619 | |
620 | const TopTools_ListOfShape& BRepFilletAPI_MakeFillet::Modified |
621 | (const TopoDS_Shape& F) |
622 | { |
623 | myGenerated.Clear(); |
624 | |
625 | if (myBuilder.Builder()->IsSplit(F, TopAbs_OUT)) { |
626 | TopTools_ListIteratorOfListOfShape It(myBuilder.Builder()->Splits(F, TopAbs_OUT)); |
627 | for(;It.More();It.Next()) { |
628 | myGenerated.Append(It.Value()); |
629 | } |
630 | } |
631 | if (myBuilder.Builder()->IsSplit(F, TopAbs_IN)) { |
632 | TopTools_ListIteratorOfListOfShape It(myBuilder.Builder()->Splits(F, TopAbs_IN)); |
633 | for(;It.More();It.Next()) { |
634 | myGenerated.Append(It.Value()); |
635 | } |
636 | } |
637 | if (myBuilder.Builder()->IsSplit(F, TopAbs_ON)) { |
638 | TopTools_ListIteratorOfListOfShape It(myBuilder.Builder()->Splits(F, TopAbs_ON)); |
639 | for(;It.More();It.Next()) { |
640 | myGenerated.Append(It.Value()); |
641 | } |
642 | } |
643 | return myGenerated; |
644 | } |
645 | |
646 | //======================================================================= |
647 | //function : IsDeleted |
648 | //purpose : |
649 | //======================================================================= |
650 | |
651 | Standard_Boolean BRepFilletAPI_MakeFillet::IsDeleted(const TopoDS_Shape& F) |
652 | { |
653 | if (myMap.Contains(F) || |
654 | myBuilder.Builder()->IsSplit (F, TopAbs_OUT) || |
655 | myBuilder.Builder()->IsSplit (F, TopAbs_IN) || |
656 | myBuilder.Builder()->IsSplit (F, TopAbs_ON)) |
657 | return Standard_False; |
658 | |
659 | return Standard_True; |
660 | } |
661 | |
662 | //======================================================================= |
663 | //function : NbFaultyContours |
664 | //purpose : |
665 | //======================================================================= |
666 | |
667 | Standard_Integer BRepFilletAPI_MakeFillet::NbFaultyContours() const |
668 | { |
669 | return myBuilder.NbFaultyContours(); |
670 | } |
671 | //======================================================================= |
672 | //function : FaultyContour |
673 | //purpose : |
674 | //======================================================================= |
675 | |
676 | Standard_Integer BRepFilletAPI_MakeFillet::FaultyContour(const Standard_Integer I) const |
677 | { |
678 | return myBuilder.FaultyContour(I); |
679 | } |
680 | |
681 | //======================================================================= |
682 | //function : NbComputedSurfaces |
683 | //purpose : |
684 | //======================================================================= |
685 | |
686 | Standard_Integer BRepFilletAPI_MakeFillet::NbComputedSurfaces(const Standard_Integer IC) const |
687 | { |
688 | return myBuilder.NbComputedSurfaces (IC); |
689 | } |
690 | |
691 | //======================================================================= |
692 | //function : ComputedSurface |
693 | //purpose : |
694 | //======================================================================= |
695 | |
696 | Handle(Geom_Surface) BRepFilletAPI_MakeFillet::ComputedSurface(const Standard_Integer IC, |
697 | const Standard_Integer IS) const |
698 | { |
699 | return myBuilder.ComputedSurface(IC,IS); |
700 | } |
701 | |
702 | //======================================================================= |
703 | //function : NbFaultyVertices |
704 | //purpose : |
705 | //======================================================================= |
706 | |
707 | Standard_Integer BRepFilletAPI_MakeFillet::NbFaultyVertices() const |
708 | { |
709 | return myBuilder.NbFaultyVertices(); |
710 | } |
711 | |
712 | //======================================================================= |
713 | //function : FaultyVertex |
714 | //purpose : |
715 | //======================================================================= |
716 | |
717 | TopoDS_Vertex BRepFilletAPI_MakeFillet::FaultyVertex(const Standard_Integer IV) const |
718 | { |
719 | return myBuilder.FaultyVertex(IV); |
720 | } |
721 | |
722 | //======================================================================= |
723 | //function : HasResult |
724 | //purpose : |
725 | //======================================================================= |
726 | |
727 | Standard_Boolean BRepFilletAPI_MakeFillet::HasResult() const |
728 | { |
729 | return myBuilder.HasResult(); |
730 | } |
731 | |
732 | //======================================================================= |
733 | //function : BadShape |
734 | //purpose : |
735 | //======================================================================= |
736 | |
737 | TopoDS_Shape BRepFilletAPI_MakeFillet::BadShape()const |
738 | { |
739 | return myBuilder.BadShape(); |
740 | } |
741 | |
742 | //======================================================================= |
743 | //function : StripeStatus |
744 | //purpose : |
745 | //======================================================================= |
746 | |
747 | ChFiDS_ErrorStatus BRepFilletAPI_MakeFillet::StripeStatus(const Standard_Integer IC)const |
748 | { |
749 | return myBuilder.StripeStatus(IC); |
750 | } |
751 | |
752 | |
753 | |