MbGeometryHexahedronIjk< LAYOUT > Class Template Reference
[Topology]

MeshViz List of volume cells' coordinates. More...

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

Inheritance diagram for MbGeometryHexahedronIjk< LAYOUT >:
MiGeometryHexahedronIjk MbGeometry MiGeometry MiGeometry

List of all members.

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

Detailed Description

template<MiMeshIjk::StorageLayout LAYOUT>
class MbGeometryHexahedronIjk< LAYOUT >

MeshViz List of volume cells' coordinates.

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
 

Constructor & Destructor Documentation

template<MiMeshIjk::StorageLayout LAYOUT>
MbGeometryHexahedronIjk< LAYOUT >::MbGeometryHexahedronIjk ( const MbHexahedronMeshIjk< MbVec3d, double, MbVec3d, LAYOUT > &  indexedMesh  )  [inline]

Constructor of an empty topology defined by its size in i,j,k.


Member Function Documentation

template<MiMeshIjk::StorageLayout LAYOUT>
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.

template<MiMeshIjk::StorageLayout LAYOUT>
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 hexahedron (i+1,j,k) is consecutive in memory to the hexahedron (i,j,k) and,
  • the row of hexahedron (j+1,k) is consecutive in memory to the row of hexahedron (j,k) and,
  • the slice of hexahedron (k+1) is consecutive in memory to the slice of hexahedron (k)

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.

template<MiMeshIjk::StorageLayout LAYOUT>
size_t MbGeometryHexahedronIjk< LAYOUT >::getTimeStamp (  )  const [inline, virtual]

Returns the time stamp.

Reimplemented from MbGeometry.


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/