Interface MiHexahedronTopologyExplicitIjk
-
- All Superinterfaces:
MiTopology
,MiTopologyIjk
public interface MiHexahedronTopologyExplicitIjk extends MiTopologyIjk
List of volume cells interface.A generic interface for an unstructured explicit hexahedron volume mesh topology.
Each hexahedron cell has 6 faces which can be in any plane of the 3D space. Each face is a quadrangle not necessarily a square. The 4 first indices define the polygon of a face of the hexahedron. The 4 last indices define the polygon of the opposite face.
Facets and nodes are numbered 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
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description long
getBeginNodeId()
Returns the first node id used by this topology.long[]
getCellNodeIndices(int i, int j, int k, long[] nodeIndices)
Returns an array containing the 8 indices of a cell of this topology.long
getEndNodeId()
Returns the last node id + 1 used by this topology.StorageLayoutIJK
getStorageLayout()
Hint about cells organization in memory.-
Methods inherited from interface com.openinventor.meshvizxlm.mesh.topology.MiTopology
getTimeStamp, hasDeadCells
-
Methods inherited from interface com.openinventor.meshvizxlm.mesh.topology.MiTopologyIjk
getNumCellsI, getNumCellsJ, getNumCellsK, isDead
-
-
-
-
Method Detail
-
getCellNodeIndices
long[] getCellNodeIndices(int i, int j, int k, long[] nodeIndices)
Returns an array containing the 8 indices of a cell of this topology. The cell is identified by three indices i,j,k.If the specified array length is big enough to store the 8 node indices, they are returned therein. Otherwise, a new array is allocated.
- Parameters:
i
- i-index of the cellj
- j-index of the cellk
- k-index of the cellnodeIndices
- The array into which the 8 node indices of the cell are to be stored if it is big enough; otherwise, a new array is allocated for this purpose.- Returns:
- an array containing the 8 indices of the cell
-
getEndNodeId
long getEndNodeId()
Returns the last node id + 1 used by this topology.This topology uses only node index in the interval
[beginNodeId, endNodeId[
. Thus the maximum node index used by the topology isgetEndNodeId() - 1
and the number of nodes used by this topology isgetEndNodeId() - getBeginNodeId()
.- Returns:
- the last node id + 1 used by this topology
-
getBeginNodeId
long getBeginNodeId()
Returns the first node id used by this topology.This topology uses only node index in the interval
[beginNodeId,EndNodeId[
. Thus the maximum node index used by the topology isgetEndNodeId() - 1
and the number of nodes used by this topology isgetEndNodeId() - getBeginNodeId()
.- Returns:
- the first node id used by this topology
-
getStorageLayout
StorageLayoutIJK getStorageLayout()
Hint about cells organization in memory.This information aims at optimizing the topology traversal for extractors. Returns the topology internal cells layout in memory as 6 enum values covering all possible cases. For instance
KJI
means that:- the cell (i+1,j,k) is consecutive in memory to the cell (i,j,k) and,
- the row of cells (j+1,k) is consecutive in memory to the row of cells (j,k) and,
- the slice of cells (k+1) is consecutive in memory to the slice of cells (k)
The fastest way to go through the cells 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 topology.getCellNodeIndices(i,j,k,nodeIndices);
-
-