Stores detail information about a picked voxel or pick ray in a data volume. More...
#include <VolumeViz/details/SoVolumeRenderDetail.h>
Public Member Functions | |
virtual SoType | getTypeId () const |
SoVolumeRenderDetail () | |
virtual | ~SoVolumeRenderDetail () |
size_t | getMaskCount (SbBool realValue=FALSE) const |
SoLDM::DataSetIdPair | getMask (size_t index, SbBool realValue=FALSE) const |
void | getVoxelStyleAndIsoValue (SoVolumeDataDrawStyle::DrawStyle &style, double &iso, SbBool realValue=FALSE) const |
void | getRgbaValues (std::vector< SbVec4ub > &rgbaValues, std::vector< SbVec3f > &objectPos, std::vector< SbVec3i32 > &dataPos, std::vector< SoLDMTileID > &tileIds, float opacityThreshold=-1.f) const |
void | getRgbaValues (std::vector< SbVec4ub > &rgbaValues, std::vector< SbVec3f > &objectPos, float opacityThreshold=-1.f) const |
void | getRgbaValues (std::vector< SbVec4ub > &rgbaValues, float opacityThreshold=-1.f) const |
void | getRgbaValues (std::vector< SbVec4ub > &rgbaValues, std::vector< SbVec3i32 > &dataPos, float opacityThreshold=-1.f) const |
const std::vector< SoLDMTileID > & | getRgbaValuesTileIds () const |
virtual SoDetail * | copy () const |
Static Public Member Functions | |
static SoType | getClassTypeId () |
A successful pick operation returns an SoPickedPoint object. If the picked geometry is an SoVolumeRender 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:
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:
SoDetail, SoVolumeDetail, SoVolumeRender
SoVolumeRenderDetail::SoVolumeRenderDetail | ( | ) |
Constructor.
virtual SoVolumeRenderDetail::~SoVolumeRenderDetail | ( | ) | [virtual] |
Destructor.
virtual SoDetail* SoVolumeRenderDetail::copy | ( | ) | const [virtual] |
Returns an instance that is a copy of this instance. The caller is responsible for deleting the copy when it is no longer needed.
Reimplemented from SoVolumeDetail.
static SoType SoVolumeRenderDetail::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from SoVolumeDetail.
SoLDM::DataSetIdPair SoVolumeRenderDetail::getMask | ( | size_t | index, | |
SbBool | realValue = FALSE | |||
) | const |
Returns the i-th volume mask applied to the first non-transparent voxel.
index must be in the valid range returned by getMaskCount().
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.
size_t SoVolumeRenderDetail::getMaskCount | ( | SbBool | realValue = FALSE |
) | const |
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.
void SoVolumeRenderDetail::getRgbaValues | ( | std::vector< SbVec4ub > & | rgbaValues, | |
std::vector< SbVec3i32 > & | dataPos, | |||
float | opacityThreshold = -1.f | |||
) | const |
Returns the RGBA value and data space position of each voxel intersected by the pick ray.
Voxels with a alpha value less or equal to opacityThreshold are ignored. Values returned are based on the (possibly subsampled) tiles currently in memory.
void SoVolumeRenderDetail::getRgbaValues | ( | std::vector< SbVec4ub > & | rgbaValues, | |
float | opacityThreshold = -1.f | |||
) | const |
Returns the RGBA value of each voxel intersected by the pick ray.
Voxels with a alpha value less or equal to opacityThreshold are ignored. Values returned are based on the (possibly subsampled) tiles currently in memory.
void SoVolumeRenderDetail::getRgbaValues | ( | std::vector< SbVec4ub > & | rgbaValues, | |
std::vector< SbVec3f > & | objectPos, | |||
float | opacityThreshold = -1.f | |||
) | const |
Returns the RGBA value and object space position of each voxel intersected by the pick ray.
Plus their object space position. Voxels with a alpha value less or equal to opacityThreshold are ignored. Values returned are based on the (possibly subsampled) tiles currently in memory.
void SoVolumeRenderDetail::getRgbaValues | ( | std::vector< SbVec4ub > & | rgbaValues, | |
std::vector< SbVec3f > & | objectPos, | |||
std::vector< SbVec3i32 > & | dataPos, | |||
std::vector< SoLDMTileID > & | tileIds, | |||
float | opacityThreshold = -1.f | |||
) | const |
Returns the RGBA value, object space position, data space position and tileId for each voxel intersected by the pick ray.
Voxels with a alpha value less or equal to opacityThreshold are ignored. Values returned are based on the (possibly subsampled) tiles currently in memory.
const std::vector<SoLDMTileID>& SoVolumeRenderDetail::getRgbaValuesTileIds | ( | ) | const |
Returns the tileID of each voxel intersected by the pick ray.
Values returned are based on the (possibly subsampled) tiles currently in memory.
virtual SoType SoVolumeRenderDetail::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Reimplemented from SoVolumeDetail.
void SoVolumeRenderDetail::getVoxelStyleAndIsoValue | ( | SoVolumeDataDrawStyle::DrawStyle & | style, | |
double & | iso, | |||
SbBool | realValue = FALSE | |||
) | const |
Returns the style applied to the first non-transparent voxel (and its isovalue if the style is SoVolumeDataDrawStyle::ISOSURFACE).
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.