Unstructured volume mesh template.
More...
#include <MeshVizXLM/mesh/templates/MyVolumeMeshUnstructured.h>
Public Member Functions | |
size_t | getNumNodes () const |
size_t | getNodeIndex (size_t node) const |
size_t | getNumFacets () const |
size_t | appendNodesIndexOfFacet (size_t facet, std::vector< size_t > &facetNodes) const |
size_t | appendLocalNodesIndexOfFacet (size_t facet, std::vector< size_t > &facetNodes) const |
void | getIsosurfTopology (unsigned char caseId, std::vector< std::pair< size_t, size_t > > &edgeList) const |
double | getRelativeSize (const MiGeometryI *meshGeometry) const |
bool | isPointInsideCell (const MiGeometryI &meshGeometry, const MbVec3d &point, std::vector< double > &weights) const |
Header file to be completed including all required classes to define an unstructured volume mesh with its associated scalar and vector sets.
Intended to help implement simple mesh. Just fill up the empty methods of the following classes (search for YOUR CODE HERE):
Hint: some should inherit both from MeshViz interfaces and the user's application data classes.
For advanced implementations, refer to the MiVolumeMeshUnstructured interface. Class defining a volume cell of the mesh
size_t MyVolumeCell::appendLocalNodesIndexOfFacet | ( | size_t | facet, | |
std::vector< size_t > & | facetNodes | |||
) | const [inline, virtual] |
Appends the array of local node indices belonging to a given facet to facetNodes.
[in] | facet | The index of the facet (where 0 <= facet < getNumFacets()). |
facetNodes | A vector in which the local node indices of the facet will be appended. |
Reimplemented from MiVolumeCell.
size_t MyVolumeCell::appendNodesIndexOfFacet | ( | size_t | facet, | |
std::vector< size_t > & | facetNodes | |||
) | const [inline, virtual] |
Appends the array of node indices belonging to a given facet to facetNode.
[in] | facet | The index of the facet (where 0 <= facet < getNumFacets()). |
facetNodes | A vector in which the node indices of the facet will be appended. |
Implements MiVolumeCell.
void MyVolumeCell::getIsosurfTopology | ( | unsigned char | caseId, | |
std::vector< std::pair< size_t, size_t > > & | edgeList | |||
) | const [inline, virtual] |
Gets the list of topological polygons defining the part of the isosurface topology in this cell.
Implements MiVolumeCell.
size_t MyVolumeCell::getNodeIndex | ( | size_t | node | ) | const [inline, virtual] |
Gets the index (in the mesh) of a node.
[in] | node | Node number (where: 0 <= node < getNumNodes()). |
Implements MiCell.
size_t MyVolumeCell::getNumFacets | ( | ) | const [inline, virtual] |
Gets the number of facets.
Implements MiVolumeCell.
size_t MyVolumeCell::getNumNodes | ( | ) | const [inline, virtual] |
Gets the number of nodes.
Implements MiCell.
double MyVolumeCell::getRelativeSize | ( | const MiGeometryI * | meshGeometry | ) | const [inline, virtual] |
Gets the relative size of the cell.
[in] | meshGeometry | the geometry of the mesh. Used to retrieve the node coordinates of this cell. |
Reimplemented from MiCell.
bool MyVolumeCell::isPointInsideCell | ( | const MiGeometryI & | meshGeometry, | |
const MbVec3d & | point, | |||
std::vector< double > & | weights | |||
) | const [inline, virtual] |
Checks if a point is inside or outside a cell.
[in] | meshGeometry | The geometry of the mesh. Used to retrieve the node coordinates of this cell. |
[in] | point | The point to be checked. |
[out] | weights | containing at least as many elements as the number of nodes in this cell. |
Reimplemented from MiCell.