Generic geometry interface for structured volume meshes. More...
#include <MeshVizXLM/mesh/geometry/MiGeometryIjk.h>
Public Member Functions | |
virtual MbVec3d | getCoord (size_t i, size_t j, size_t k) const =0 |
virtual MiMeshIjk::StorageLayout | getStorageLayout () const |
Generic geometry interface accessible via three indices. This type of geometry is typically used by structured volume meshes interfaces.
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.
virtual MiMeshIjk::StorageLayout MiGeometryIjk::getStorageLayout | ( | ) | const [inline, virtual] |
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 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.