public abstract class MiPointProbeIjk extends java.lang.Object implements MiExtractorIjk
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 volume
meshes.
This octree can be optimized by setting three environment variables (see
SoPreferences
and
MiPointProbeUnstructured
).
Modifier and Type | Method and Description |
---|---|
abstract int[] |
getCellId()
Gets the ids of the cell of the mesh containing the current location of the
probe.
|
static <T extends MiTopologyIjk,G extends MiGeometryHexahedronIjk> |
getNewInstance(MiVolumeMeshVertexHexahedronIjk<T,G> mesh)
Create an instance of a probe for non indexed hexahedron volume mesh IJK.
|
abstract double |
getValue(MiScalardSetIjk dataset)
Gets the scalar value at the current probe location in the given
PER_CELL scalar set. |
abstract double[] |
getValue(MiVec3dSetIjk dataset)
Gets the vector value at the current probe location in the given
PER_CELL vector set. |
abstract boolean |
isFound()
Checks if the current probe location is inside the mesh.
|
abstract boolean |
moveLocation(double[] point,
int cellIdI,
int cellIdJ,
int cellIdK,
MiCellFilterIjk cellFilter)
Moves the current probe location at the given point.
|
abstract boolean |
setLocation(double[] point,
MiCellFilterIjk cellFilter)
Sets the current probe location at the given point and looks for the cell
containing this point.
|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addCellRange, clearCellRanges
setExtractorCallback
public static <T extends MiTopologyIjk,G extends MiGeometryHexahedronIjk> MiPointProbeIjk getNewInstance(MiVolumeMeshVertexHexahedronIjk<T,G> mesh)
mesh
- the input meshpublic abstract boolean setLocation(double[] point, MiCellFilterIjk cellFilter)
false
point
- the destination point of the probecellFilter
- the cell filtertrue
if this location is inside the mesh, false
otherwisepublic abstract boolean moveLocation(double[] point, int cellIdI, int cellIdJ, int cellIdK, MiCellFilterIjk cellFilter)
This method is similar and gives the same result as
setLocation(double[], MiCellFilterIjk)
. 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()
as input cellId
argument.
point
- the destination point of the probecellIdI
- input cell I used as initial search criteria. If
MxMeshViz.UNDEFINED_ID
, this
method is equivalent to setLocation
.cellIdJ
- input cell J used as initial search criteria. If
MxMeshViz.UNDEFINED_ID
, this
method is equivalent to setLocation
.cellIdK
- input cell K used as initial search criteria. If
MxMeshViz.UNDEFINED_ID
, this
method is equivalent to setLocation
.cellFilter
- the cell filtertrue
if this location is inside the mesh, false
otherwisepublic abstract boolean isFound()
true
if the current probe location is inside the mesh,
false
otherwisepublic abstract int[] getCellId()
i, j and k are set to
MxMeshViz.UNDEFINED_ID
if the current
location of the probe is outside the mesh.
public abstract double getValue(MiScalardSetIjk dataset)
PER_CELL
scalar set. isFound()
is false
dataset
- the input scalar setjava.lang.UnsupportedOperationException
- if binding of scalar set is not PER_CELL
public abstract double[] getValue(MiVec3dSetIjk dataset)
PER_CELL
vector set. null
if the probe location is outside the
mesh (when isFound()
is false
).dataset
- the input vector setjava.lang.UnsupportedOperationException
- if binding of vector set is not PER_CELL
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com