Non Indexed Hexahedron mesh IJK abstract interface. More...
#include <MeshVizXLM/mesh/MiVolumeMeshVertexHexahedronIjk.h>
Public Member Functions | |
virtual const MiGeometryHexahedronIjk & | getGeometry () const =0 |
Protected Member Functions | |
virtual std::ostream & | toStream (std::ostream &s) const |
This interface defines a structured mesh as a 3D grid of hexahedrons. Each hexahedron is defined by 8 explicit coordinates. This mesh type does not use indexed vertices, so the topology of the mesh is just the I, J and K dimensions of the 3D grid (see MiTopologyIjk).
The geometry of this mesh explicitly defines the 8 vertices for each hexahedron (i,j,k) where i,j,k are indices of the hexahedron in the grid. As each hexahedron is defined by its own 8 vertices, this type of mesh is useful to define "faults" as in a petroleum reservoir model. For instance if the top vertices of the hexahedron (i,j,k) are not equal to the bottom vertices of the hexahedron (i,j,k+1), a fault exists between these 2 cells.
This type of mesh is similar to an MiVolumeMeshCurvilinear except that the geometry explicitly defines every vertex of every cell. If all hexahedrons in a MiVolumeMeshVertexHexahedronIjk mesh share their vertices with their adjacent cells, then a MiVolumeMeshCurvilinear is more appropriate and is more efficient.
This type of mesh is also similar to MiVolumeMeshHexahedronIjk, but each hexahedron is defined by 8 coordinates instead of 8 indices.
As no vertex indices are defined, this type of mesh can handle only PER_CELL data sets (see MiDataSet::getBinding()). Extractors will throw an std::exception if trying to use a PER_NODE binding on data sets.
virtual const MiGeometryHexahedronIjk& MiVolumeMeshVertexHexahedronIjk::getGeometry | ( | ) | const [pure virtual] |
Returns the structured geometry of this mesh.
virtual std::ostream& MiVolumeMeshVertexHexahedronIjk::toStream | ( | std::ostream & | s | ) | const [inline, protected, virtual] |
Performs an output operation on a stream which is returned afterward. This method is protected since only called by the output operator <<. This method is not pure virtual and output by default the geometry and topology of a mesh. Whenever a different output is needed, this method can be implemented in the subclass to get a different output format. No std::ostream& operator << needs to be defined in any subclass. This allows you to benefit from the virtual inheritance when using the output operator on an abstract class.
Reimplemented from MiMeshIjk.