0022922: Clean up warnings on uninitialized / unused variables
[occt.git] / src / TopOpeBRepTool / TopOpeBRepTool_face.cxx
CommitLineData
7fd59977 1// File: TopOpeBRepTool_face.cxx
2// Created: Thu Jan 14 10:20:08 1999
3// Author: Prestataire Xuan PHAM PHU
4// <xpu@poulopox.paris1.matra-dtv.fr>
5
6
7#include <TopOpeBRepTool_face.ixx>
8#include <TopOpeBRepTool_define.hxx>
9#include <Standard_Failure.hxx>
10#include <TopoDS.hxx>
11#include <BRep_Tool.hxx>
12#include <Precision.hxx>
13#include <BRep_Builder.hxx>
14#include <TopoDS_Iterator.hxx>
15#include <BRepTopAdaptor_FClass2d.hxx>
16
17//=======================================================================
18//function : TopOpeBRepTool_face
19//purpose :
20//=======================================================================
21
22TopOpeBRepTool_face::TopOpeBRepTool_face()
23{
24}
25
26static void FUN_reverse(const TopoDS_Face& f, TopoDS_Face& frev)
27{
28 BRep_Builder B;
29 TopoDS_Shape aLocalShape = f.EmptyCopied();
30 frev = TopoDS::Face(aLocalShape);
31// frev = TopoDS::Face(f.EmptyCopied());
32 TopoDS_Iterator it(f);
33 while (it.More()) {
34 B.Add(frev,it.Value().Reversed());
35 it.Next();
36 }
37}
38
39//=======================================================================
40//function : Init
41//purpose :
42//=======================================================================
43
44Standard_Boolean TopOpeBRepTool_face::Init(const TopoDS_Wire& W, const TopoDS_Face& Fref)
45{
46 myFfinite.Nullify();
47 myW = W;
48
49 // fres :
50// TopoDS_Face fres;
51// Handle(Geom_Surface) su = BRep_Tool::Surface(Fref);
52// BRep_Builder B; B.MakeFace(fres,su,Precision::Confusion());
53 TopoDS_Shape aLocalShape = Fref.EmptyCopied();
54 TopoDS_Face fres = TopoDS::Face(aLocalShape);
55// TopoDS_Face fres = TopoDS::Face(Fref.EmptyCopied());
56 BRep_Builder B; B.Add(fres,W);
57 B.NaturalRestriction(fres,Standard_True);
58
59 // <myfinite> :
60 BRepTopAdaptor_FClass2d FClass(fres,0.);
61 Standard_Boolean infinite = ( FClass.PerformInfinitePoint() == TopAbs_IN);
62 myfinite = !infinite;
63
64 // <myFfinite> :
65 if (myfinite) myFfinite = fres;
66 else FUN_reverse(fres,myFfinite);
67 return Standard_True;
68}
69
70//=======================================================================
71//function : IsDone
72//purpose :
73//=======================================================================
74
75Standard_Boolean TopOpeBRepTool_face::IsDone() const
76{
77 return (!myFfinite.IsNull());
78}
79
80//=======================================================================
81//function : Finite
82//purpose :
83//=======================================================================
84
85Standard_Boolean TopOpeBRepTool_face::Finite() const
86{
87 if (!IsDone()) Standard_Failure::Raise("TopOpeBRepTool_face NOT DONE");
88 return myfinite;
89}
90
91//=======================================================================
92//function : Ffinite
93//purpose :
94//=======================================================================
95
96const TopoDS_Face& TopOpeBRepTool_face::Ffinite() const
97{
98 if (!IsDone()) Standard_Failure::Raise("TopOpeBRepTool_face NOT DONE");
99 return myFfinite;
100}
101
102//=======================================================================
103//function : W
104//purpose :
105//=======================================================================
106
107const TopoDS_Wire& TopOpeBRepTool_face::W() const
108{
109 return myW;
110}
111
112//=======================================================================
113//function : TopoDS_Face&
114//purpose :
115//=======================================================================
116
117TopoDS_Face TopOpeBRepTool_face::RealF() const
118{
119 if (myfinite) return myFfinite;
120 TopoDS_Face realf; FUN_reverse(myFfinite,realf);
121 return realf;
122}
123
124