0024098: Exception Standard_OutOfMemory raised during topological operation.
[occt.git] / src / BOPDS / BOPDS_Tools.lxx
CommitLineData
4e57c75e 1// Created by: Peter KURNEV
b311480e 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
7fd59977 19//=======================================================================
4e57c75e 20// function: HasBRep
21// purpose:
7fd59977 22//=======================================================================
72e88cf7 23inline Standard_Boolean BOPDS_Tools::HasBRep(const TopAbs_ShapeEnum aTi)
7fd59977 24{
4e57c75e 25 return (aTi==TopAbs_VERTEX || aTi==TopAbs_EDGE || aTi==TopAbs_FACE);
26}//=======================================================================
27//function : TypeToInteger
7fd59977 28//purpose :
29//=======================================================================
72e88cf7 30inline Standard_Integer BOPDS_Tools::TypeToInteger(const TopAbs_ShapeEnum aType1,
31 const TopAbs_ShapeEnum aType2)
7fd59977 32{
4e57c75e 33 Standard_Integer iRet, iT1, iT2, iX;
34 //
35 iRet=-1;
72e88cf7 36 iT1=BOPDS_Tools::TypeToInteger(aType1);
37 iT2=BOPDS_Tools::TypeToInteger(aType2);
4e57c75e 38 //
39 iX=iT2*10+iT1;
40 switch (iX) {
41 case 77:
c1fe53c6 42 iRet=0; // VV
4e57c75e 43 break;
44 case 76:
45 case 67:
c1fe53c6 46 iRet=1; // VE
47 break;
48 case 66:
49 iRet=2; // EE
4e57c75e 50 break;
51 case 74:
52 case 47:
c1fe53c6 53 iRet=3; // VF
4e57c75e 54 break;
55 case 64:
56 case 46:
c1fe53c6 57 iRet=4; // EF
4e57c75e 58 break;
59 case 44:
c1fe53c6 60 iRet=5; // FF
4e57c75e 61 break;
62 default:
63 break;
64 }
65 return iRet;
7fd59977 66}
72e88cf7 67//=======================================================================
68//function : TypeToInteger
69//purpose :
70//=======================================================================
71inline 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}