MiVolumeMeshVertexHexahedronIjk Class Reference
[Mesh interfaces]

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

#include <MeshVizXLM/mesh/MiVolumeMeshVertexHexahedronIjk.h>

Inheritance diagram for MiVolumeMeshVertexHexahedronIjk:
MiMeshIjk MiMesh

List of all members.

Public Member Functions

virtual const
MiGeometryHexahedronIjk
getGeometry () const =0

Protected Member Functions

virtual std::ostream & toStream (std::ostream &s) const

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.
See related examples:

MyVolumeMeshVertexHexahedronIjk


Member Function Documentation

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.


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

Open Inventor Toolkit reference manual, generated on 4 Sep 2023
Copyright © Thermo Fisher Scientific All rights reserved.
https://www.openinventor.com/