List of volume cells' coordinates.
More...
#include <MeshVizXLM/mesh/geometry/MbGeometryHexahedronIjk.h>
Public Member Functions | |
MbGeometryHexahedronIjk (const MbHexahedronMeshIjk< MbVec3d, double, MbVec3d, LAYOUT > &indexedMesh) | |
void | getCellCoords (size_t i, size_t j, size_t k, MbVec3d &v0, MbVec3d &v1, MbVec3d &v2, MbVec3d &v3, MbVec3d &v4, MbVec3d &v5, MbVec3d &v6, MbVec3d &v7) const |
virtual MiMeshIjk::StorageLayout | getStorageLayout () const |
size_t | getTimeStamp () const |
A geometry for a non indexed hexahedron mesh Ijk. This geometry turns an indexed hexahedron mesh Ijk in a non-indexed geometry. Hexahedrons are defines as follows:
J | |
n3----------n2 facet 0 = 0321 /| /| facet 1 = 4567 / | / | facet 2 = 0473 / | / | facet 3 = 1265 n7---------n6 | facet 4 = 0154 | | | | facet 5 = 3762 | n0----|-----n1 --- I | / | / | / | / |/ | / n4---------n5
/ / K
MbGeometryHexahedronIjk< LAYOUT >::MbGeometryHexahedronIjk | ( | const MbHexahedronMeshIjk< MbVec3d, double, MbVec3d, LAYOUT > & | indexedMesh | ) | [inline] |
Constructor of an empty topology defined by its size in i,j,k.
void MbGeometryHexahedronIjk< LAYOUT >::getCellCoords | ( | size_t | i, | |
size_t | j, | |||
size_t | k, | |||
MbVec3d & | v0, | |||
MbVec3d & | v1, | |||
MbVec3d & | v2, | |||
MbVec3d & | v3, | |||
MbVec3d & | v4, | |||
MbVec3d & | v5, | |||
MbVec3d & | v6, | |||
MbVec3d & | v7 | |||
) | const [inline, virtual] |
Returns 8 indices of a cell of this topology.
The cell is identified by three id i,j,k.
Implements MiGeometryHexahedronIjk.
virtual MiMeshIjk::StorageLayout MbGeometryHexahedronIjk< LAYOUT >::getStorageLayout | ( | ) | const [inline, virtual] |
Hint about hexahedron organization in memory.
This information aims at optimizing the geometry traversal for extractors. Returns the geometry internal hexahedron layout in memory as 6 enum values covering all possible cases.
For example, LAYOUT_KJI means that:
The fastest way to go through a hexahedron mesh 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 geometry.getCellCoords(i,j,k,n0, ... ,n7);
The default implementation returns LAYOUT_UNKNOWN meaning that the hexahedron storage organization is unknown, for instance when hexahedron are computed on the fly. In that case, extractors perform the hexahedron traversal in the way that minimizes the required memory for their algorithms.
Reimplemented from MiGeometryHexahedronIjk.
size_t MbGeometryHexahedronIjk< LAYOUT >::getTimeStamp | ( | ) | const [inline, virtual] |
Returns the time stamp.
Reimplemented from MbGeometry.