Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
MiMeshIjk Class Referenceabstract

MeshViz IJK volume mesh abstract interface. More...

#include <MeshVizXLM/mesh/MiMeshIjk.h>

+ Inheritance diagram for MiMeshIjk:

Public Types

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

Public Member Functions

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.
 

Detailed Description

MeshViz IJK volume mesh abstract interface.

This interface defines an IJK volume mesh. All IJK meshes have a common topology interface to get the number of cells: getNumCellsI(), getNumCellsJ() and getNumCellsK().

See also
MiVolumeMeshRectilinear
MiVolumeMeshCurvilinear
MiVolumeMeshRegular
MiVolumeMeshHexahedronIjk
MiVolumeMeshVertexHexahedronIjk

Definition at line 51 of file MiMeshIjk.h.

Member Enumeration Documentation

◆ StorageLayout

Hint about data organization in memory.

This information aims at optimizing the data traversal for extractors. Enum values covering all possible cases for internal data layout in memory.
For instance LAYOUT_KJI means that:

  • data (i+1,j,k) is consecutive in memory to the data (i,j,k) and,
  • the row of data (j+1,k) is consecutive in memory to the row of data (j,k) and,
  • the slice of data (k+1) is consecutive in memory to the slice of data (k) The fastest way to go through the data with such layout is to perform the following triple loop
    for each k with 0 <= k < numK
      for each j with 0 <= j < numJ
        for each i with 0 <= i < numI
    
Enumerator
LAYOUT_IJK 
LAYOUT_IKJ 
LAYOUT_JKI 
LAYOUT_JIK 
LAYOUT_KJI 
LAYOUT_KIJ 
LAYOUT_UNKNOWN 

Definition at line 70 of file MiMeshIjk.h.

Member Function Documentation

◆ getTopology()

virtual const MiTopologyIjk & MiMeshIjk::getTopology ( ) const
pure virtual

Returns the topology of this mesh.

Implemented in MiVolumeMeshHexahedronIjk.

◆ toStream()

virtual std::ostream & MiMeshIjk::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.

Implements MiMesh.

Reimplemented in MiVolumeMeshCurvilinear, MiVolumeMeshHexahedronIjk, MiVolumeMeshRectilinear, MiVolumeMeshRegular, and MiVolumeMeshVertexHexahedronIjk.

Definition at line 86 of file MiMeshIjk.h.


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