Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
PbCell Class Referenceabstract

MeshViz Defines an abstract cell of a mesh. More...

#include <MeshViz/3Ddata/PbCell.h>

+ Inheritance diagram for PbCell:

Public Member Functions

 PbCell ()
 Constructor.
 
 PbCell (const PbCell &cell)
 Copy constructor.
 
 ~PbCell ()
 Destructor.
 
PbCelloperator= (const PbCell &cell)
 Assignment operator.
 
virtual float getLongestEdgeLength () const =0
 Gets the length of the longest edge of the cell.
 
virtual SbBox3f getBoundingBox () const
 Gets the cell's bounding box.
 
virtual void getBounds (float &xmin, float &ymin, float &zmin, float &xmax, float &ymax, float &zmax) const
 Gets the cell's bounds.
 
virtual SbVec3f getCenter () const
 Gets the cell's geometric center.
 
virtual float getVolume () const =0
 Gets the volume of the cell.
 
virtual float getArea () const =0
 Gets the area of a cell.
 
int getNumFacets () const
 Gets the number of facets.
 
int getNumEdges () const
 Gets the number of edges.
 
int getNumNodes () const
 Gets the number of nodes.
 
int getIndex () const
 Gets the index of the cell in the mesh.
 
SbVec3f getNodeCoord (int nod) const
 Gets the coordinate of the nod (nod must be >=0 and < getNumNodes()).
 
int getNodeIndex (int nod) const
 Gets the index (in the mesh) of a nod (nod must be >=0 and < getNumNodes()).
 
void getNodesIndex (PbArrayOfInt &nodes_index) const
 Gets the array of index mesh's nodes that belongs to this cell.
 
virtual void getNodesIndexOfEdge (int edge, PbArrayOfInt &nodes_index) const =0
 Gets the array of 2 index mesh's nodes that belongs to a given edge of this cell.
 
virtual void getNodesIndexOfFacet (int facet, PbArrayOfInt &nodes_index) const =0
 Gets the array of index mesh's nodes that belongs to a given facet of this cell.
 
virtual void getNodesLocalIndexOfEdge (int edge, PbArrayOfInt &nodes_index) const =0
 Gets the array of 2 nodes index that belongs to a given edge of this cell.
 
virtual void getNodesLocalIndexOfFacet (int facet, PbArrayOfInt &nodes_index) const =0
 Gets the array of node index that belongs to a given facet of this cell.
 
virtual int locatePoint (const SbVec3f &coord, float tolerance, SbVec3f &pcoord) const =0
 Returns 1 if the point is inside the cell, 0 otherwise.
 
virtual void getWeight (const SbVec3f &pcoord, float *weight) const =0
 Gets the weights of a point defined by its parametric coordinates.
 
virtual float getValue (const SbVec3f &pcoord, const float *s) const
 Get the scalar value of a point in the cell.
 
virtual SbVec3f getValue (const SbVec3f &pcoord, const SbVec3f *v) const
 Get the vector value of a point in the cell.
 
float getValue (const float *weight, const float *s) const
 Gets the scalar value of a point in this cell, given the point's weights.
 
SbVec3f getValue (const float *weight, const SbVec3f *v) const
 Gets the vector value of a point in this cell, given the point's weights.
 
- Public Member Functions inherited from PbBase
void enableConnection (SbBool flag)
 Activates/deactivates the mechanism of connection.
 
SbBool isConnectionEnabled () const
 Returns TRUE if the connection mechanism is active, otherwise FALSE.
 
void touch ()
 Simulates the changing of an instance of this object, so all connected objects are informed of this change.
 
PbBaseoperator= (const PbBase &base)
 Assignment operator.
 

Detailed Description

MeshViz Defines an abstract cell of a mesh.

A cell is a "simple" basic volume or surface element that connects adjacent nodes of a mesh.

Definition at line 49 of file PbCell.h.

Constructor & Destructor Documentation

◆ PbCell() [1/2]

PbCell::PbCell ( )

Constructor.

◆ PbCell() [2/2]

PbCell::PbCell ( const PbCell cell)

Copy constructor.

◆ ~PbCell()

PbCell::~PbCell ( )

Destructor.

Member Function Documentation

◆ getArea()

virtual float PbCell::getArea ( ) const
pure virtual

◆ getBoundingBox()

virtual SbBox3f PbCell::getBoundingBox ( ) const
virtual

Gets the cell's bounding box.

Reimplemented in PbPixelCell, and PbVoxelCell.

◆ getBounds()

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.

◆ getCenter()

virtual SbVec3f PbCell::getCenter ( ) const
virtual

Gets the cell's geometric center.

Reimplemented in PbPixelCell, and PbVoxelCell.

◆ getIndex()

int PbCell::getIndex ( ) const
inline

Gets the index of the cell in the mesh.

Definition at line 124 of file PbCell.h.

◆ getLongestEdgeLength()

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.

◆ getNodeCoord()

SbVec3f PbCell::getNodeCoord ( int  nod) const
inline

Gets the coordinate of the nod (nod must be >=0 and < getNumNodes()).

Definition at line 131 of file PbCell.h.

◆ getNodeIndex()

int PbCell::getNodeIndex ( int  nod) const
inline

Gets the index (in the mesh) of a nod (nod must be >=0 and < getNumNodes()).

Definition at line 136 of file PbCell.h.

◆ getNodesIndex()

void PbCell::getNodesIndex ( PbArrayOfInt nodes_index) const

Gets the array of index mesh's nodes that belongs to this cell.

◆ getNodesIndexOfEdge()

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.

◆ getNodesIndexOfFacet()

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.

◆ getNodesLocalIndexOfEdge()

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.

◆ getNodesLocalIndexOfFacet()

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.

◆ getNumEdges()

int PbCell::getNumEdges ( ) const
inline

Gets the number of edges.

Definition at line 114 of file PbCell.h.

◆ getNumFacets()

int PbCell::getNumFacets ( ) const
inline

Gets the number of facets.

Definition at line 109 of file PbCell.h.

◆ getNumNodes()

int PbCell::getNumNodes ( ) const
inline

Gets the number of nodes.

Definition at line 119 of file PbCell.h.

◆ getValue() [1/4]

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.

◆ getValue() [2/4]

SbVec3f PbCell::getValue ( const float *  weight,
const SbVec3f v 
) const

Gets the vector value of a point in this cell, given the point's weights.

◆ getValue() [3/4]

virtual float PbCell::getValue ( const SbVec3f pcoord,
const float *  s 
) const
virtual

Get the scalar value of a point in the cell.

Parameters
pcoord[in] Parametric [0..1] coordinate of the point inside the cell.
s[in] The scalar dataset to interpolate
Returns
The interpolated value

Reimplemented in PbPixelCell, and PbVoxelCell.

◆ getValue() [4/4]

virtual SbVec3f PbCell::getValue ( const SbVec3f pcoord,
const SbVec3f v 
) const
virtual

Get the vector value of a point in the cell.

Parameters
pcoord[in] Parametric [0..1] coordinate of the point inside the cell.
v[in] The vector dataset to interpolate
Returns
The interpolated value

Reimplemented in PbPixelCell, and PbVoxelCell.

◆ getVolume()

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.

◆ getWeight()

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.

◆ locatePoint()

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.

◆ operator=()

PbCell & PbCell::operator= ( const PbCell cell)

Assignment operator.


The documentation for this class was generated from the following file: