973c2be1 |
1 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
2 | // |
973c2be1 |
3 | // This file is part of Open CASCADE Technology software library. |
b311480e |
4 | // |
d5f74e42 |
5 | // This library is free software; you can redistribute it and/or modify it under |
6 | // the terms of the GNU Lesser General Public License version 2.1 as published |
973c2be1 |
7 | // by the Free Software Foundation, with special exception defined in the file |
8 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
9 | // distribution for complete text of the license and disclaimer of any warranty. |
b311480e |
10 | // |
973c2be1 |
11 | // Alternatively, this file may be used under the terms of Open CASCADE |
12 | // commercial license or contractual agreement. |
b311480e |
13 | |
7fd59977 |
14 | |
15 | #include <IGESBasic_AssocGroupType.hxx> |
42cf5bc1 |
16 | #include <IGESBasic_ExternalReferenceFile.hxx> |
7fd59977 |
17 | #include <IGESBasic_ExternalRefFile.hxx> |
18 | #include <IGESBasic_ExternalRefFileIndex.hxx> |
19 | #include <IGESBasic_ExternalRefFileName.hxx> |
20 | #include <IGESBasic_ExternalRefLibName.hxx> |
21 | #include <IGESBasic_ExternalRefName.hxx> |
42cf5bc1 |
22 | #include <IGESBasic_GeneralModule.hxx> |
7fd59977 |
23 | #include <IGESBasic_Group.hxx> |
24 | #include <IGESBasic_GroupWithoutBackP.hxx> |
25 | #include <IGESBasic_Hierarchy.hxx> |
26 | #include <IGESBasic_Name.hxx> |
27 | #include <IGESBasic_OrderedGroup.hxx> |
28 | #include <IGESBasic_OrderedGroupWithoutBackP.hxx> |
29 | #include <IGESBasic_SingleParent.hxx> |
30 | #include <IGESBasic_SingularSubfigure.hxx> |
31 | #include <IGESBasic_SubfigureDef.hxx> |
7fd59977 |
32 | #include <IGESBasic_ToolAssocGroupType.hxx> |
42cf5bc1 |
33 | #include <IGESBasic_ToolExternalReferenceFile.hxx> |
7fd59977 |
34 | #include <IGESBasic_ToolExternalRefFile.hxx> |
35 | #include <IGESBasic_ToolExternalRefFileIndex.hxx> |
36 | #include <IGESBasic_ToolExternalRefFileName.hxx> |
37 | #include <IGESBasic_ToolExternalRefLibName.hxx> |
38 | #include <IGESBasic_ToolExternalRefName.hxx> |
7fd59977 |
39 | #include <IGESBasic_ToolGroup.hxx> |
40 | #include <IGESBasic_ToolGroupWithoutBackP.hxx> |
41 | #include <IGESBasic_ToolHierarchy.hxx> |
42 | #include <IGESBasic_ToolName.hxx> |
43 | #include <IGESBasic_ToolOrderedGroup.hxx> |
44 | #include <IGESBasic_ToolOrderedGroupWithoutBackP.hxx> |
45 | #include <IGESBasic_ToolSingleParent.hxx> |
46 | #include <IGESBasic_ToolSingularSubfigure.hxx> |
47 | #include <IGESBasic_ToolSubfigureDef.hxx> |
42cf5bc1 |
48 | #include <IGESData_DirChecker.hxx> |
49 | #include <IGESData_IGESEntity.hxx> |
50 | #include <Interface_Category.hxx> |
51 | #include <Interface_Check.hxx> |
52 | #include <Interface_CopyTool.hxx> |
53 | #include <Interface_EntityIterator.hxx> |
54 | #include <Interface_Macros.hxx> |
55 | #include <Interface_ShareTool.hxx> |
56 | #include <Standard_Transient.hxx> |
57 | #include <Standard_Type.hxx> |
7fd59977 |
58 | |
92efcf78 |
59 | IMPLEMENT_STANDARD_RTTIEXT(IGESBasic_GeneralModule,IGESData_GeneralModule) |
60 | |
7fd59977 |
61 | // Each Module is attached to a Protocol : it must interprete Case Numbers |
62 | // (arguments <CN> of various methods) in accordance to values returned by |
63 | // the method TypeNumber from this Protocol |
b311480e |
64 | IGESBasic_GeneralModule::IGESBasic_GeneralModule () { } |
7fd59977 |
65 | |
66 | |
67 | void IGESBasic_GeneralModule::OwnSharedCase |
68 | (const Standard_Integer CN, const Handle(IGESData_IGESEntity)& ent, |
69 | Interface_EntityIterator& iter) const |
70 | { |
71 | switch (CN) { |
72 | case 1 : { |
73 | DeclareAndCast(IGESBasic_AssocGroupType,anent,ent); |
74 | if (anent.IsNull()) return; |
75 | IGESBasic_ToolAssocGroupType tool; |
76 | tool.OwnShared(anent,iter); |
77 | } |
78 | break; |
79 | case 2 : { |
80 | DeclareAndCast(IGESBasic_ExternalRefFile,anent,ent); |
81 | if (anent.IsNull()) return; |
82 | IGESBasic_ToolExternalRefFile tool; |
83 | tool.OwnShared(anent,iter); |
84 | } |
85 | break; |
86 | case 3 : { |
87 | DeclareAndCast(IGESBasic_ExternalRefFileIndex,anent,ent); |
88 | if (anent.IsNull()) return; |
89 | IGESBasic_ToolExternalRefFileIndex tool; |
90 | tool.OwnShared(anent,iter); |
91 | } |
92 | break; |
93 | case 4 : { |
94 | DeclareAndCast(IGESBasic_ExternalRefFileName,anent,ent); |
95 | if (anent.IsNull()) return; |
96 | IGESBasic_ToolExternalRefFileName tool; |
97 | tool.OwnShared(anent,iter); |
98 | } |
99 | break; |
100 | case 5 : { |
101 | DeclareAndCast(IGESBasic_ExternalRefLibName,anent,ent); |
102 | if (anent.IsNull()) return; |
103 | IGESBasic_ToolExternalRefLibName tool; |
104 | tool.OwnShared(anent,iter); |
105 | } |
106 | break; |
107 | case 6 : { |
108 | DeclareAndCast(IGESBasic_ExternalRefName,anent,ent); |
109 | if (anent.IsNull()) return; |
110 | IGESBasic_ToolExternalRefName tool; |
111 | tool.OwnShared(anent,iter); |
112 | } |
113 | break; |
114 | case 7 : { |
115 | DeclareAndCast(IGESBasic_ExternalReferenceFile,anent,ent); |
116 | if (anent.IsNull()) return; |
117 | IGESBasic_ToolExternalReferenceFile tool; |
118 | tool.OwnShared(anent,iter); |
119 | } |
120 | break; |
121 | case 8 : { |
122 | DeclareAndCast(IGESBasic_Group,anent,ent); |
123 | if (anent.IsNull()) return; |
124 | IGESBasic_ToolGroup tool; |
125 | tool.OwnShared(anent,iter); |
126 | } |
127 | break; |
128 | case 9 : { |
129 | DeclareAndCast(IGESBasic_GroupWithoutBackP,anent,ent); |
130 | if (anent.IsNull()) return; |
131 | IGESBasic_ToolGroupWithoutBackP tool; |
132 | tool.OwnShared(anent,iter); |
133 | } |
134 | break; |
135 | case 10 : { |
136 | DeclareAndCast(IGESBasic_Hierarchy,anent,ent); |
137 | if (anent.IsNull()) return; |
138 | IGESBasic_ToolHierarchy tool; |
139 | tool.OwnShared(anent,iter); |
140 | } |
141 | break; |
142 | case 11 : { |
143 | DeclareAndCast(IGESBasic_Name,anent,ent); |
144 | if (anent.IsNull()) return; |
145 | IGESBasic_ToolName tool; |
146 | tool.OwnShared(anent,iter); |
147 | } |
148 | break; |
149 | case 12 : { |
150 | DeclareAndCast(IGESBasic_OrderedGroup,anent,ent); |
151 | if (anent.IsNull()) return; |
152 | IGESBasic_ToolOrderedGroup tool; |
153 | tool.OwnShared(anent,iter); |
154 | } |
155 | break; |
156 | case 13 : { |
157 | DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,anent,ent); |
158 | if (anent.IsNull()) return; |
159 | IGESBasic_ToolOrderedGroupWithoutBackP tool; |
160 | tool.OwnShared(anent,iter); |
161 | } |
162 | break; |
163 | case 14 : { |
164 | DeclareAndCast(IGESBasic_SingleParent,anent,ent); |
165 | if (anent.IsNull()) return; |
166 | IGESBasic_ToolSingleParent tool; |
167 | tool.OwnShared(anent,iter); |
168 | } |
169 | break; |
170 | case 15 : { |
171 | DeclareAndCast(IGESBasic_SingularSubfigure,anent,ent); |
172 | if (anent.IsNull()) return; |
173 | IGESBasic_ToolSingularSubfigure tool; |
174 | tool.OwnShared(anent,iter); |
175 | } |
176 | break; |
177 | case 16 : { |
178 | DeclareAndCast(IGESBasic_SubfigureDef,anent,ent); |
179 | if (anent.IsNull()) return; |
180 | IGESBasic_ToolSubfigureDef tool; |
181 | tool.OwnShared(anent,iter); |
182 | } |
183 | break; |
184 | default : break; |
185 | } |
186 | } |
187 | |
188 | |
189 | IGESData_DirChecker IGESBasic_GeneralModule::DirChecker |
190 | (const Standard_Integer CN, const Handle(IGESData_IGESEntity)& ent) const |
191 | { |
192 | switch (CN) { |
193 | case 1 : { |
194 | DeclareAndCast(IGESBasic_AssocGroupType,anent,ent); |
195 | if (anent.IsNull()) break; |
196 | IGESBasic_ToolAssocGroupType tool; |
197 | return tool.DirChecker(anent); |
198 | } |
199 | case 2 : { |
200 | DeclareAndCast(IGESBasic_ExternalRefFile,anent,ent); |
201 | if (anent.IsNull()) break; |
202 | IGESBasic_ToolExternalRefFile tool; |
203 | return tool.DirChecker(anent); |
204 | } |
205 | case 3 : { |
206 | DeclareAndCast(IGESBasic_ExternalRefFileIndex,anent,ent); |
207 | if (anent.IsNull()) break; |
208 | IGESBasic_ToolExternalRefFileIndex tool; |
209 | return tool.DirChecker(anent); |
210 | } |
211 | case 4 : { |
212 | DeclareAndCast(IGESBasic_ExternalRefFileName,anent,ent); |
213 | if (anent.IsNull()) break; |
214 | IGESBasic_ToolExternalRefFileName tool; |
215 | return tool.DirChecker(anent); |
216 | } |
217 | case 5 : { |
218 | DeclareAndCast(IGESBasic_ExternalRefLibName,anent,ent); |
219 | if (anent.IsNull()) break; |
220 | IGESBasic_ToolExternalRefLibName tool; |
221 | return tool.DirChecker(anent); |
222 | } |
223 | case 6 : { |
224 | DeclareAndCast(IGESBasic_ExternalRefName,anent,ent); |
225 | if (anent.IsNull()) break; |
226 | IGESBasic_ToolExternalRefName tool; |
227 | return tool.DirChecker(anent); |
228 | } |
229 | case 7 : { |
230 | DeclareAndCast(IGESBasic_ExternalReferenceFile,anent,ent); |
231 | if (anent.IsNull()) break; |
232 | IGESBasic_ToolExternalReferenceFile tool; |
233 | return tool.DirChecker(anent); |
234 | } |
235 | case 8 : { |
236 | DeclareAndCast(IGESBasic_Group,anent,ent); |
237 | if (anent.IsNull()) break; |
238 | IGESBasic_ToolGroup tool; |
239 | return tool.DirChecker(anent); |
240 | } |
241 | case 9 : { |
242 | DeclareAndCast(IGESBasic_GroupWithoutBackP,anent,ent); |
243 | if (anent.IsNull()) break; |
244 | IGESBasic_ToolGroupWithoutBackP tool; |
245 | return tool.DirChecker(anent); |
246 | } |
247 | case 10 : { |
248 | DeclareAndCast(IGESBasic_Hierarchy,anent,ent); |
249 | if (anent.IsNull()) break; |
250 | IGESBasic_ToolHierarchy tool; |
251 | return tool.DirChecker(anent); |
252 | } |
253 | case 11 : { |
254 | DeclareAndCast(IGESBasic_Name,anent,ent); |
255 | if (anent.IsNull()) break; |
256 | IGESBasic_ToolName tool; |
257 | return tool.DirChecker(anent); |
258 | } |
259 | case 12 : { |
260 | DeclareAndCast(IGESBasic_OrderedGroup,anent,ent); |
261 | if (anent.IsNull()) break; |
262 | IGESBasic_ToolOrderedGroup tool; |
263 | return tool.DirChecker(anent); |
264 | } |
265 | case 13 : { |
266 | DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,anent,ent); |
267 | if (anent.IsNull()) break; |
268 | IGESBasic_ToolOrderedGroupWithoutBackP tool; |
269 | return tool.DirChecker(anent); |
270 | } |
271 | case 14 : { |
272 | DeclareAndCast(IGESBasic_SingleParent,anent,ent); |
273 | if (anent.IsNull()) break; |
274 | IGESBasic_ToolSingleParent tool; |
275 | return tool.DirChecker(anent); |
276 | } |
277 | case 15 : { |
278 | DeclareAndCast(IGESBasic_SingularSubfigure,anent,ent); |
279 | if (anent.IsNull()) break; |
280 | IGESBasic_ToolSingularSubfigure tool; |
281 | return tool.DirChecker(anent); |
282 | } |
283 | case 16 : { |
284 | DeclareAndCast(IGESBasic_SubfigureDef,anent,ent); |
285 | if (anent.IsNull()) break; |
286 | IGESBasic_ToolSubfigureDef tool; |
287 | return tool.DirChecker(anent); |
288 | } |
289 | default : break; |
290 | } |
291 | return IGESData_DirChecker(); // by default, no specific criterium |
292 | } |
293 | |
294 | |
295 | void IGESBasic_GeneralModule::OwnCheckCase |
296 | (const Standard_Integer CN, const Handle(IGESData_IGESEntity)& ent, |
297 | const Interface_ShareTool& shares, Handle(Interface_Check)& ach) const |
298 | { |
299 | switch (CN) { |
300 | case 1 : { |
301 | DeclareAndCast(IGESBasic_AssocGroupType,anent,ent); |
302 | if (anent.IsNull()) return; |
303 | IGESBasic_ToolAssocGroupType tool; |
304 | tool.OwnCheck(anent,shares,ach); |
305 | } |
306 | break; |
307 | case 2 : { |
308 | DeclareAndCast(IGESBasic_ExternalRefFile,anent,ent); |
309 | if (anent.IsNull()) return; |
310 | IGESBasic_ToolExternalRefFile tool; |
311 | tool.OwnCheck(anent,shares,ach); |
312 | } |
313 | break; |
314 | case 3 : { |
315 | DeclareAndCast(IGESBasic_ExternalRefFileIndex,anent,ent); |
316 | if (anent.IsNull()) return; |
317 | IGESBasic_ToolExternalRefFileIndex tool; |
318 | tool.OwnCheck(anent,shares,ach); |
319 | } |
320 | break; |
321 | case 4 : { |
322 | DeclareAndCast(IGESBasic_ExternalRefFileName,anent,ent); |
323 | if (anent.IsNull()) return; |
324 | IGESBasic_ToolExternalRefFileName tool; |
325 | tool.OwnCheck(anent,shares,ach); |
326 | } |
327 | break; |
328 | case 5 : { |
329 | DeclareAndCast(IGESBasic_ExternalRefLibName,anent,ent); |
330 | if (anent.IsNull()) return; |
331 | IGESBasic_ToolExternalRefLibName tool; |
332 | tool.OwnCheck(anent,shares,ach); |
333 | } |
334 | break; |
335 | case 6 : { |
336 | DeclareAndCast(IGESBasic_ExternalRefName,anent,ent); |
337 | if (anent.IsNull()) return; |
338 | IGESBasic_ToolExternalRefName tool; |
339 | tool.OwnCheck(anent,shares,ach); |
340 | } |
341 | break; |
342 | case 7 : { |
343 | DeclareAndCast(IGESBasic_ExternalReferenceFile,anent,ent); |
344 | if (anent.IsNull()) return; |
345 | IGESBasic_ToolExternalReferenceFile tool; |
346 | tool.OwnCheck(anent,shares,ach); |
347 | } |
348 | break; |
349 | case 8 : { |
350 | DeclareAndCast(IGESBasic_Group,anent,ent); |
351 | if (anent.IsNull()) return; |
352 | IGESBasic_ToolGroup tool; |
353 | tool.OwnCheck(anent,shares,ach); |
354 | } |
355 | break; |
356 | case 9 : { |
357 | DeclareAndCast(IGESBasic_GroupWithoutBackP,anent,ent); |
358 | if (anent.IsNull()) return; |
359 | IGESBasic_ToolGroupWithoutBackP tool; |
360 | tool.OwnCheck(anent,shares,ach); |
361 | } |
362 | break; |
363 | case 10 : { |
364 | DeclareAndCast(IGESBasic_Hierarchy,anent,ent); |
365 | if (anent.IsNull()) return; |
366 | IGESBasic_ToolHierarchy tool; |
367 | tool.OwnCheck(anent,shares,ach); |
368 | } |
369 | break; |
370 | case 11 : { |
371 | DeclareAndCast(IGESBasic_Name,anent,ent); |
372 | if (anent.IsNull()) return; |
373 | IGESBasic_ToolName tool; |
374 | tool.OwnCheck(anent,shares,ach); |
375 | } |
376 | break; |
377 | case 12 : { |
378 | DeclareAndCast(IGESBasic_OrderedGroup,anent,ent); |
379 | if (anent.IsNull()) return; |
380 | IGESBasic_ToolOrderedGroup tool; |
381 | tool.OwnCheck(anent,shares,ach); |
382 | } |
383 | break; |
384 | case 13 : { |
385 | DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,anent,ent); |
386 | if (anent.IsNull()) return; |
387 | IGESBasic_ToolOrderedGroupWithoutBackP tool; |
388 | tool.OwnCheck(anent,shares,ach); |
389 | } |
390 | break; |
391 | case 14 : { |
392 | DeclareAndCast(IGESBasic_SingleParent,anent,ent); |
393 | if (anent.IsNull()) return; |
394 | IGESBasic_ToolSingleParent tool; |
395 | tool.OwnCheck(anent,shares,ach); |
396 | } |
397 | break; |
398 | case 15 : { |
399 | DeclareAndCast(IGESBasic_SingularSubfigure,anent,ent); |
400 | if (anent.IsNull()) return; |
401 | IGESBasic_ToolSingularSubfigure tool; |
402 | tool.OwnCheck(anent,shares,ach); |
403 | } |
404 | break; |
405 | case 16 : { |
406 | DeclareAndCast(IGESBasic_SubfigureDef,anent,ent); |
407 | if (anent.IsNull()) return; |
408 | IGESBasic_ToolSubfigureDef tool; |
409 | tool.OwnCheck(anent,shares,ach); |
410 | } |
411 | break; |
412 | default : break; |
413 | } |
414 | } |
415 | |
416 | |
417 | Standard_Boolean IGESBasic_GeneralModule::NewVoid |
418 | (const Standard_Integer CN, Handle(Standard_Transient)& ent) const |
419 | { |
420 | switch (CN) { |
421 | case 1 : ent = new IGESBasic_AssocGroupType; break; |
422 | case 2 : ent = new IGESBasic_ExternalRefFile; break; |
423 | case 3 : ent = new IGESBasic_ExternalRefFileIndex; break; |
424 | case 4 : ent = new IGESBasic_ExternalRefFileName; break; |
425 | case 5 : ent = new IGESBasic_ExternalRefLibName; break; |
426 | case 6 : ent = new IGESBasic_ExternalRefName; break; |
427 | case 7 : ent = new IGESBasic_ExternalReferenceFile; break; |
428 | case 8 : ent = new IGESBasic_Group; break; |
429 | case 9 : ent = new IGESBasic_GroupWithoutBackP; break; |
430 | case 10 : ent = new IGESBasic_Hierarchy; break; |
431 | case 11 : ent = new IGESBasic_Name; break; |
432 | case 12 : ent = new IGESBasic_OrderedGroup; break; |
433 | case 13 : ent = new IGESBasic_OrderedGroupWithoutBackP; break; |
434 | case 14 : ent = new IGESBasic_SingleParent; break; |
435 | case 15 : ent = new IGESBasic_SingularSubfigure; break; |
436 | case 16 : ent = new IGESBasic_SubfigureDef; break; |
437 | default : return Standard_False; // by default, Failure on Recognize |
438 | } |
439 | return Standard_True; |
440 | } |
441 | |
442 | |
443 | void IGESBasic_GeneralModule::OwnCopyCase |
444 | (const Standard_Integer CN, |
445 | const Handle(IGESData_IGESEntity)& entfrom, |
446 | const Handle(IGESData_IGESEntity)& entto, |
447 | Interface_CopyTool& TC) const |
448 | { |
449 | switch (CN) { |
450 | case 1 : { |
451 | DeclareAndCast(IGESBasic_AssocGroupType,enfr,entfrom); |
452 | DeclareAndCast(IGESBasic_AssocGroupType,ento,entto); |
453 | IGESBasic_ToolAssocGroupType tool; |
454 | tool.OwnCopy(enfr,ento,TC); |
455 | } |
456 | break; |
457 | case 2 : { |
458 | DeclareAndCast(IGESBasic_ExternalRefFile,enfr,entfrom); |
459 | DeclareAndCast(IGESBasic_ExternalRefFile,ento,entto); |
460 | IGESBasic_ToolExternalRefFile tool; |
461 | tool.OwnCopy(enfr,ento,TC); |
462 | } |
463 | break; |
464 | case 3 : { |
465 | DeclareAndCast(IGESBasic_ExternalRefFileIndex,enfr,entfrom); |
466 | DeclareAndCast(IGESBasic_ExternalRefFileIndex,ento,entto); |
467 | IGESBasic_ToolExternalRefFileIndex tool; |
468 | tool.OwnCopy(enfr,ento,TC); |
469 | } |
470 | break; |
471 | case 4 : { |
472 | DeclareAndCast(IGESBasic_ExternalRefFileName,enfr,entfrom); |
473 | DeclareAndCast(IGESBasic_ExternalRefFileName,ento,entto); |
474 | IGESBasic_ToolExternalRefFileName tool; |
475 | tool.OwnCopy(enfr,ento,TC); |
476 | } |
477 | break; |
478 | case 5 : { |
479 | DeclareAndCast(IGESBasic_ExternalRefLibName,enfr,entfrom); |
480 | DeclareAndCast(IGESBasic_ExternalRefLibName,ento,entto); |
481 | IGESBasic_ToolExternalRefLibName tool; |
482 | tool.OwnCopy(enfr,ento,TC); |
483 | } |
484 | break; |
485 | case 6 : { |
486 | DeclareAndCast(IGESBasic_ExternalRefName,enfr,entfrom); |
487 | DeclareAndCast(IGESBasic_ExternalRefName,ento,entto); |
488 | IGESBasic_ToolExternalRefName tool; |
489 | tool.OwnCopy(enfr,ento,TC); |
490 | } |
491 | break; |
492 | case 7 : { |
493 | DeclareAndCast(IGESBasic_ExternalReferenceFile,enfr,entfrom); |
494 | DeclareAndCast(IGESBasic_ExternalReferenceFile,ento,entto); |
495 | IGESBasic_ToolExternalReferenceFile tool; |
496 | tool.OwnCopy(enfr,ento,TC); |
497 | } |
498 | break; |
499 | case 8 : { |
500 | DeclareAndCast(IGESBasic_Group,enfr,entfrom); |
501 | DeclareAndCast(IGESBasic_Group,ento,entto); |
502 | IGESBasic_ToolGroup tool; |
503 | tool.OwnCopy(enfr,ento,TC); |
504 | } |
505 | break; |
506 | case 9 : { |
507 | DeclareAndCast(IGESBasic_GroupWithoutBackP,enfr,entfrom); |
508 | DeclareAndCast(IGESBasic_GroupWithoutBackP,ento,entto); |
509 | IGESBasic_ToolGroupWithoutBackP tool; |
510 | tool.OwnCopy(enfr,ento,TC); |
511 | } |
512 | break; |
513 | case 10 : { |
514 | DeclareAndCast(IGESBasic_Hierarchy,enfr,entfrom); |
515 | DeclareAndCast(IGESBasic_Hierarchy,ento,entto); |
516 | IGESBasic_ToolHierarchy tool; |
517 | tool.OwnCopy(enfr,ento,TC); |
518 | } |
519 | break; |
520 | case 11 : { |
521 | DeclareAndCast(IGESBasic_Name,enfr,entfrom); |
522 | DeclareAndCast(IGESBasic_Name,ento,entto); |
523 | IGESBasic_ToolName tool; |
524 | tool.OwnCopy(enfr,ento,TC); |
525 | } |
526 | break; |
527 | case 12 : { |
528 | DeclareAndCast(IGESBasic_OrderedGroup,enfr,entfrom); |
529 | DeclareAndCast(IGESBasic_OrderedGroup,ento,entto); |
530 | IGESBasic_ToolOrderedGroup tool; |
531 | tool.OwnCopy(enfr,ento,TC); |
532 | } |
533 | break; |
534 | case 13 : { |
535 | DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,enfr,entfrom); |
536 | DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,ento,entto); |
537 | IGESBasic_ToolOrderedGroupWithoutBackP tool; |
538 | tool.OwnCopy(enfr,ento,TC); |
539 | } |
540 | break; |
541 | case 14 : { |
542 | DeclareAndCast(IGESBasic_SingleParent,enfr,entfrom); |
543 | DeclareAndCast(IGESBasic_SingleParent,ento,entto); |
544 | IGESBasic_ToolSingleParent tool; |
545 | tool.OwnCopy(enfr,ento,TC); |
546 | } |
547 | break; |
548 | case 15 : { |
549 | DeclareAndCast(IGESBasic_SingularSubfigure,enfr,entfrom); |
550 | DeclareAndCast(IGESBasic_SingularSubfigure,ento,entto); |
551 | IGESBasic_ToolSingularSubfigure tool; |
552 | tool.OwnCopy(enfr,ento,TC); |
553 | } |
554 | break; |
555 | case 16 : { |
556 | DeclareAndCast(IGESBasic_SubfigureDef,enfr,entfrom); |
557 | DeclareAndCast(IGESBasic_SubfigureDef,ento,entto); |
558 | IGESBasic_ToolSubfigureDef tool; |
559 | tool.OwnCopy(enfr,ento,TC); |
560 | } |
561 | break; |
562 | default : break; |
563 | } |
564 | } |
565 | |
566 | Standard_Integer IGESBasic_GeneralModule::CategoryNumber |
567 | (const Standard_Integer CN, const Handle(Standard_Transient)& , |
568 | const Interface_ShareTool& ) const |
569 | { |
570 | if (CN == 10 || CN == 11) return Interface_Category::Number("Auxiliary"); |
571 | if (CN >= 2 && CN <= 6) return Interface_Category::Number("Description"); |
572 | return Interface_Category::Number("Structure"); |
573 | } |