Non Indexed Hexahedron mesh IJK abstract interface. More...
#include <MeshVizXLM/mesh/MiVolumeMeshVertexHexahedronIjk.h>
Public Member Functions | |
virtual const MiGeometryHexahedronIjk & | getGeometry () const =0 |
Returns the structured geometry of this mesh. | |
Public Member Functions inherited from MiMeshIjk | |
virtual const MiTopologyIjk & | getTopology () const =0 |
Returns the topology of this mesh. | |
Public Member Functions inherited from MiMesh | |
virtual | ~MiMesh () |
Protected Member Functions | |
virtual std::ostream & | toStream (std::ostream &s) const |
Performs an output operation on a stream which is returned afterward. | |
Additional Inherited Members | |
Public Types inherited from MiMeshIjk | |
enum | StorageLayout { LAYOUT_IJK , LAYOUT_IKJ , LAYOUT_JKI , LAYOUT_JIK , LAYOUT_KJI , LAYOUT_KIJ , LAYOUT_UNKNOWN } |
Hint about data organization in memory. More... | |
Public Types inherited from MiMesh | |
enum | Dimension { DIMENSION_I = 0 , DIMENSION_J = 1 , DIMENSION_K = 2 } |
Defines the dimensions in a one, two, or three-dimensional array. More... | |
Non Indexed Hexahedron mesh IJK abstract interface.
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.
Definition at line 73 of file MiVolumeMeshVertexHexahedronIjk.h.
|
pure virtual |
Returns the structured geometry of this mesh.
|
inlineprotectedvirtual |
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.
Definition at line 85 of file MiVolumeMeshVertexHexahedronIjk.h.