MbGeometryIjk< _Vec3T, _Layout > Class Template Reference
[Geometry]

MeshViz Generic parallelepiped, rectangular or straight line geometry. More...

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

Inheritance diagram for MbGeometryIjk< _Vec3T, _Layout >:
MiGeometryIjk MbGeometry MbIjkToI< _Layout > MiGeometry MiGeometry

List of all members.

Public Member Functions

 MbGeometryIjk ()
 MbGeometryIjk (size_t numNodesI, size_t numNodesJ, size_t numNodesK)
virtual MbVec3d getCoord (size_t i, size_t j, size_t k) const
virtual void setCoord (size_t i, size_t j, size_t k, const _Vec3T &val)
void setSize (size_t numNodesI, size_t numNodesJ, size_t numNodesK)
virtual MiMeshIjk::StorageLayout getStorageLayout () const



MbVec3d getMin () const
MbVec3d getMax () const

Detailed Description

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
class MbGeometryIjk< _Vec3T, _Layout >

MeshViz Generic parallelepiped, rectangular or straight line geometry.

The geometry is given by 2 points defining 2 extremities.


Constructor & Destructor Documentation

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
MbGeometryIjk< _Vec3T, _Layout >::MbGeometryIjk (  )  [inline]

Constructor.

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
MbGeometryIjk< _Vec3T, _Layout >::MbGeometryIjk ( size_t  numNodesI,
size_t  numNodesJ,
size_t  numNodesK 
) [inline]

Member Function Documentation

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
virtual MbVec3d MbGeometryIjk< _Vec3T, _Layout >::getCoord ( size_t  i,
size_t  j,
size_t  k 
) const [inline, virtual]

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

Implements MiGeometryIjk.

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
MbVec3d MbGeometryIjk< _Vec3T, _Layout >::getMax (  )  const [inline, virtual]

Gets the min and max of the geometry.

Reimplemented from MiGeometry.

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
MbVec3d MbGeometryIjk< _Vec3T, _Layout >::getMin (  )  const [inline, virtual]

Gets the min and max of the geometry.

Reimplemented from MiGeometry.

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
virtual MiMeshIjk::StorageLayout MbGeometryIjk< _Vec3T, _Layout >::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 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.

Reimplemented from MiGeometryIjk.

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
virtual void MbGeometryIjk< _Vec3T, _Layout >::setCoord ( size_t  i,
size_t  j,
size_t  k,
const _Vec3T &  val 
) [inline, virtual]

Sets the coordinate at index (i,j,k).

template<typename _Vec3T = MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
void MbGeometryIjk< _Vec3T, _Layout >::setSize ( size_t  numNodesI,
size_t  numNodesJ,
size_t  numNodesK 
) [inline]

Gets the size of the geometry.


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

Open Inventor Toolkit reference manual, generated on 11 Nov 2019
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/