MiDataSetIjk< _T > Class Template Reference
[DataSets]

MeshViz Generic data set interface for structured volume meshes. More...

#include <MeshVizXLM/mesh/data/MiDataSetIjk.h>

Inheritance diagram for MiDataSetIjk< _T >:
MiBoundedDataSet< _T > MiDataSet MeXDataSetIjk< _T >

List of all members.

Public Member Functions

virtual _T get (size_t i, size_t j, size_t k) const =0
virtual MiMeshIjk::StorageLayout getStorageLayout () const

Detailed Description

template<typename _T>
class MiDataSetIjk< _T >

MeshViz Generic data set interface for structured volume meshes.

A generic abstract template interface for a data set usable in any extract of a structured volume mesh.

See related examples:

MyVolumeMeshCurvilinear, MyVolumeMeshRectilinear, MyVolumeMeshRegular, MyVolumeMeshHexahedronIjk, MyVolumeMeshVertexHexahedronIjk


Member Function Documentation

template<typename _T>
virtual _T MiDataSetIjk< _T >::get ( size_t  i,
size_t  j,
size_t  k 
) const [pure virtual]
template<typename _T>
virtual MiMeshIjk::StorageLayout MiDataSetIjk< _T >::getStorageLayout (  )  const [inline, virtual]

Hint about data organization in memory.

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

For instance LAYOUT_KJI means that:

  • the 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 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
         data.get(i,j,k);
    

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

Reimplemented in MbScalarSetIjk< _T, _Layout >, and MbVec3SetIjk< _Vec3T, _Layout >.


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

Open Inventor by FEI reference manual, generated on 19 Aug 2019
Copyright © FEI S.A.S. All rights reserved.
http://www.openinventor.com/