Defines a voxel cell of a volume mesh.
More...
#include <MeshVizXLM/mesh/cell/MbVoxelCell.h>
Public Member Functions | |
MbVoxelCell () | |
MbVoxelCell (size_t n0, size_t n1, size_t n2, size_t n3, size_t n4, size_t n5, size_t n6, size_t n7) | |
double | getVolume (const MiGeometryI *meshGeometry) const |
virtual double | getRelativeSize (const MiGeometryI *meshGeometry) const |
A voxel cell is a parallelepipede of which faces are orthogonal to X, Y, Z axes. with n0 the closest to the origin. Each facet is a rectangle not necessarily a square. The 4 first indices defines a face of the voxel cell. The 4 last indices defines the opposite face.
Facets and nodes are numbered as following :
n3----------n2 facet 0 = 0123 /| /| facet 1 = 4765 / | / | facet 2 = 0374 / | / | facet 3 = 1562 n7---------n6 | facet 4 = 0451 | | | | facet 5 = 3267 | n0----|-----n1 | / | / | / | / |/ | / n4---------n5
This numerotation must be respected to have the right result returned by getVolume()
MbVoxelCell::MbVoxelCell | ( | ) | [inline] |
Construct an empty voxel cell.
MbVoxelCell::MbVoxelCell | ( | size_t | n0, | |
size_t | n1, | |||
size_t | n2, | |||
size_t | n3, | |||
size_t | n4, | |||
size_t | n5, | |||
size_t | n6, | |||
size_t | n7 | |||
) |
Construct a voxel cell.
virtual double MbVoxelCell::getRelativeSize | ( | const MiGeometryI * | meshGeometry | ) | const [virtual] |
Gets the relative size of the cell.
This method is used only by the MoMeshCellShape to display node names if using the relative offset feature and the streamline extraction to adapt the step integration to the size of the cell. getRelativeSize() should return a value depending on the size of the cell even if the default implementation returns 1. For instance, getRelativeSize() can return the length of the longest edge of this cell, or the length of its diagonal.
If getRelativeSize() returns a constant value for any cell, the stream line extraction uses a constant number of step integration anywhere in the mesh. Returning a constant implies that all the cells are supposed to have the same size. getRelativeSize() must not return 0.
[in] | meshGeometry | the geometry of the mesh. Used to retrieve the node coordinates of this cell. |
Reimplemented from MbHexahedronCell.
double MbVoxelCell::getVolume | ( | const MiGeometryI * | meshGeometry | ) | const [virtual] |
Gets the volume of the cell.
Reimplemented from MbHexahedronCell.