0031668: Visualization - WebGL sample doesn't work on Emscripten 1.39
[occt.git] / src / TopOpeBRepDS / TopOpeBRepDS.cxx
CommitLineData
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//=======================================================================
26TCollection_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
38Standard_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//=======================================================================
44TCollection_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}
64TCollection_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
71Standard_OStream& TopOpeBRepDS::Print(const TopOpeBRepDS_Kind k,Standard_OStream& OS)
72{ OS<<TopOpeBRepDS::SPrint(k); return OS; }
73Standard_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//=======================================================================
79TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_ShapeEnum t)
80{ return TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t)); }
81TCollection_AsciiString TopOpeBRepDS::SPrint(const TopAbs_ShapeEnum t,const Standard_Integer i)
82{ return TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(t),i); }
83
84Standard_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//=======================================================================
90TCollection_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//=======================================================================
98TCollection_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
109Standard_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
117Standard_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
137Standard_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
154TopOpeBRepDS_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
176TopAbs_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}