1 // Created on: 1994-03-18
2 // Created by: Jean Yves LEBEY
3 // Copyright (c) 1994-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
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.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
17 #include <TopOpeBRepDS.ixx>
18 #include <TopOpeBRepDS_define.hxx>
19 #include <Standard_ProgramError.hxx>
21 //=======================================================================
22 //function : Print the name of a State
23 //=======================================================================
24 TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_State S)
26 TCollection_AsciiString s;
28 case TopAbs_IN : s = s + "IN"; break;
29 case TopAbs_OUT : s = s + "OU"; break;
30 case TopAbs_ON : s = s + "ON"; break;
31 case TopAbs_UNKNOWN : s = s + "UN"; break;
36 Standard_OStream& TopOpeBRepDS::Print(const TopAbs_State S,Standard_OStream& OS)
37 { OS<<TopOpeBRepDS::SPrint(S); return OS; }
39 //=======================================================================
40 //purpose : print the name of a Kind
41 //=======================================================================
42 TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Kind k)
44 TCollection_AsciiString s;
46 case TopOpeBRepDS_POINT : s = s + "PO"; break;
47 case TopOpeBRepDS_CURVE : s = s + "CU"; break;
48 case TopOpeBRepDS_SURFACE : s = s + "SU"; break;
49 case TopOpeBRepDS_VERTEX : s = s + "VE"; break;
50 case TopOpeBRepDS_EDGE : s = s + "ED"; break;
51 case TopOpeBRepDS_WIRE : s = s + "WI"; break;
52 case TopOpeBRepDS_FACE : s = s + "FA"; break;
53 case TopOpeBRepDS_SHELL : s = s + "SH"; break;
54 case TopOpeBRepDS_SOLID : s = s + "SO"; break;
55 case TopOpeBRepDS_COMPSOLID : s = s + "CS"; break;
56 case TopOpeBRepDS_COMPOUND : s = s + "CO"; break;
62 TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Kind k,const Standard_Integer i,const TCollection_AsciiString& S1,const TCollection_AsciiString& S2)
64 TCollection_AsciiString si = ""; if (i >= 0 && i <= 9) si = " ";
65 TCollection_AsciiString s = S1 + "(" + TopOpeBRepDS::SPrint(k) + "," + si + TCollection_AsciiString(i) + ")" + S2;
69 Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Kind k,Standard_OStream& OS)
70 { OS<<TopOpeBRepDS::SPrint(k); return OS; }
71 Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Kind k,const Standard_Integer i,Standard_OStream& OS,const TCollection_AsciiString& S1,const TCollection_AsciiString& S2)
72 { OS<<TopOpeBRepDS::SPrint(k,i,S1,S2); OS.flush();return OS; }
74 //=======================================================================
75 //purpose : print the name of a ShapeEnum
76 //=======================================================================
77 TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_ShapeEnum t)
78 { return TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t)); }
79 TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_ShapeEnum t,const Standard_Integer i)
80 { return TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t),i); }
82 Standard_OStream& TopOpeBRepDS::Print(const TopAbs_ShapeEnum t,const Standard_Integer i,Standard_OStream& s)
83 { s<<TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t),i); return s; }
85 //=======================================================================
86 //purpose : print the name of a Orientation
87 //=======================================================================
88 TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_Orientation o)
90 TCollection_AsciiString SS;
92 case TopAbs_FORWARD : SS = "FORWARD" ; break;
93 case TopAbs_REVERSED : SS = "REVERSED"; break;
94 case TopAbs_INTERNAL : SS = "INTERNAL"; break;
95 case TopAbs_EXTERNAL : SS = "EXTERNAL"; break;
100 //=======================================================================
101 //purpose : print the name of a Config
102 //=======================================================================
103 TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Config C)
105 TCollection_AsciiString SS;
107 case TopOpeBRepDS_UNSHGEOMETRY : SS = "UNSH"; break;
108 case TopOpeBRepDS_SAMEORIENTED : SS = "SAME"; break;
109 case TopOpeBRepDS_DIFFORIENTED : SS = "DIFF"; break;
114 Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Config C,Standard_OStream& OS)
115 { OS<<TopOpeBRepDS::SPrint(C); return OS; }
117 //=======================================================================
118 //function : IsTopology
120 //=======================================================================
122 Standard_Boolean TopOpeBRepDS::IsTopology(const TopOpeBRepDS_Kind k)
125 case TopOpeBRepDS_COMPOUND : return Standard_True; break;
126 case TopOpeBRepDS_COMPSOLID : return Standard_True; break;
127 case TopOpeBRepDS_SOLID : return Standard_True; break;
128 case TopOpeBRepDS_SHELL : return Standard_True; break;
129 case TopOpeBRepDS_FACE : return Standard_True; break;
130 case TopOpeBRepDS_WIRE : return Standard_True; break;
131 case TopOpeBRepDS_EDGE : return Standard_True; break;
132 case TopOpeBRepDS_VERTEX : return Standard_True; break;
133 default : return Standard_False;
137 //=======================================================================
138 //function : IsGeometry
140 //=======================================================================
142 Standard_Boolean TopOpeBRepDS::IsGeometry(const TopOpeBRepDS_Kind k)
145 case TopOpeBRepDS_SURFACE : return Standard_True; break;
146 case TopOpeBRepDS_CURVE : return Standard_True; break;
147 case TopOpeBRepDS_POINT : return Standard_True; break;
151 return Standard_False;
154 //=======================================================================
155 //function : ShapeToKind
157 //=======================================================================
159 TopOpeBRepDS_Kind TopOpeBRepDS::ShapeToKind(const TopAbs_ShapeEnum S)
161 TopOpeBRepDS_Kind res = TopOpeBRepDS_SOLID; // bidon
163 case TopAbs_VERTEX : res = TopOpeBRepDS_VERTEX; break;
164 case TopAbs_EDGE : res = TopOpeBRepDS_EDGE; break;
165 case TopAbs_WIRE : res = TopOpeBRepDS_WIRE; break;
166 case TopAbs_FACE : res = TopOpeBRepDS_FACE; break;
167 case TopAbs_SHELL : res = TopOpeBRepDS_SHELL; break;
168 case TopAbs_SOLID : res = TopOpeBRepDS_SOLID; break;
169 case TopAbs_COMPSOLID : res = TopOpeBRepDS_COMPSOLID; break;
170 case TopAbs_COMPOUND : res = TopOpeBRepDS_COMPOUND; break;
171 default : Standard_ProgramError::Raise("TopOpeBRepDS::ShapeToKind");
176 //=======================================================================
177 //function : KindToShape
179 //=======================================================================
181 TopAbs_ShapeEnum TopOpeBRepDS::KindToShape(const TopOpeBRepDS_Kind K)
183 TopAbs_ShapeEnum res = TopAbs_SHAPE; // bidon
184 if ( ! TopOpeBRepDS::IsTopology(K) ) return res;
187 case TopOpeBRepDS_VERTEX : res = TopAbs_VERTEX; break;
188 case TopOpeBRepDS_EDGE : res = TopAbs_EDGE; break;
189 case TopOpeBRepDS_WIRE : res = TopAbs_WIRE; break;
190 case TopOpeBRepDS_FACE : res = TopAbs_FACE; break;
191 case TopOpeBRepDS_SHELL : res = TopAbs_SHELL; break;
192 case TopOpeBRepDS_SOLID : res = TopAbs_SOLID; break;
193 case TopOpeBRepDS_COMPSOLID : res = TopAbs_COMPSOLID; break;
194 case TopOpeBRepDS_COMPOUND : res = TopAbs_COMPOUND; break;
195 default : Standard_ProgramError::Raise("TopOpeBRepDS::KindToShape");