0027067: Avoid use of virtual methods for implementation of destructors in legacy...
[occt.git] / src / TopOpeBRepBuild / TopOpeBRepBuild_ShellFaceSet.cxx
1 // Created on: 1993-06-17
2 // Created by: Jean Yves LEBEY
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
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
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.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifdef DRAW
18 #include <DBRep.hxx>
19 #include <TestTopOpeDraw_TTOT.hxx>
20 static TCollection_AsciiString PRODINS("dins ");
21 #endif
22
23
24 #include <TCollection_AsciiString.hxx>
25 #include <TopoDS.hxx>
26 #include <TopoDS_Shape.hxx>
27 #include <TopoDS_Solid.hxx>
28 #include <TopOpeBRepBuild_Builder.hxx>
29 #include <TopOpeBRepBuild_define.hxx>
30 #include <TopOpeBRepBuild_ShellFaceSet.hxx>
31
32 #ifdef OCCT_DEBUG
33 extern Standard_Boolean TopOpeBRepBuild_GettraceCHK();
34 #endif
35
36 //=======================================================================
37 //function : TopOpeBRepBuild_ShellFaceSet
38 //purpose  : 
39 //=======================================================================
40
41 TopOpeBRepBuild_ShellFaceSet::TopOpeBRepBuild_ShellFaceSet() :
42 TopOpeBRepBuild_ShapeSet(TopAbs_EDGE)
43 {
44 #ifdef OCCT_DEBUG
45   myDEBName = "SFS";
46 #endif
47 }
48
49 //=======================================================================
50 //function : TopOpeBRepBuild_ShellFaceSet
51 //purpose  : 
52 //=======================================================================
53
54 TopOpeBRepBuild_ShellFaceSet::TopOpeBRepBuild_ShellFaceSet
55 #ifdef OCCT_DEBUG
56 (const TopoDS_Shape& S,const Standard_Address A) : // DEB
57 #else
58 (const TopoDS_Shape& S,const Standard_Address) : // DEB
59 #endif
60 TopOpeBRepBuild_ShapeSet(TopAbs_EDGE)
61 {
62   mySolid = TopoDS::Solid(S);
63
64 #ifdef OCCT_DEBUG
65   myDEBName = "SFS";
66   if (A != NULL) {
67     TopOpeBRepBuild_Builder* pB = ((TopOpeBRepBuild_Builder*)((void*)A));
68     myDEBNumber = pB->GdumpSHASETindex();
69     Standard_Integer iS; Standard_Boolean tSPS = pB->GtraceSPS(S,iS);
70     if(tSPS){cout<<"creation SFS "<<myDEBNumber<<" on ";}
71     if(tSPS){pB->GdumpSHA(S,NULL);cout<<endl;}
72   }
73
74   if (TopOpeBRepBuild_GettraceCHK() && !myCheckShape) {
75     DumpName(cout,"no checkshape in creation of ");cout<<endl;
76   }
77 #endif
78 }
79
80 //=======================================================================
81 //function : AddShape
82 //purpose  : 
83 //=======================================================================
84 void TopOpeBRepBuild_ShellFaceSet::AddShape(const TopoDS_Shape& S)
85 {
86   TopOpeBRepBuild_ShapeSet::AddShape(S);
87 }
88
89 //=======================================================================
90 //function : AddStartElement
91 //purpose  : 
92 //=======================================================================
93 void TopOpeBRepBuild_ShellFaceSet::AddStartElement(const TopoDS_Shape& S)
94 {
95   TopOpeBRepBuild_ShapeSet::ProcessAddStartElement(S);
96 }
97
98 //=======================================================================
99 //function : AddElement
100 //purpose  : 
101 //=======================================================================
102 void TopOpeBRepBuild_ShellFaceSet::AddElement(const TopoDS_Shape& S)
103 {
104   TopOpeBRepBuild_ShapeSet::AddElement(S);
105 }
106
107 //=======================================================================
108 //function : Solid
109 //purpose  : 
110 //=======================================================================
111
112 const TopoDS_Solid& TopOpeBRepBuild_ShellFaceSet::Solid() const 
113 {
114   return mySolid;
115 }
116
117 //=======================================================================
118 //function : DumpSS
119 //purpose  : 
120 //=======================================================================
121
122 void TopOpeBRepBuild_ShellFaceSet::DumpSS()
123 {
124 #ifdef OCCT_DEBUG
125   TopOpeBRepBuild_ShapeSet::DumpSS();
126 #endif
127 }
128
129 //=======================================================================
130 //function : SName
131 //purpose  : 
132 //=======================================================================
133 #ifdef DRAW
134 TCollection_AsciiString TopOpeBRepBuild_ShellFaceSet::SName(const TopoDS_Shape& S,
135                                                             const TCollection_AsciiString& sb,
136                                                             const TCollection_AsciiString& sa) const
137 {
138   TCollection_AsciiString str=sb;
139
140   str=str+TopOpeBRepBuild_ShapeSet::SName(S);
141   str=str+sa;
142   DBRep::Set(str.ToCString(),S);
143
144   return str;
145 }
146 #else
147 TCollection_AsciiString TopOpeBRepBuild_ShellFaceSet::SName(const TopoDS_Shape&,
148                                                             const TCollection_AsciiString& sb,
149                                                             const TCollection_AsciiString&) const
150 {
151   TCollection_AsciiString str=sb;
152   return str;
153 }
154 #endif
155
156 //=======================================================================
157 //function : SNameori
158 //purpose  : 
159 //=======================================================================
160 #ifdef DRAW
161 TCollection_AsciiString TopOpeBRepBuild_ShellFaceSet::SNameori(const TopoDS_Shape& S,
162                                                                const TCollection_AsciiString& sb,
163                                                                const TCollection_AsciiString& sa) const
164 #else
165 TCollection_AsciiString TopOpeBRepBuild_ShellFaceSet::SNameori(const TopoDS_Shape&,
166                                                                const TCollection_AsciiString& sb,
167                                                                const TCollection_AsciiString&) const
168 #endif
169 {
170   TCollection_AsciiString str=sb;
171 #ifdef DRAW
172   str=str+TopOpeBRepBuild_ShapeSet::SNameori(S);
173   if ( S.ShapeType() == TopAbs_FACE ) {
174     const TopoDS_Shape& F = TopoDS::Face(S);
175     DBRep::Set(str.ToCString(),S);
176   }
177 #endif
178   return str;
179 }
180
181 //=======================================================================
182 //function : SName
183 //purpose  : 
184 //=======================================================================
185 #ifdef DRAW
186 TCollection_AsciiString TopOpeBRepBuild_ShellFaceSet::SName(const TopTools_ListOfShape& L,
187                                                             const TCollection_AsciiString& sb,
188                                                             const TCollection_AsciiString& sa) const
189 {
190   TCollection_AsciiString str;
191
192   for (TopTools_ListIteratorOfListOfShape it(L);it.More();it.Next()) str=str+sb+SName(it.Value())+sa+" ";
193
194   return str;
195 }
196 #else
197 TCollection_AsciiString TopOpeBRepBuild_ShellFaceSet::SName(const TopTools_ListOfShape&,
198                                                             const TCollection_AsciiString&,
199                                                             const TCollection_AsciiString&) const
200 {
201   TCollection_AsciiString str;
202   return str;
203 }
204 #endif
205
206 //=======================================================================
207 //function : SNameori
208 //purpose  : 
209 //=======================================================================
210 TCollection_AsciiString TopOpeBRepBuild_ShellFaceSet::SNameori(const TopTools_ListOfShape& /*L*/,
211                                                                const TCollection_AsciiString& /*sb*/,
212                                                                const TCollection_AsciiString& /*sa*/) const
213 {
214   TCollection_AsciiString str;
215 #ifdef DRAW
216   for (TopTools_ListIteratorOfListOfShape it(L);it.More();it.Next()) str=str+sb+SNameori(it.Value())+sa+" ";
217 #endif
218   return str;
219 }