b311480e |
1 | // Created on: 1994-03-18 |
2 | // Created by: Jean Yves LEBEY |
3 | // Copyright (c) 1994-1999 Matra Datavision |
973c2be1 |
4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | // |
973c2be1 |
6 | // This file is part of Open CASCADE Technology software library. |
b311480e |
7 | // |
d5f74e42 |
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 |
973c2be1 |
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. |
b311480e |
13 | // |
973c2be1 |
14 | // Alternatively, this file may be used under the terms of Open CASCADE |
15 | // commercial license or contractual agreement. |
7fd59977 |
16 | |
42cf5bc1 |
17 | |
7fd59977 |
18 | #include <Standard_ProgramError.hxx> |
42cf5bc1 |
19 | #include <TCollection_AsciiString.hxx> |
20 | #include <TopOpeBRepDS.hxx> |
21 | #include <TopOpeBRepDS_define.hxx> |
7fd59977 |
22 | |
23 | //======================================================================= |
24 | //function : Print the name of a State |
25 | //======================================================================= |
26 | TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_State S) |
27 | { |
28 | TCollection_AsciiString s; |
29 | switch (S) { |
30 | case TopAbs_IN : s = s + "IN"; break; |
31 | case TopAbs_OUT : s = s + "OU"; break; |
32 | case TopAbs_ON : s = s + "ON"; break; |
33 | case TopAbs_UNKNOWN : s = s + "UN"; break; |
34 | } |
35 | return s; |
36 | } |
37 | |
38 | Standard_OStream& TopOpeBRepDS::Print(const TopAbs_State S,Standard_OStream& OS) |
39 | { OS<<TopOpeBRepDS::SPrint(S); return OS; } |
40 | |
41 | //======================================================================= |
42 | //purpose : print the name of a Kind |
43 | //======================================================================= |
44 | TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Kind k) |
45 | { |
46 | TCollection_AsciiString s; |
47 | switch(k) { |
48 | case TopOpeBRepDS_POINT : s = s + "PO"; break; |
49 | case TopOpeBRepDS_CURVE : s = s + "CU"; break; |
50 | case TopOpeBRepDS_SURFACE : s = s + "SU"; break; |
51 | case TopOpeBRepDS_VERTEX : s = s + "VE"; break; |
52 | case TopOpeBRepDS_EDGE : s = s + "ED"; break; |
53 | case TopOpeBRepDS_WIRE : s = s + "WI"; break; |
54 | case TopOpeBRepDS_FACE : s = s + "FA"; break; |
55 | case TopOpeBRepDS_SHELL : s = s + "SH"; break; |
56 | case TopOpeBRepDS_SOLID : s = s + "SO"; break; |
57 | case TopOpeBRepDS_COMPSOLID : s = s + "CS"; break; |
58 | case TopOpeBRepDS_COMPOUND : s = s + "CO"; break; |
59 | default: |
60 | break ; |
61 | } |
62 | return s; |
63 | } |
64 | TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Kind k,const Standard_Integer i,const TCollection_AsciiString& S1,const TCollection_AsciiString& S2) |
65 | { |
66 | TCollection_AsciiString si = ""; if (i >= 0 && i <= 9) si = " "; |
67 | TCollection_AsciiString s = S1 + "(" + TopOpeBRepDS::SPrint(k) + "," + si + TCollection_AsciiString(i) + ")" + S2; |
68 | return s; |
69 | } |
70 | |
71 | Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Kind k,Standard_OStream& OS) |
72 | { OS<<TopOpeBRepDS::SPrint(k); return OS; } |
73 | Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Kind k,const Standard_Integer i,Standard_OStream& OS,const TCollection_AsciiString& S1,const TCollection_AsciiString& S2) |
74 | { OS<<TopOpeBRepDS::SPrint(k,i,S1,S2); OS.flush();return OS; } |
75 | |
76 | //======================================================================= |
77 | //purpose : print the name of a ShapeEnum |
78 | //======================================================================= |
79 | TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_ShapeEnum t) |
80 | { return TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t)); } |
81 | TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_ShapeEnum t,const Standard_Integer i) |
82 | { return TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t),i); } |
83 | |
84 | Standard_OStream& TopOpeBRepDS::Print(const TopAbs_ShapeEnum t,const Standard_Integer i,Standard_OStream& s) |
85 | { s<<TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t),i); return s; } |
86 | |
87 | //======================================================================= |
88 | //purpose : print the name of a Orientation |
89 | //======================================================================= |
90 | TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_Orientation o) |
91 | { |
d2e60688 |
92 | return TopAbs::ShapeOrientationToString (o); |
7fd59977 |
93 | } |
94 | |
95 | //======================================================================= |
96 | //purpose : print the name of a Config |
97 | //======================================================================= |
98 | TCollection_AsciiString TopOpeBRepDS::SPrint(const TopOpeBRepDS_Config C) |
99 | { |
100 | TCollection_AsciiString SS; |
101 | switch (C) { |
102 | case TopOpeBRepDS_UNSHGEOMETRY : SS = "UNSH"; break; |
103 | case TopOpeBRepDS_SAMEORIENTED : SS = "SAME"; break; |
104 | case TopOpeBRepDS_DIFFORIENTED : SS = "DIFF"; break; |
105 | } |
106 | return SS; |
107 | } |
108 | |
109 | Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Config C,Standard_OStream& OS) |
110 | { OS<<TopOpeBRepDS::SPrint(C); return OS; } |
111 | |
112 | //======================================================================= |
113 | //function : IsTopology |
114 | //purpose : |
115 | //======================================================================= |
116 | |
117 | Standard_Boolean TopOpeBRepDS::IsTopology(const TopOpeBRepDS_Kind k) |
118 | { |
119 | switch (k) { |
120 | case TopOpeBRepDS_COMPOUND : return Standard_True; break; |
121 | case TopOpeBRepDS_COMPSOLID : return Standard_True; break; |
122 | case TopOpeBRepDS_SOLID : return Standard_True; break; |
123 | case TopOpeBRepDS_SHELL : return Standard_True; break; |
124 | case TopOpeBRepDS_FACE : return Standard_True; break; |
125 | case TopOpeBRepDS_WIRE : return Standard_True; break; |
126 | case TopOpeBRepDS_EDGE : return Standard_True; break; |
127 | case TopOpeBRepDS_VERTEX : return Standard_True; break; |
128 | default : return Standard_False; |
129 | } |
7fd59977 |
130 | } |
131 | |
132 | //======================================================================= |
133 | //function : IsGeometry |
134 | //purpose : |
135 | //======================================================================= |
136 | |
137 | Standard_Boolean TopOpeBRepDS::IsGeometry(const TopOpeBRepDS_Kind k) |
138 | { |
139 | switch (k) { |
140 | case TopOpeBRepDS_SURFACE : return Standard_True; break; |
141 | case TopOpeBRepDS_CURVE : return Standard_True; break; |
142 | case TopOpeBRepDS_POINT : return Standard_True; break; |
143 | default: |
144 | break ; |
145 | } |
146 | return Standard_False; |
147 | } |
148 | |
149 | //======================================================================= |
150 | //function : ShapeToKind |
151 | //purpose : |
152 | //======================================================================= |
153 | |
154 | TopOpeBRepDS_Kind TopOpeBRepDS::ShapeToKind(const TopAbs_ShapeEnum S) |
155 | { |
156 | TopOpeBRepDS_Kind res = TopOpeBRepDS_SOLID; // bidon |
157 | switch (S) { |
158 | case TopAbs_VERTEX : res = TopOpeBRepDS_VERTEX; break; |
159 | case TopAbs_EDGE : res = TopOpeBRepDS_EDGE; break; |
160 | case TopAbs_WIRE : res = TopOpeBRepDS_WIRE; break; |
161 | case TopAbs_FACE : res = TopOpeBRepDS_FACE; break; |
162 | case TopAbs_SHELL : res = TopOpeBRepDS_SHELL; break; |
163 | case TopAbs_SOLID : res = TopOpeBRepDS_SOLID; break; |
164 | case TopAbs_COMPSOLID : res = TopOpeBRepDS_COMPSOLID; break; |
165 | case TopAbs_COMPOUND : res = TopOpeBRepDS_COMPOUND; break; |
9775fa61 |
166 | default : throw Standard_ProgramError("TopOpeBRepDS::ShapeToKind"); |
7fd59977 |
167 | } |
168 | return res; |
169 | } |
170 | |
171 | //======================================================================= |
172 | //function : KindToShape |
173 | //purpose : |
174 | //======================================================================= |
175 | |
176 | TopAbs_ShapeEnum TopOpeBRepDS::KindToShape(const TopOpeBRepDS_Kind K) |
177 | { |
178 | TopAbs_ShapeEnum res = TopAbs_SHAPE; // bidon |
179 | if ( ! TopOpeBRepDS::IsTopology(K) ) return res; |
180 | |
181 | switch (K) { |
182 | case TopOpeBRepDS_VERTEX : res = TopAbs_VERTEX; break; |
183 | case TopOpeBRepDS_EDGE : res = TopAbs_EDGE; break; |
184 | case TopOpeBRepDS_WIRE : res = TopAbs_WIRE; break; |
185 | case TopOpeBRepDS_FACE : res = TopAbs_FACE; break; |
186 | case TopOpeBRepDS_SHELL : res = TopAbs_SHELL; break; |
187 | case TopOpeBRepDS_SOLID : res = TopAbs_SOLID; break; |
188 | case TopOpeBRepDS_COMPSOLID : res = TopAbs_COMPSOLID; break; |
189 | case TopOpeBRepDS_COMPOUND : res = TopAbs_COMPOUND; break; |
9775fa61 |
190 | default : throw Standard_ProgramError("TopOpeBRepDS::KindToShape"); |
7fd59977 |
191 | } |
192 | return res; |
193 | } |