Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
MiGeometryIjk Class Referenceabstract

MeshViz Generic geometry interface for structured volume meshes. More...

#include <MeshVizXLM/mesh/geometry/MiGeometryIjk.h>

+ Inheritance diagram for MiGeometryIjk:

Public Member Functions

virtual MbVec3d getCoord (size_t i, size_t j, size_t k) const =0
 Returns the coordinate (i,j,k) of this geometry.
 
virtual MiMeshIjk::StorageLayout getStorageLayout () const
 Hint about coordinates organization in memory.
 
- Public Member Functions inherited from MiGeometry
virtual ~MiGeometry ()
 
virtual size_t getTimeStamp () const =0
 Returns for this geometry a unique time stamp across all geometries in the application.
 
virtual SoDEPRECATED MbVec3d getMin () const
 Returns the minimum value of this set.
 
virtual SoDEPRECATED MbVec3d getMax () const
 Returns the maximum value of this set.
 

Additional Inherited Members

- Protected Member Functions inherited from MiGeometry
virtual std::ostream & toStream (std::ostream &s) const
 Performs an output operation on a stream which is returned afterward.
 

Detailed Description

MeshViz Generic geometry interface for structured volume meshes.

Generic geometry interface accessible via three indices. This type of geometry is typically used by structured volume meshes interfaces.

Definition at line 39 of file MiGeometryIjk.h.

Member Function Documentation

◆ getCoord()

virtual MbVec3d MiGeometryIjk::getCoord ( size_t  i,
size_t  j,
size_t  k 
) const
pure virtual

Returns the coordinate (i,j,k) of this geometry.

The implementation of this method must be thread-safe because it might be called concurrently by multiple threads.

◆ getStorageLayout()

virtual MiMeshIjk::StorageLayout MiGeometryIjk::getStorageLayout ( ) const
inlinevirtual

Hint about coordinates organization in memory.

This information aims at optimizing the geometry traversal for extractors. Returns the internal coordinates layout in memory as 6 enum values covering all possible cases.

For instance LAYOUT_KJI means that:

  • the coordinate (i+1,j,k) is consecutive in memory to the coordinate (i,j,k) and,
  • the row of coordinates (j+1,k) is consecutive in memory to the row of coordinates (j,k) and,
  • the slice of coordinates (k+1) is consecutive in memory to the slice of coordinates (k)

The fastest way to go through the coordinates with LAYOUT_KJI should be 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
     coordinates.getCoord(i,j,k);

The default implementation returns LAYOUT_UNKNOWN meaning that the coordinates storage organization is unknown, for instance when data are computed on the fly. In that case, extractors perform the geometry traversal in the way that minimizes the required memory for their algorithms.

Definition at line 71 of file MiGeometryIjk.h.


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