Volume Data Histogram. More...
#include <LDM/SoVolumeHistogram.h>
Public Member Functions | |
| SoVolumeHistogram (const SbDataType &dataType) | |
| ~SoVolumeHistogram () | |
| void | setInputValueRange (double rangeMin, double rangeMax) |
| void | setUndefinedValue (const double undefinedValue) |
| double | getUndefinedValue () const |
| size_t | getHistoSize () const |
| int64_t * | getHistogram () |
| int64_t | getNumValues (size_t entry) |
| int64_t | getValue (size_t entry) |
| double | getValueD (size_t entry) |
| int64_t | getMinValue () const |
| int64_t | getMaxValue () const |
| double | getMinValueD () const |
| double | getMaxValueD () const |
| double | getMax () const |
| double | getMin () const |
| int | getNumSignificantBits () const |
| void | addValues (SoBufferObject *values, const int numValues) |
| void | addValues (SoBufferObject *values, const SbVec3i32 &arrayDim) |
| void | addValues (SoBufferObject *values, const SbVec3i32 &arrayDim, const SbBox3i32 &range) |
| void | set (const std::vector< int64_t > &histo) |
| void | set (const std::vector< int64_t > &histo, const std::vector< double > &values) |
| template<typename T > | |
| size_t | getEntry (T value) const |
Static Public Member Functions | |
| static void | computeMinMax (SoBufferObject *valuesBuffer, const SbDataType &dataType, const SbVec3i32 &arrayDim, const SbBox3i32 &range, double &min, double &max) |
| static void | computeMinMaxWithUndefined (SoBufferObject *valuesBuffer, const double undefinedValue, const SbDataType &dataType, const SbVec3i32 &arrayDim, const SbBox3i32 &range, double &min, double &max) |
| static void | computeMinMax (void *valuesBuffer, const SbDataType &dataType, const SbVec3i32 &arrayDim, SbVec2d &minMax) |
| static void | computeMinMaxWithUndefined (void *valuesBuffer, const double undefinedValue, const SbDataType &dataType, const SbVec3i32 &arrayDim, SbVec2d &minMax) |
Volume Data Histogram.
This class allows building a histogram from a dataset or a portion of a dataset.
To implement the histogram computation, follow the steps below:
SoVolumeHistogram has different behavior depending on the datatype:
| SoVolumeHistogram::SoVolumeHistogram | ( | const SbDataType & | dataType | ) |
Constructor.
| SoVolumeHistogram::~SoVolumeHistogram | ( | ) |
Destructor.
| void SoVolumeHistogram::addValues | ( | SoBufferObject * | values, | |
| const SbVec3i32 & | arrayDim, | |||
| const SbBox3i32 & | range | |||
| ) |
Add to the histogram the values in the specified range inside the given array.
| void SoVolumeHistogram::addValues | ( | SoBufferObject * | values, | |
| const SbVec3i32 & | arrayDim | |||
| ) | [inline] |
Add to the histogram a 3D array of values.
| void SoVolumeHistogram::addValues | ( | SoBufferObject * | values, | |
| const int | numValues | |||
| ) | [inline] |
Add to the histogram a 1D array of values.
NOTES: this API is limited to INT_MAX numValues to handle.
| static void SoVolumeHistogram::computeMinMax | ( | void * | valuesBuffer, | |
| const SbDataType & | dataType, | |||
| const SbVec3i32 & | arrayDim, | |||
| SbVec2d & | minMax | |||
| ) | [static] |
Compute min max.
| valuesBuffer | Input buffer of values. | |
| dataType | Type of datas stored in valuesBuffer. | |
| arrayDim | Dimensions of valuesBuffer. | |
| minMax | Vector of computed minimum and maximum values. |
| static void SoVolumeHistogram::computeMinMax | ( | SoBufferObject * | valuesBuffer, | |
| const SbDataType & | dataType, | |||
| const SbVec3i32 & | arrayDim, | |||
| const SbBox3i32 & | range, | |||
| double & | min, | |||
| double & | max | |||
| ) | [static] |
Compute min max.
| valuesBuffer | Input buffer of values. | |
| dataType | Type of datas stored in valuesBuffer. | |
| arrayDim | Dimensions of valuesBuffer. | |
| range | Box in which min and max values are computed. | |
| min | Computed minimum value. | |
| max | Computed maximum value. |
| static void SoVolumeHistogram::computeMinMaxWithUndefined | ( | void * | valuesBuffer, | |
| const double | undefinedValue, | |||
| const SbDataType & | dataType, | |||
| const SbVec3i32 & | arrayDim, | |||
| SbVec2d & | minMax | |||
| ) | [static] |
Compute min max.
| valuesBuffer | Input buffer of values. | |
| undefinedValue | Discarded value in the computation of min and max. | |
| dataType | Type of datas stored in valuesBuffer. | |
| arrayDim | Dimensions of valuesBuffer. | |
| minMax | Vector of computed minimum and maximum values. |
| static void SoVolumeHistogram::computeMinMaxWithUndefined | ( | SoBufferObject * | valuesBuffer, | |
| const double | undefinedValue, | |||
| const SbDataType & | dataType, | |||
| const SbVec3i32 & | arrayDim, | |||
| const SbBox3i32 & | range, | |||
| double & | min, | |||
| double & | max | |||
| ) | [static] |
Compute min max.
| valuesBuffer | Input buffer of values. | |
| undefinedValue | Discarded value in the computation of min and max. | |
| dataType | Type of datas stored in valuesBuffer. | |
| arrayDim | Dimensions of valuesBuffer. | |
| range | Box in which min and max values are computed. | |
| min | Computed minimum value. | |
| max | Computed maximum value. |
| size_t SoVolumeHistogram::getEntry | ( | T | value | ) | const [inline] |
Returns the histogram entry corresponding to the value.
| int64_t* SoVolumeHistogram::getHistogram | ( | ) |
Returns a 64 bit integer pointer to the histogram data, the size of the histogram array is getHistoSize().
| size_t SoVolumeHistogram::getHistoSize | ( | ) | const |
Returns the size of the histogram.
| double SoVolumeHistogram::getMax | ( | ) | const |
Returns the max value of the dataset according to the specified data type.
| int64_t SoVolumeHistogram::getMaxValue | ( | ) | const |
Returns the max value of the dataset for integer data types.
| double SoVolumeHistogram::getMaxValueD | ( | ) | const |
Returns the max value of the dataset for floating data types.
| double SoVolumeHistogram::getMin | ( | ) | const |
Returns the max value of the dataset according to the specified data type.
| int64_t SoVolumeHistogram::getMinValue | ( | ) | const |
Returns the min value of the dataset for integer data types.
| double SoVolumeHistogram::getMinValueD | ( | ) | const |
Returns the min value of the dataset for floating data types.
| int SoVolumeHistogram::getNumSignificantBits | ( | ) | const |
Returns the number of significant bits for the dataset, only relevant for integer data types.
| int64_t SoVolumeHistogram::getNumValues | ( | size_t | entry | ) |
Returns the histogram value corresponding to the entry.
Equivalent to getHistogram()[entry]
| double SoVolumeHistogram::getUndefinedValue | ( | ) | const [inline] |
return the current undefined value.
| int64_t SoVolumeHistogram::getValue | ( | size_t | entry | ) |
Returns the value corresponding to the entry for integer data types.
| double SoVolumeHistogram::getValueD | ( | size_t | entry | ) |
Returns the value corresponding to the entry for floating data types.
| void SoVolumeHistogram::set | ( | const std::vector< int64_t > & | histo, | |
| const std::vector< double > & | values | |||
| ) |
Set the histogram.
Useful to get back scalar parameters such as min/max values and number of significant bits
| void SoVolumeHistogram::set | ( | const std::vector< int64_t > & | histo | ) |
Set the histogram.
Useful to get back scalar parameters such as min/max values and number of significant bits
| void SoVolumeHistogram::setInputValueRange | ( | double | rangeMin, | |
| double | rangeMax | |||
| ) |
For floating data type, specifies the range the histogram has to be computed in.
Must be called before any call to addValues(). Default values are -20000. 20000.
| void SoVolumeHistogram::setUndefinedValue | ( | const double | undefinedValue | ) | [inline] |
Setup the undefined value to ignore when computing the histogram.