Class SoVolumeRenderDetail
- java.lang.Object
-
- com.openinventor.inventor.Inventor
-
- com.openinventor.inventor.details.SoDetail
-
- com.openinventor.volumeviz.details.SoVolumeDetail
-
- com.openinventor.volumeviz.details.SoVolumeRenderDetail
-
public class SoVolumeRenderDetail extends SoVolumeDetail
Stores detail information about a picked voxel or pick ray in a data volume. A successful pick operation returns anSoPickedPoint
object. If the picked geometry is anSoVolumeRender
node, use the getDetail method and cast the result to this class to get extra information about the the pick.SoVolumeRenderDetail
returns information about the first (closest) non-transparent voxel along the pick ray and/or information about all the voxels intersected by the pick ray (called a profile). For the first non-transparent voxel (if any) on the pick ray, it returns XYZ position, IJK location, and data value. For the profile defined by all the intersected voxels, it returns:- Profile position in object space (two XYZ points)
- Profile location in the data volume (two IJK indices)
- Number of values along the profile
- Each voxel value and corresponding IJK location
Use the methods in
SoVolumeDetail
to get information about the data values of the picked voxels. Use the getRgba... methods in this class to get information about the mapped RGBA colors of the picked voxels. Because these methods return colors, they always return information based on the (possibly subsampled) tiles currently in memory.GPU picking: Please see the discussion of GPU picking in
SoVolumeDetail
.Limitations:
- If multiple volumes are being combined under an
SoMultiDataSeparator
, the detail class only returns values for the first volume in the scene graph.
- See Also:
SoDetail
,SoVolumeDetail
,SoVolumeRender
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.openinventor.volumeviz.details.SoVolumeDetail
SoVolumeDetail.ProfileValue, SoVolumeDetail.ProfileValueD, SoVolumeDetail.TransparentDoubleValue, SoVolumeDetail.TransparentLongValue
-
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
-
Field Summary
-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Constructor Summary
Constructors Constructor Description SoVolumeRenderDetail()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SoDetail
copy()
Returns an instance that is a copy of this instance.long
getMaskCount()
Calls getMaskCount(false).long
getMaskCount(boolean realValue)
Returns the number of volume masks applied to the first non-transparent voxel.java.util.ArrayList<SoLDMTileID>
getRgbaValuesTileIds()
Returns the tileID of each voxel intersected by the pick ray.-
Methods inherited from class com.openinventor.volumeviz.details.SoVolumeDetail
getFirstNonTransparentDoubleValue, getFirstNonTransparentDoubleValue, getFirstNonTransparentValue, getFirstNonTransparentValue, getProfileDataPos, getProfileNumValues, getProfileObjectPos, getProfileValue, getProfileValue, getProfileValueD, getProfileValueD, setDetails
-
Methods inherited from class com.openinventor.inventor.Inventor
dispose, getNativeResourceHandle
-
-
-
-
Method Detail
-
getMaskCount
public long getMaskCount()
Calls getMaskCount(false).
-
copy
public SoDetail copy()
Returns an instance that is a copy of this instance. The caller is responsible for deleting the copy when it is no longer needed.- Overrides:
copy
in classSoVolumeDetail
-
getRgbaValuesTileIds
public java.util.ArrayList<SoLDMTileID> getRgbaValuesTileIds()
Returns the tileID of each voxel intersected by the pick ray. Values returned are based on the (possibly subsampled) tiles currently in memory.
-
getMaskCount
public long getMaskCount(boolean realValue)
Returns the number of volume masks applied to the first non-transparent voxel. If realValue is true, VolumeViz will return the actual value from the full resolution data. Note that this may require a read from disk if full resolution data is not currently in memory. If false, VolumeViz will return the value from the (possibly subsampled) data currently in memory.Warning To use GPU picking, you must specify realValue = false.
-
-