Probe at a given location in a structured surface mesh More...
#include <MeshVizXLM/extractors/MiPointProbeIj.h>
Public Member Functions | |
virtual | ~MiPointProbeIj () |
virtual bool | setLocation (const MbVec3d &point, const MiCellFilterIj *cellFilter=NULL)=0 |
virtual bool | moveLocation (const MbVec3d &point, size_t cellIdI, size_t cellIdJ, const MiCellFilterIj *cellFilter=NULL)=0 |
virtual bool | isFound () const =0 |
template<typename _T > | |
_T | getValue (const MiDataSetIj< _T > &dataset) const |
virtual void | getCellId (size_t &i, size_t &j) const =0 |
Protected Member Functions | |
virtual void | getWeight (std::vector< double > &weight) const =0 |
| |
static MiPointProbeIj * | getNewInstance (const MiSurfaceMeshRegular &mesh, bool parallel=true) |
static MiPointProbeIj * | getNewInstance (const MiSurfaceMeshRectilinear &mesh, bool parallel=true) |
static MiPointProbeIj * | getNewInstance (const MiSurfaceMeshCurvilinear &mesh, bool parallel=true) |
This class can be used to evaluate the value of a data set in the given mesh at any location.
virtual MiPointProbeIj::~MiPointProbeIj | ( | ) | [inline, virtual] |
virtual void MiPointProbeIj::getCellId | ( | size_t & | i, | |
size_t & | j | |||
) | const [pure virtual] |
Gets the ids of the cell of the mesh containing the current location of the probe.
i and are set to UNDEFINED_ID if the current location of the probe is outside the mesh.
[out] | i | the first id of the cell. |
[out] | j | the second id of the cell. |
static MiPointProbeIj* MiPointProbeIj::getNewInstance | ( | const MiSurfaceMeshCurvilinear & | mesh, | |
bool | parallel = true | |||
) | [static] |
Factory method returning a new instance of a class implementing this abstract class.
mesh | The input mesh | |
parallel | When true, tries to create an extract module using a parallel algorithm to speed up the extraction. |
static MiPointProbeIj* MiPointProbeIj::getNewInstance | ( | const MiSurfaceMeshRectilinear & | mesh, | |
bool | parallel = true | |||
) | [static] |
Factory method returning a new instance of a class implementing this abstract class.
mesh | The input mesh | |
parallel | When true, tries to create an extract module using a parallel algorithm to speed up the extraction. |
static MiPointProbeIj* MiPointProbeIj::getNewInstance | ( | const MiSurfaceMeshRegular & | mesh, | |
bool | parallel = true | |||
) | [static] |
Factory method returning a new instance of a class implementing this abstract class.
mesh | The input mesh | |
parallel | When true, tries to create an extract module using a parallel algorithm to speed up the extraction. |
_T MiPointProbeIj::getValue | ( | const MiDataSetIj< _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).
virtual void MiPointProbeIj::getWeight | ( | std::vector< double > & | weight | ) | const [protected, pure virtual] |
Gets the weights at the current probe location.
This weights are used by getValue() to compute a value at the current probe location.
virtual bool MiPointProbeIj::isFound | ( | ) | const [pure virtual] |
virtual bool MiPointProbeIj::moveLocation | ( | const MbVec3d & | point, | |
size_t | cellIdI, | |||
size_t | cellIdJ, | |||
const MiCellFilterIj * | 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) . 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.
[in] | point | The destination point of the probe. |
[in] | cellIdI | input cell I index used as initial search criteria. If UNDEFINED_ID, this method is equivalent to setLocation(). |
[in] | cellIdJ | input cell J index used as initial search criteria. If UNDEFINED_ID, this method is equivalent to setLocation(). |
[in] | cellFilter | The cell filter. |
virtual bool MiPointProbeIj::setLocation | ( | const MbVec3d & | point, | |
const MiCellFilterIj * | 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.
[in] | point | The destination point of the probe. |
[in] | cellFilter | The cell filter. |