Defines an abstract cell of a mesh. More...
#include <MeshViz/3Ddata/PbCell.h>
Public Member Functions | |
PbCell () | |
PbCell (const PbCell &cell) | |
~PbCell () | |
PbCell & | operator= (const PbCell &cell) |
virtual float | getLongestEdgeLength () const =0 |
virtual SbBox3f | getBoundingBox () const |
virtual void | getBounds (float &xmin, float &ymin, float &zmin, float &xmax, float &ymax, float &zmax) const |
virtual SbVec3f | getCenter () const |
virtual float | getVolume () const =0 |
virtual float | getArea () const =0 |
int | getNumFacets () const |
int | getNumEdges () const |
int | getNumNodes () const |
int | getIndex () const |
SbVec3f | getNodeCoord (int nod) const |
int | getNodeIndex (int nod) const |
void | getNodesIndex (PbArrayOfInt &nodes_index) const |
virtual void | getNodesIndexOfEdge (int edge, PbArrayOfInt &nodes_index) const =0 |
virtual void | getNodesIndexOfFacet (int facet, PbArrayOfInt &nodes_index) const =0 |
virtual void | getNodesLocalIndexOfEdge (int edge, PbArrayOfInt &nodes_index) const =0 |
virtual void | getNodesLocalIndexOfFacet (int facet, PbArrayOfInt &nodes_index) const =0 |
virtual int | locatePoint (const SbVec3f &coord, float tolerance, SbVec3f &pcoord) const =0 |
virtual void | getWeight (const SbVec3f &pcoord, float *weight) const =0 |
virtual float | getValue (const SbVec3f &pcoord, const float *s) const |
virtual SbVec3f | getValue (const SbVec3f &pcoord, const SbVec3f *v) const |
float | getValue (const float *weight, const float *s) const |
SbVec3f | getValue (const float *weight, const SbVec3f *v) const |
A cell is a "simple" basic volume or surface element that connects adjacent nodes of a mesh.
PbCell::PbCell | ( | ) |
Constructor.
PbCell::PbCell | ( | const PbCell & | cell | ) |
Copy constructor.
PbCell::~PbCell | ( | ) |
Destructor.
virtual float PbCell::getArea | ( | ) | const [pure virtual] |
Gets the area of a cell.
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
virtual SbBox3f PbCell::getBoundingBox | ( | ) | const [virtual] |
Gets the cell's bounding box.
Reimplemented in PbPixelCell, and PbVoxelCell.
virtual void PbCell::getBounds | ( | float & | xmin, | |
float & | ymin, | |||
float & | zmin, | |||
float & | xmax, | |||
float & | ymax, | |||
float & | zmax | |||
) | const [virtual] |
Gets the cell's bounds.
Similar to getBoundingBox() but it does not use any SbBox object.
Reimplemented in PbPixelCell, and PbVoxelCell.
virtual SbVec3f PbCell::getCenter | ( | ) | const [virtual] |
Gets the cell's geometric center.
Reimplemented in PbPixelCell, and PbVoxelCell.
int PbCell::getIndex | ( | ) | const [inline] |
Gets the index of the cell in the mesh.
virtual float PbCell::getLongestEdgeLength | ( | ) | const [pure virtual] |
Gets the length of the longest edge of the cell.
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
SbVec3f PbCell::getNodeCoord | ( | int | nod | ) | const [inline] |
Gets the coordinate of the nod (nod must be >=0 and < getNumNodes()).
int PbCell::getNodeIndex | ( | int | nod | ) | const [inline] |
Gets the index (in the mesh) of a nod (nod must be >=0 and < getNumNodes()).
void PbCell::getNodesIndex | ( | PbArrayOfInt & | nodes_index | ) | const |
Gets the array of index mesh's nodes that belongs to this cell.
virtual void PbCell::getNodesIndexOfEdge | ( | int | edge, | |
PbArrayOfInt & | nodes_index | |||
) | const [pure virtual] |
Gets the array of 2 index mesh's nodes that belongs to a given edge of this cell.
(edge must be >=0 and < getNumEdges())
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
virtual void PbCell::getNodesIndexOfFacet | ( | int | facet, | |
PbArrayOfInt & | nodes_index | |||
) | const [pure virtual] |
Gets the array of index mesh's nodes that belongs to a given facet of this cell.
(facet must be >=0 and < getNumFacets()).
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
virtual void PbCell::getNodesLocalIndexOfEdge | ( | int | edge, | |
PbArrayOfInt & | nodes_index | |||
) | const [pure virtual] |
Gets the array of 2 nodes index that belongs to a given edge of this cell.
edge must be >=0 and < getNumEdges(). each index is >=0 and < getNumNodes()
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
virtual void PbCell::getNodesLocalIndexOfFacet | ( | int | facet, | |
PbArrayOfInt & | nodes_index | |||
) | const [pure virtual] |
Gets the array of node index that belongs to a given facet of this cell.
facet must be >=0 and < getNumFacets(). each index is >=0 and < getNumNodes().
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
int PbCell::getNumEdges | ( | ) | const [inline] |
Gets the number of edges.
int PbCell::getNumFacets | ( | ) | const [inline] |
Gets the number of facets.
int PbCell::getNumNodes | ( | ) | const [inline] |
Gets the number of nodes.
Gets the vector value of a point in this cell, given the point's weights.
float PbCell::getValue | ( | const float * | weight, | |
const float * | s | |||
) | const |
Gets the scalar value of a point in this cell, given the point's weights.
Get the vector value of a point in the cell.
pcoord | [in] Parametric [0..1] coordinate of the point inside the cell. | |
v | [in] The vector dataset to interpolate |
Reimplemented in PbPixelCell, and PbVoxelCell.
virtual float PbCell::getValue | ( | const SbVec3f & | pcoord, | |
const float * | s | |||
) | const [virtual] |
Get the scalar value of a point in the cell.
pcoord | [in] Parametric [0..1] coordinate of the point inside the cell. | |
s | [in] The scalar dataset to interpolate |
Reimplemented in PbPixelCell, and PbVoxelCell.
virtual float PbCell::getVolume | ( | ) | const [pure virtual] |
Gets the volume of the cell.
Returns always 0 for a 2D cell.
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
virtual void PbCell::getWeight | ( | const SbVec3f & | pcoord, | |
float * | weight | |||
) | const [pure virtual] |
Gets the weights of a point defined by its parametric coordinates.
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
virtual int PbCell::locatePoint | ( | const SbVec3f & | coord, | |
float | tolerance, | |||
SbVec3f & | pcoord | |||
) | const [pure virtual] |
Returns 1 if the point is inside the cell, 0 otherwise.
Gets also the parametric coordinate of the point and its weights
Implemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.
Assignment operator.
Reimplemented from PbBase.
Reimplemented in PbHexahedronCell, PbPixelCell, PbPyramidCell, PbQuadrangleCell, PbTetrahedronCell, PbTriangleCell, PbVoxelCell, and PbWedgeCell.