PbVoxelCell Class Reference
[Property/Data]

MeshViz Defines a voxel cell of a volume mesh. More...

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

Inheritance diagram for PbVoxelCell:
PbCell PbBase

List of all members.

Public Member Functions

 PbVoxelCell (const PbMesh *owner_mesh)
 PbVoxelCell (const PbVoxelCell &cell)
 ~PbVoxelCell ()
PbVoxelCelloperator= (const PbVoxelCell &cell)
virtual float getLongestEdgeLength () const
virtual SbBox3f getBoundingBox () const
void getBounds (float &xmin, float &ymin, float &zmin, float &xmax, float &ymax, float &zmax) const
virtual SbVec3f getCenter () 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
virtual float getValue (const SbVec3f &pcoord, const float *s) const
virtual SbVec3f getValue (const SbVec3f &pcoord, const SbVec3f *v) const

Detailed Description

MeshViz Defines a voxel cell of a volume mesh.

A voxel is a parallelepipede of which faces are orthogonal to X, Y, Z axes. Each facet is a rectangle not necessarily a square. The 4 first indices defines a facet oriented towards the interior of the cell.

Facets, nodes and edges are numbered as following :

                 4-----------7                    facet 0 = 0374  edge 0 = 01
                /|          /|       k            facet 1 = 1562  edge 1 = 12
              /  |        /  |       |            facet 2 = 0451  edge 2 = 23
            /    |      /    |       |            facet 3 = 3267  edge 3 = 30
           5----------6      |       |            facet 4 = 0123  edge 4 = 45
           |     |    |      |       ....... j    facet 5 = 4765  edge 5 = 56
           |     0----|------3      .                             edge 6 = 67
           |    /     |     /      .                              edge 7 = 74
           |  /       |   /       .                               edge 8 = 04
           |/         | /        i                                edge 9 = 15
           1----------2                                           edge10 = 26
                                                                  edge11 = 37
   

This numerotation must be respected to have the right result returned by getVolume().(i.e. edge 01 on Xaxis, edge 12 on Yaxis, edge 26 on Zaxis)


Constructor & Destructor Documentation

PbVoxelCell::PbVoxelCell ( const PbMesh owner_mesh  ) 

Constructor of a default simple cell.

PbVoxelCell::PbVoxelCell ( const PbVoxelCell cell  ) 

Copy constructor.

PbVoxelCell::~PbVoxelCell (  ) 

Destructor.


Member Function Documentation

virtual float PbVoxelCell::getArea (  )  const [inline, virtual]

Returns always 0.

Implements PbCell.

virtual SbBox3f PbVoxelCell::getBoundingBox (  )  const [virtual]

Gets the cell's bounding box.

Reimplemented from PbCell.

void PbVoxelCell::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 from PbCell.

virtual SbVec3f PbVoxelCell::getCenter (  )  const [virtual]

Gets the cell's geometric center.

Reimplemented from PbCell.

virtual float PbVoxelCell::getLongestEdgeLength (  )  const [virtual]

Gets the length of the longest edge of the cell.

Implements PbCell.

virtual void PbVoxelCell::getNodesIndexOfEdge ( int  edge,
PbArrayOfInt nodes_index 
) const [virtual]

Gets the array of 2 index mesh's nodes that belongs to a given edge of this cell.

(edge must be >=0 and < 12)

Implements PbCell.

virtual void PbVoxelCell::getNodesIndexOfFacet ( int  facet,
PbArrayOfInt nodes_index 
) const [virtual]

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

(facet must be >=0 and < 6)

Implements PbCell.

virtual void PbVoxelCell::getNodesLocalIndexOfEdge ( int  edge,
PbArrayOfInt nodes_index 
) const [virtual]

Gets the array of 2 nodes index that belongs to a given edge of this cell.

edge must be >=0 and < 12. Each index in nodes_index is >=0 and < 8.

Implements PbCell.

virtual void PbVoxelCell::getNodesLocalIndexOfFacet ( int  facet,
PbArrayOfInt nodes_index 
) const [virtual]

Gets the array of node index that belongs to a given facet of this cell.

facet must be >=0 and < 6. Each index is >=0 and < 8.

Implements PbCell.

virtual SbVec3f PbVoxelCell::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 from PbCell.

virtual float PbVoxelCell::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 from PbCell.

virtual float PbVoxelCell::getVolume (  )  const [inline, virtual]

Gets the volume of the cell.

Implements PbCell.

virtual void PbVoxelCell::getWeight ( const SbVec3f pcoord,
float *  weight 
) const [virtual]

Gets the 8 weights of a point defined by its parametric coordinates.

Implements PbCell.

virtual int PbVoxelCell::locatePoint ( const SbVec3f coord,
float  tolerance,
SbVec3f pcoord 
) const [virtual]

Returns 1 if the point is inside the cell, 0 otherwise.

Gets also the parametric coordinate of the point .

Implements PbCell.

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

Assignment operator.

Reimplemented from PbCell.


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

Open Inventor Toolkit reference manual, generated on 4 Sep 2023
Copyright © Thermo Fisher Scientific All rights reserved.
https://www.openinventor.com/