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

MeshViz Probe at a given location in a structured volume mesh More...

#include <MeshVizXLM/extractors/MiPointProbeIjk.h>

+ Inheritance diagram for MiPointProbeIjk:

Public Member Functions

virtual ~MiPointProbeIjk ()
 
virtual bool setLocation (const MbVec3d &point, const MiCellFilterIjk *cellFilter=NULL)=0
 Sets the current probe location at the given point and looks for the cell containing this point.
 
virtual bool moveLocation (const MbVec3d &point, size_t cellIdI, size_t cellIdJ, size_t cellIdK, const MiCellFilterIjk *cellFilter=NULL)=0
 Moves the current probe location at the given point.
 
virtual bool isFound () const =0
 
template<typename _T >
_T getValue (const MiDataSetIjk< _T > &dataset) const
 Gets the value at the current probe location in the given dataset.
 
virtual void getCellId (size_t &i, size_t &j, size_t &k) const =0
 Gets the ids of the cell of the mesh containing the current location of the probe.
 

Static Public Member Functions

static MiPointProbeIjkgetNewInstance (const MiVolumeMeshRegular &mesh, bool parallel=true)
 Factory method returning a new instance of a class implementing this abstract class.
 
static MiPointProbeIjkgetNewInstance (const MiVolumeMeshRectilinear &mesh, bool parallel=true)
 
static MiPointProbeIjkgetNewInstance (const MiVolumeMeshCurvilinear &mesh, bool parallel=true)
 

Protected Member Functions

virtual void getWeight (std::vector< double > &weight) const =0
 Gets the weights at the current probe location.
 

Detailed Description

MeshViz Probe at a given location in a structured volume mesh

This class can be used to evaluate the value of a data set in the given mesh at any location. The probe is internally building an octree onto the curvilinear meshes. This octree can be optimized by setting three environment variables (see MiPointProbeUnstructured and SoPreferences).

Definition at line 47 of file MiPointProbeIjk.h.

Constructor & Destructor Documentation

◆ ~MiPointProbeIjk()

virtual MiPointProbeIjk::~MiPointProbeIjk ( )
inlinevirtual

Definition at line 50 of file MiPointProbeIjk.h.

Member Function Documentation

◆ getCellId()

virtual void MiPointProbeIjk::getCellId ( size_t &  i,
size_t &  j,
size_t &  k 
) const
pure virtual

Gets the ids of the cell of the mesh containing the current location of the probe.

i, j and k are set to UNDEFINED_ID if the current location of the probe is outside the mesh.

Parameters
[out]ithe first id of the cell.
[out]jthe second id of the cell.
[out]kthe last id of the cell.

◆ getNewInstance() [1/3]

static MiPointProbeIjk * MiPointProbeIjk::getNewInstance ( const MiVolumeMeshCurvilinear mesh,
bool  parallel = true 
)
static

◆ getNewInstance() [2/3]

static MiPointProbeIjk * MiPointProbeIjk::getNewInstance ( const MiVolumeMeshRectilinear mesh,
bool  parallel = true 
)
static

◆ getNewInstance() [3/3]

static MiPointProbeIjk * MiPointProbeIjk::getNewInstance ( const MiVolumeMeshRegular mesh,
bool  parallel = true 
)
static

Factory method returning a new instance of a class implementing this abstract class.

Parameters
meshThe input mesh
parallelWhen true, tries to create an extract module using a parallel algorithm to speed up the extraction.
Note
Only some of the extraction algorithms have a parallel implementation.

◆ getValue()

template<typename _T >
_T MiPointProbeIjk::getValue ( const MiDataSetIjk< _T > &  dataset) const
inline

Gets the value at the current probe location in the given dataset.

The returned value is meaningless if the probe location is outside the mesh (when isFound() is false).

Definition at line 126 of file MiPointProbeIjk.h.

◆ getWeight()

virtual void MiPointProbeIjk::getWeight ( std::vector< double > &  weight) const
protectedpure virtual

Gets the weights at the current probe location.

This weights are used by getValue() to compute a value at the current probe location.

◆ isFound()

virtual bool MiPointProbeIjk::isFound ( ) const
pure virtual

Returns
true if the current location of the probe is inside the mesh, false otherwise.

◆ moveLocation()

virtual bool MiPointProbeIjk::moveLocation ( const MbVec3d point,
size_t  cellIdI,
size_t  cellIdJ,
size_t  cellIdK,
const MiCellFilterIjk cellFilter = NULL 
)
pure virtual

Moves the current probe location at the given point.

This method is similar and gives the same result as setLocation(). But, first it looks for the containing cell in the neighborhood of the cell having id (cellIdI,cellIdJ,cellIdK) . Then, if the neighborhood of this given cell does not contain the
given point this method searches in the whole mesh like the method setLocation().

For instance, moveLocation() could be used instead of setLocation() when the cell containing the point is already known, or when the displacement of the probe is not too large compared to the cell's size at the previous location of the probe. In this case, use getCellId() to retrieve the cells indices.

Parameters
[in]pointThe destination point of the probe.
[in]cellIdIinput cell I index used as initial search criteria. If UNDEFINED_ID, this method is equivalent to setLocation().
[in]cellIdJinput cell J index used as initial search criteria. If UNDEFINED_ID, this method is equivalent to setLocation().
[in]cellIdKinput cell K index used as initial search criteria. If UNDEFINED_ID, this method is equivalent to setLocation().
[in]cellFilterThe cell filter.
Returns
true if this location is inside the mesh, false otherwise.

◆ setLocation()

virtual bool MiPointProbeIjk::setLocation ( const MbVec3d point,
const MiCellFilterIjk cellFilter = NULL 
)
pure virtual

Sets the current probe location at the given point and looks for the cell containing this point.

If the probe location is inside a cell not accepted by the optional filter, this methods returns false.

Parameters
[in]pointThe destination point of the probe.
[in]cellFilterThe cell filter.
Returns
true if this location is inside the mesh, false otherwise.

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