00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef HEXAHEDRON_HPP
00021 #define HEXAHEDRON_HPP
00022
00033 #include <Cell.hpp>
00034 #include <Quadrangle.hpp>
00035
00036 class Hexahedron
00037 : public Cell
00038 {
00039 public:
00040 enum {
00041 NumberOfVertices = 8,
00042 NumberOfFaces = 6,
00043 NumberOfEdges = 12
00044 };
00045
00046 typedef Quadrangle FaceType;
00047
00048 static const size_t faces[NumberOfFaces][FaceType::NumberOfVertices];
00049 static const size_t edges[NumberOfEdges][Edge::NumberOfVertices];
00050
00051 virtual Cell::Type type() const
00052 {
00053 return Cell::hexahedron;
00054 }
00055
00057 size_t numberOfVertices() const
00058 {
00059 return NumberOfVertices;
00060 }
00061
00063 size_t numberOfEdges() const
00064 {
00065 return NumberOfEdges;
00066 }
00067
00069 inline const Hexahedron& operator=(const Hexahedron& H)
00070 {
00071 Cell::operator=(H);
00072 return *this;
00073 }
00074
00076 Hexahedron()
00077 : Cell(Hexahedron::NumberOfVertices)
00078 {
00079 ;
00080 }
00081
00082 Hexahedron(Vertex& x0,
00083 Vertex& x1,
00084 Vertex& x2,
00085 Vertex& x3,
00086 Vertex& x4,
00087 Vertex& x5,
00088 Vertex& x6,
00089 Vertex& x7,
00090 const size_t& ref = 0);
00091
00092 ~Hexahedron()
00093 {
00094 ;
00095 }
00096 };
00097
00098 #endif // HEXAHEDRON_HPP
00099