Defines a pyramid cell of a volume mesh. More...
#include <MeshViz/3Ddata/PbPyramidCell.h>
Public Member Functions | |
PbPyramidCell (const PbMesh *owner_mesh) | |
PbPyramidCell (const PbPyramidCell &cell) | |
~PbPyramidCell () | |
PbPyramidCell & | operator= (const PbPyramidCell &cell) |
virtual float | getLongestEdgeLength () const |
virtual float | getVolume () const |
virtual float | getArea () const |
virtual void | getNodesIndexOfEdge (int edge, PbArrayOfInt &nodes_index) const |
virtual void | getNodesIndexOfFacet (int facet, PbArrayOfInt &nodes_index) const |
virtual void | getNodesLocalIndexOfEdge (int edge, PbArrayOfInt &nodes_index) const |
virtual void | getNodesLocalIndexOfFacet (int facet, PbArrayOfInt &nodes_index) const |
virtual int | locatePoint (const SbVec3f &coord, float tolerance, SbVec3f &pcoord) const |
virtual void | getWeight (const SbVec3f &pcoord, float *weight) const |
void | getDerivs (const SbVec3f &pcoord, float *weight) const |
A pyramid cell has 5 facets which can be in any plane of 3D space. It has 4 triangle facets and 1 quadrangle facet. The 4 first indices define the base quadrangle facet oriented towards the interior of the cell.
Facets, nodes and edges are numbered as follows:
n4 x facet 0 = 0123 edge 0 = 01 /| \ . facet 1 = 041 edge 1 = 12 / | \ . facet 2 = 142 edge 2 = 23 / | \ . facet 3 = 243 edge 3 = 30 / | \ . facet 4 = 340 edge 4 = 04 / | \ . edge 5 = 14 / n3 x------\----------x n2 edge 6 = 24 / ' \ ' edge 7 = 34 / ' \ ' n0 x------------------x n1
PbPyramidCell::PbPyramidCell | ( | const PbMesh * | owner_mesh | ) |
Constructor of a default simple cell.
PbPyramidCell::PbPyramidCell | ( | const PbPyramidCell & | cell | ) |
Copy constructor.
PbPyramidCell::~PbPyramidCell | ( | ) |
Destructor.
virtual float PbPyramidCell::getArea | ( | ) | const [inline, virtual] |
Always returns 0.
Implements PbCell.
void PbPyramidCell::getDerivs | ( | const SbVec3f & | pcoord, | |
float * | weight | |||
) | const |
Returns the derivs of a point defined by its parametric coordinates.
virtual float PbPyramidCell::getLongestEdgeLength | ( | ) | const [virtual] |
Returns the length of the longest edge of the cell.
Implements PbCell.
virtual void PbPyramidCell::getNodesIndexOfEdge | ( | int | edge, | |
PbArrayOfInt & | nodes_index | |||
) | const [virtual] |
Returns the array of 2 index mesh's nodes that belong to a given edge of this cell.
(edge must be >=0 and < 8)
Implements PbCell.
virtual void PbPyramidCell::getNodesIndexOfFacet | ( | int | facet, | |
PbArrayOfInt & | nodes_index | |||
) | const [virtual] |
Returns the array of index mesh's nodes that belong to a given facet of this cell.
(facet must be >=0 and < 5)
Implements PbCell.
virtual void PbPyramidCell::getNodesLocalIndexOfEdge | ( | int | edge, | |
PbArrayOfInt & | nodes_index | |||
) | const [virtual] |
Returns the array of 2 nodes index that belong to a given edge of this cell.
edge must be >=0 and < 8. Each index in nodes_index is >=0 and < 5.
Implements PbCell.
virtual void PbPyramidCell::getNodesLocalIndexOfFacet | ( | int | facet, | |
PbArrayOfInt & | nodes_index | |||
) | const [virtual] |
Returns the array of node index that belong to a given facet of this cell.
facet must be >=0 and < 5. Each index is >=0 and < 5.
Implements PbCell.
virtual float PbPyramidCell::getVolume | ( | ) | const [virtual] |
Returns the volume of the cell.
Implements PbCell.
virtual void PbPyramidCell::getWeight | ( | const SbVec3f & | pcoord, | |
float * | weight | |||
) | const [virtual] |
Returns the 5 weights of a point defined by its parametric coordinates.
Implements PbCell.
virtual int PbPyramidCell::locatePoint | ( | const SbVec3f & | coord, | |
float | tolerance, | |||
SbVec3f & | pcoord | |||
) | const [virtual] |
Returns 1 if the point is inside the cell, 0 otherwise.
Returns also the parametric coordinate of the point.
Implements PbCell.
PbPyramidCell& PbPyramidCell::operator= | ( | const PbPyramidCell & | cell | ) |
Assignment operator.
Reimplemented from PbCell.