MiHexahedronTopologyExplicitIjk Class Reference
[Topology]

MeshViz List of volume cells interface. More...

#include <MeshVizXLM/mesh/topology/MiHexahedronTopologyExplicitIjk.h>

Inheritance diagram for MiHexahedronTopologyExplicitIjk:
MiTopologyIjk MiTopology MbHexahedronTopologyExplicitIjk< layout > MyHexahedronTopologyExplicitIjk

List of all members.

Public Member Functions

virtual void getCellNodeIndices (size_t i, size_t j, size_t k, size_t &n0, size_t &n1, size_t &n2, size_t &n3, size_t &n4, size_t &n5, size_t &n6, size_t &n7) const =0
virtual MiMeshIjk::StorageLayout getStorageLayout () const
virtual size_t getEndNodeId () const =0
virtual size_t getBeginNodeId () const

Deprecated



virtual SoDEPRECATED std::string getNodeName (size_t i) const

Detailed Description

MeshViz List of volume cells interface.

A generic abstract 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
  

SEE ALSO

MbHexahedronTopologyExplicitIjk

See related examples:

MyVolumeMeshHexahedronIjk


Member Function Documentation

virtual size_t MiHexahedronTopologyExplicitIjk::getBeginNodeId (  )  const [inline, virtual]

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 is getEndNodeId() - 1 and the number of nodes used by this topology is getEndNodeId() - getBeginNodeId(). This default implementation returns 0.

Reimplemented in MyHexahedronTopologyExplicitIjk, MbHexahedronTopologyExplicitIjk< layout >, and MbHexahedronTopologyExplicitIjk< LAYOUT >.

virtual void MiHexahedronTopologyExplicitIjk::getCellNodeIndices ( size_t  i,
size_t  j,
size_t  k,
size_t &  n0,
size_t &  n1,
size_t &  n2,
size_t &  n3,
size_t &  n4,
size_t &  n5,
size_t &  n6,
size_t &  n7 
) const [pure virtual]

Returns the 8 indices of a cell of this topology.

The cell is identified by three ids i,j,k.

Implemented in MyHexahedronTopologyExplicitIjk, MbHexahedronTopologyExplicitIjk< layout >, and MbHexahedronTopologyExplicitIjk< LAYOUT >.

virtual size_t MiHexahedronTopologyExplicitIjk::getEndNodeId (  )  const [pure virtual]

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 is getEndNodeId() - 1 and the number of nodes used by this topology is getEndNodeId() - getBeginNodeId().

Implemented in MyHexahedronTopologyExplicitIjk, MbHexahedronTopologyExplicitIjk< layout >, and MbHexahedronTopologyExplicitIjk< LAYOUT >.

virtual SoDEPRECATED std::string MiHexahedronTopologyExplicitIjk::getNodeName ( size_t  i  )  const [inline, virtual]

Returns the name of the node.

The default implementation returns the node identifier as a string.

Parameters:
i the index of the node
Deprecated:

Deprecated since Open Inventor 9630
No alternate method but it is deprecated as it will be removed in next major version. It will be replaced by the new interface MiStringSet.
virtual MiMeshIjk::StorageLayout MiHexahedronTopologyExplicitIjk::getStorageLayout (  )  const [inline, virtual]

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 LAYOUT_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 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
         topology.getCellNodeIndices(i,j,k,n0, ... ,n7);
    

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

Reimplemented in MbHexahedronTopologyExplicitIjk< layout >, and MbHexahedronTopologyExplicitIjk< 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/