Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
MiVolumeMeshVertexHexahedronIjk Class Referenceabstract

MeshViz Non Indexed Hexahedron mesh IJK abstract interface. More...

#include <MeshVizXLM/mesh/MiVolumeMeshVertexHexahedronIjk.h>

+ Inheritance diagram for MiVolumeMeshVertexHexahedronIjk:

Public Member Functions

virtual const MiGeometryHexahedronIjkgetGeometry () const =0
 Returns the structured geometry of this mesh.
 
- Public Member Functions inherited from MiMeshIjk
virtual const MiTopologyIjkgetTopology () 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...
 

Detailed Description

MeshViz 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.

Note
Limitation: This mesh interface is only supported by the MiSkinExtractIjk, MiPlaneSliceExtractIjk and MiIsosurfExtractIjk extractor classes and the MoMeshSkin, MoMeshSlab, MoMeshPlaneSlice and MoMeshIsosurface representation nodes.
See also
MiGeometryHexahedronIjk to define the geometry of this mesh.
MiTopologyIjk to define the topology of this mesh.
MiVolumeMeshHexahedronIjk for IJK meshes where hexahedrons are defined by indices.
MiVolumeMeshCurvilinear for IJK meshes where adjacent cells share the same points.

Definition at line 73 of file MiVolumeMeshVertexHexahedronIjk.h.

Member Function Documentation

◆ getGeometry()

virtual const MiGeometryHexahedronIjk & MiVolumeMeshVertexHexahedronIjk::getGeometry ( ) const
pure virtual

Returns the structured geometry of this mesh.

◆ toStream()

virtual std::ostream & MiVolumeMeshVertexHexahedronIjk::toStream ( std::ostream &  s) const
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.


The documentation for this class was generated from the following file: