0024098: Exception Standard_OutOfMemory raised during topological operation.
[occt.git] / src / BOPDS / BOPDS_Tools.lxx
1 // Created by: Peter KURNEV
2 // Copyright (c) 1999-2012 OPEN CASCADE SAS
3 //
4 // The content of this file is subject to the Open CASCADE Technology Public
5 // License Version 6.5 (the "License"). You may not use the content of this file
6 // except in compliance with the License. Please obtain a copy of the License
7 // at http://www.opencascade.org and read it completely before using this file.
8 //
9 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
11 //
12 // The Original Code and all software distributed under the License is
13 // distributed on an "AS IS" basis, without warranty of any kind, and the
14 // Initial Developer hereby disclaims all such warranties, including without
15 // limitation, any warranties of merchantability, fitness for a particular
16 // purpose or non-infringement. Please see the License for the specific terms
17 // and conditions governing the rights and limitations under the License.
18
19 //=======================================================================
20 // function: HasBRep
21 // purpose: 
22 //=======================================================================
23 inline Standard_Boolean BOPDS_Tools::HasBRep(const TopAbs_ShapeEnum aTi)
24 {
25   return (aTi==TopAbs_VERTEX || aTi==TopAbs_EDGE || aTi==TopAbs_FACE);
26 }//=======================================================================
27 //function : TypeToInteger
28 //purpose  : 
29 //=======================================================================
30 inline Standard_Integer BOPDS_Tools::TypeToInteger(const TopAbs_ShapeEnum aType1,
31                                                    const TopAbs_ShapeEnum aType2)
32 {
33   Standard_Integer iRet, iT1, iT2, iX;
34   //
35   iRet=-1;
36   iT1=BOPDS_Tools::TypeToInteger(aType1);
37   iT2=BOPDS_Tools::TypeToInteger(aType2);
38   //
39   iX=iT2*10+iT1;
40   switch (iX) {
41     case 77:
42       iRet=0; // VV
43       break;
44     case 76:
45     case 67:
46       iRet=1; // VE
47       break;
48     case 66:
49       iRet=2; // EE
50       break;
51     case 74:
52     case 47:
53       iRet=3; // VF
54       break;
55     case 64:
56     case 46:
57       iRet=4; // EF
58       break;
59     case 44:
60       iRet=5; // FF
61       break;
62     default:
63       break;
64   }
65   return iRet; 
66 }
67 //=======================================================================
68 //function : TypeToInteger
69 //purpose  : 
70 //=======================================================================
71 inline Standard_Integer BOPDS_Tools::TypeToInteger(const TopAbs_ShapeEnum aType1)
72 {
73   Standard_Integer iRet=9;
74   //
75   switch(aType1) {
76     case TopAbs_COMPOUND:
77       iRet=0;
78       break;
79     case TopAbs_COMPSOLID:
80       iRet=1;
81       break;
82     case TopAbs_SOLID:
83       iRet=2;
84       break;
85     case TopAbs_SHELL:
86       iRet=3;
87       break;
88     case TopAbs_FACE:
89       iRet=4;
90       break;
91     case TopAbs_WIRE:
92       iRet=5;
93       break;
94     case TopAbs_EDGE:
95       iRet=6;
96       break;
97     case TopAbs_VERTEX:
98       iRet=7;
99       break;
100     case TopAbs_SHAPE:
101       iRet=8;
102       break;
103     default:
104       break;
105     }
106   return iRet;
107
108 }