Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
PbHexahedronMesh3D Class Reference

MeshViz Defines a mesh of hexahedrons. More...

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

+ Inheritance diagram for PbHexahedronMesh3D:

Public Member Functions

 PbHexahedronMesh3D (SbBool isDataDuplicate=TRUE)
 Constructor of a default simple mesh.
 
 PbHexahedronMesh3D (const PbHexahedronMesh3D &mesh)
 Copy constructor.
 
 PbHexahedronMesh3D (int num_nodes, const float *x_nod, const float *y_nod, const float *z_nod, int num_hexahedrons, const int *hexahedron_index, SbBool is_data_duplicate=TRUE)
 Constructor of a volume mesh.
 
 ~PbHexahedronMesh3D ()
 Destructor.
 
PbHexahedronMesh3Doperator= (const PbHexahedronMesh3D &mesh)
 Assignment operator.
 
void setGeometry (int num_nodes, const float *x_nod, const float *y_nod, const float *z_nod, int num_hexahedrons, const int *hexahedron_index)
 Sets a new geometry.
 
void getGeometry (int &num_nodes, const float *&x_nod, const float *&y_nod, const float *&z_nod, int &num_hexahedrons, const int *&hexahedron_index) const
 Gets the current mesh geometry.
 
virtual void getNodesOwnerCellsInd (const PbArrayOfInt &nod_indices, PbArrayOfInt &owner_cells) const
 Gets the list of index of cells that own the list of node "nod_indices" (for example nod_indices can be the list of indices of a facet, an edge...)
 
virtual const PbCellgetCell (int cell_index) const
 Gets the cell which index is cell_index.
 
Deprecated
SoDEPRECATED void getGeometry (int &num_nodes, const float *&x_nod, const float *&y_nod, const float *&z_nod, int &num_hexahedrons, const int **&hexahedron_index) const
 Gets the current mesh geometry.
 
- Public Member Functions inherited from PbIndexedMesh3D
 PbIndexedMesh3D (SbBool is_data_duplicate=TRUE)
 Constructor of a default simple mesh.
 
 PbIndexedMesh3D (const PbIndexedMesh3D &mesh)
 Copy constructor.
 
 PbIndexedMesh3D (int num_nodes, const float *x_nod, const float *y_nod, const float *z_nod, int num_cells, const int *cell_index, const int *cell_type, SbBool is_data_duplicate=TRUE)
 Constructor of a 3D volume mesh.
 
 ~PbIndexedMesh3D ()
 Destructor.
 
PbIndexedMesh3Doperator= (const PbIndexedMesh3D &mesh)
 Assignment operator.
 
void setGeometry (int num_nodes, const float *x_nod, const float *y_nod, const float *z_nod, int num_cells, const int *cell_index, const int *cell_type)
 Sets a new geometry.
 
void setCoordinates (const float *x_nod, const float *y_nod, const float *z_nod)
 Set new node coordinates without modifying the mesh topology.
 
void getCoordinates (const float *&xnod, const float *&ynod, const float *&znod, int &size_xnod, int &size_ynod, int &size_znod) const
 Get the current coordinates of the nodes of this mesh.
 
void getGeometry (int &num_nodes, const float *&x_nod, const float *&y_nod, const float *&z_nod, int &num_cells, const int *&cell_index, const int *&cell_type) const
 Gets the current mesh geometry.
 
void getNodes (int &num_nodes, const float *&x_nod, const float *&y_nod, const float *&z_nod) const
 Gets the mesh nodes coordinate arrays.
 
virtual SbVec3f getNodeCoord (int nod_index) const
 Gets the coordinates of a node.
 
virtual void getNodeOwnerCellsInd (int nod_index, PbArrayOfInt &owner_cells) const
 Gets the list of index of cells that own the node "nod_index".
 
- Public Member Functions inherited from PbMesh3D
virtual float getVolume () const
 Gets the volume of the mesh.
 
virtual float getArea () const
 Returns always 0.
 
- Public Member Functions inherited from PbMesh
 PbMesh (SbBool is_data_duplicated=TRUE)
 Constructor.
 
 PbMesh (const PbMesh &mesh)
 Copy constructor.
 
 ~PbMesh ()
 Destructor.
 
PbMeshoperator= (const PbMesh &mesh)
 Assignment operator.
 
int getNumNodes () const
 Gets the number of nodes in the mesh.
 
int getNumCells () const
 Gets the number of cells in the mesh.
 
SbBox3f getBoundingBox () const
 Gets the bounding box of the mesh.
 
SbBool isDataDuplicated () const
 Returns TRUE if mesh's data are duplicated, FALSE otherwise.
 
virtual void addValuesSet (int set_index, const float *val, const SbString &set_name="")
 Adds a set of scalar values.
 
void addValuesSet (int set_index, const float *val, DataBinding binding, const SbString &set_name="")
 Adds a set of scalar values that can be located either at nodes or at cells.
 
DataBinding getValuesBinding (int set_index) const
 Gets the binding of the scalar value set.
 
virtual void addStringsSet (int set_index, const SbString *val, const SbString &set_name="")
 Adds a set of string values .
 
virtual void addVecsSet (int set_index, const SbVec3f *val, const SbString &set_name="")
 Adds a set of vector values .
 
virtual const SbStringgetValuesSetName (int set_index) const
 Gets the name associated to a scalar values set.
 
virtual const SbStringgetStringsSetName (int set_index) const
 Gets the name associated to a string values set.
 
virtual const SbStringgetVecsSetName (int set_index) const
 Gets the name associated to a vec values set.
 
virtual const float * getValuesSet (int set_index) const
 Gets a set of scalar values.
 
virtual const SbStringgetStringsSet (int set_index) const
 Gets a set of string values.
 
virtual const SbVec3fgetVecsSet (int set_index) const
 Gets a set of vector values.
 
virtual SbBool removeValuesSet (int set_index)
 Remove a set of scalar values.
 
virtual SbBool removeStringsSet (int set_index)
 Remove a set of string values.
 
virtual SbBool removeVecsSet (int set_index)
 Remove a set of vector values.
 
virtual void removeAllValuesSet ()
 Remove all sets of scalar values.
 
virtual void removeAllStringsSet ()
 Remove all sets of strings values.
 
virtual void removeAllVecsSet ()
 Remove all sets of vector values.
 
virtual int getNumValuesSet () const
 Gets the number of set of scalar values.
 
virtual int getNumStringsSet () const
 Gets the number of set of string values.
 
virtual int getNumVecsSet () const
 Gets the number of set of vector values.
 
virtual SbBool getMinValuesSet (int set_index, float &min) const
 Gets the min of a set of scalars.
 
virtual SbBool getMinVecsSet (int set_index, float &min) const
 Gets the min module of a set of vectors.
 
virtual SbBool getMaxValuesSet (int set_index, float &max) const
 Gets the max of a set of scalars.
 
virtual SbBool getMaxVecsSet (int set_index, float &max) const
 Gets the max module of a set of vectors.
 
virtual void getAdjacentCellsIndByNode (int cell_index, PbArrayOfInt &adjacent_cells) const
 Gets the list of indices of cells that are adjacent (by a node) to cell_index.
 
virtual void getAdjacentCellsIndByFacet (int cell_index, PbArrayOfInt &adjacent_cells) const
 Gets the list of indices of cells that are adjacent (by a facet) to cell_index.
 
virtual SbBox3f getSmallestCellBox (int &cell_index) const
 Gets the smallest cell's bounding box, returns also the index of this cell.
 
virtual SbBox3f getBiggestCellBox (int &cell_index) const
 Gets the biggest cell's bounding box, returns also the index of this cell.
 
virtual const PbCellfindContainingCell (const SbVec3f &point, float tolerance, SbVec3f &pcoord, const PbCell *adjacent_cell) const
 
virtual const PbCellfindContainingCell (const SbVec3f &point, float tolerance, SbVec3f &pcoord) const
 Find the cell that contains the point.
 
- 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.
 

Friends

int operator== (const PbHexahedronMesh3D &m1, const PbHexahedronMesh3D &m2)
 Equality comparison operator.
 
int operator!= (const PbHexahedronMesh3D &m1, const PbHexahedronMesh3D &m2)
 Inequality comparison operator.
 

Additional Inherited Members

- Public Types inherited from PbMesh
enum  DataBinding {
  PER_CELL = PoMeshProperty::PER_CELL ,
  PER_NODE = PoMeshProperty::PER_NODE
}
 Data binding. More...
 

Detailed Description

MeshViz Defines a mesh of hexahedrons.

Class to define an indexed 3D mesh made up of hexahedrons. This mesh is defined by a list of hexahedrons. Each hexahedron is defined by 8 indices of nodes.

The nodes coordinates are defined by 3 arrays x_nod, y_nod, z_nod of num_nodes floats. The hexahedrons are defined by the array hexahedron_index of num_hexahedrons*8 integers. hexahedron_index[(n*8)+p] is the p-th node index of the n-th hexahedron of the mesh (0 <= p <= 7). Each hexahedron must be numbered by repecting the following rule : the 4 first indices define a facet of the hexahedron and orient it towards the interior of the hexahedron.

Each facet of a hexahedron may have 2 references in the mesh, that is, one facet is common to 2 hexahedrons. The facets which are referred to once in the mesh define the mesh skin.

The values on the mesh nodes are defined by the PbMesh::addValuesSet(set_index,val) method, where val argument is an array of num_nodes floats.

Definition at line 58 of file PbHexahedronMesh3D.h.

Constructor & Destructor Documentation

◆ PbHexahedronMesh3D() [1/3]

PbHexahedronMesh3D::PbHexahedronMesh3D ( SbBool  isDataDuplicate = TRUE)

Constructor of a default simple mesh.

See also PbMesh for more explanations about data duplication.

◆ PbHexahedronMesh3D() [2/3]

PbHexahedronMesh3D::PbHexahedronMesh3D ( const PbHexahedronMesh3D mesh)

Copy constructor.

◆ PbHexahedronMesh3D() [3/3]

PbHexahedronMesh3D::PbHexahedronMesh3D ( int  num_nodes,
const float *  x_nod,
const float *  y_nod,
const float *  z_nod,
int  num_hexahedrons,
const int *  hexahedron_index,
SbBool  is_data_duplicate = TRUE 
)

Constructor of a volume mesh.

See also PbMesh for more explanations about data duplication.

◆ ~PbHexahedronMesh3D()

PbHexahedronMesh3D::~PbHexahedronMesh3D ( )

Destructor.

Member Function Documentation

◆ getCell()

virtual const PbCell * PbHexahedronMesh3D::getCell ( int  cell_index) const
virtual

Gets the cell which index is cell_index.

Returns NULL if the cell does not exist, otherwise returns always a PbHexahedronCell object. Attention! this method returns always the same adress of an internal private cell. This private cell is updated each time getCell is called.

Reimplemented from PbIndexedMesh3D.

◆ getGeometry() [1/2]

void PbHexahedronMesh3D::getGeometry ( int &  num_nodes,
const float *&  x_nod,
const float *&  y_nod,
const float *&  z_nod,
int &  num_hexahedrons,
const int *&  hexahedron_index 
) const

Gets the current mesh geometry.

hexahedron_index must be used like a vector (i.e. hexahedron_index[n])

◆ getGeometry() [2/2]

SoDEPRECATED void PbHexahedronMesh3D::getGeometry ( int &  num_nodes,
const float *&  x_nod,
const float *&  y_nod,
const float *&  z_nod,
int &  num_hexahedrons,
const int **&  hexahedron_index 
) const

Gets the current mesh geometry.

hexahedron_index must be used like a matrix. (i.e. hexahedron_index[cell_index][n], with 0 <= n <= 7)

◆ getNodesOwnerCellsInd()

virtual void PbHexahedronMesh3D::getNodesOwnerCellsInd ( const PbArrayOfInt nod_indices,
PbArrayOfInt owner_cells 
) const
virtual

Gets the list of index of cells that own the list of node "nod_indices" (for example nod_indices can be the list of indices of a facet, an edge...)

Reimplemented from PbMesh.

◆ operator=()

PbHexahedronMesh3D & PbHexahedronMesh3D::operator= ( const PbHexahedronMesh3D mesh)

Assignment operator.

◆ setGeometry()

void PbHexahedronMesh3D::setGeometry ( int  num_nodes,
const float *  x_nod,
const float *  y_nod,
const float *  z_nod,
int  num_hexahedrons,
const int *  hexahedron_index 
)

Sets a new geometry.

Friends And Related Symbol Documentation

◆ operator!=

int operator!= ( const PbHexahedronMesh3D m1,
const PbHexahedronMesh3D m2 
)
friend

Inequality comparison operator.

Definition at line 99 of file PbHexahedronMesh3D.h.

◆ operator==

int operator== ( const PbHexahedronMesh3D m1,
const PbHexahedronMesh3D m2 
)
friend

Equality comparison operator.


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