4 #ifndef DUNE_GRID_IO_FILE_VTK_COMMON_HH
5 #define DUNE_GRID_IO_FILE_VTK_COMMON_HH
11 #include <dune/common/deprecated.hh>
12 #include <dune/common/exceptions.hh>
13 #include <dune/geometry/type.hh>
14 #include <dune/common/typetraits.hh>
182 typedef SelectType<std::numeric_limits<char>::is_signed,
198 static std::string getString() {
199 static const unsigned int_sizes[] = { 8, 16, 32, 64, 0 };
200 static const unsigned float_sizes[] = { 32, 64, 0 };
201 const unsigned* sizes;
203 std::ostringstream s;
204 if(std::numeric_limits<T>::is_integer) {
205 if(std::numeric_limits<T>::is_signed)
217 static const unsigned size = 8*
sizeof(T);
218 while(*sizes != 0 && *sizes <= size) ++sizes;
231 static const std::string s = getString();
270 if (t.isVertex())
return vertex;
271 if (t.isLine())
return line;
272 if (t.isTriangle())
return triangle;
275 if (t.isPyramid())
return pyramid;
276 if (t.isPrism())
return prism;
279 DUNE_THROW(IOError,
"VTKWriter: unsupported GeometryType " << t);
299 static const int quadRenumbering[4] = {0,1,3,2};
300 static const int cubeRenumbering[8] = {0,1,3,2,4,5,7,6};
301 static const int prismRenumbering[6] = {0,2,1,3,5,4};
302 static const int pyramidRenumbering[5] = {0,1,3,2,4};
304 if (t.isQuadrilateral())
return quadRenumbering[i];
305 if (t.isPyramid())
return pyramidRenumbering[i];
306 if (t.isPrism())
return prismRenumbering[i];
307 if (t.isHexahedron())
return cubeRenumbering[i];
346 if (reinterpret_cast<char*>(&i)[1] == 1)
349 return "LittleEndian";
376 #endif // DUNE_GRID_IO_FILE_VTK_COMMON_HH