LDM data transform object. More...
#include <LDM/nodes/SoLDMDataTransform.h>
Public Member Functions | |
virtual SoType | getTypeId () const |
virtual void | transformFunction (SoDataSet *ds, const SbVec3i32 &bufferDimension, SoBufferObject *bufferToTransform, const SbBox3i32 &dataBox, int resolutionLevel)=0 |
virtual bool | affect (const SbBox3i32 ®ion) const |
virtual void | getAffectedRegion (std::vector< SbBox3i32 > ®ions) const |
Static Public Member Functions | |
static SoType | getClassTypeId () |
This object defines a transform function to be applied to each LDM tile after it is loaded (returned from the volume reader) but before it is stored in system memory (LDM data cache). This allows you to modify the original data (for example, scaling or filtering) before it is displayed. It can also be used to create multiple data sets in memory from a single data set on disk.
Derive a new class from this one and implement the transformFunction method. Create an instance of the new class and set in the dataTransform field of the SoDataSet node.
Notes:
SoDataSet, SoVolumeData, SoVolumeTransform
virtual bool SoLDMDataTransform::affect | ( | const SbBox3i32 & | region | ) | const [virtual] |
Returns true if the transformation affects the specified region.
Region is expressed in ijk space. Typically, the region represents a tile and this method is used to know if a tile is affected by this transformation.
virtual void SoLDMDataTransform::getAffectedRegion | ( | std::vector< SbBox3i32 > & | regions | ) | const [virtual] |
Returns a list of IJK bounding boxes affected by this transformation.
For example, if this transform only affects the diagonal of the dataset, it would be over-estimated to return the bounding box of the whole dataset. In this case, this method should return a list of smaller bounding boxes located along the dataset diagonal.
static SoType SoLDMDataTransform::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from SoFieldContainer.
virtual SoType SoLDMDataTransform::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Implements SoTypedObject.
virtual void SoLDMDataTransform::transformFunction | ( | SoDataSet * | ds, | |
const SbVec3i32 & | bufferDimension, | |||
SoBufferObject * | bufferToTransform, | |||
const SbBox3i32 & | dataBox, | |||
int | resolutionLevel | |||
) | [pure virtual] |
Data transform function.
This function allows a tile of data to be transformed after it is loaded, but before it is stored in main memory. It is not currently possible to access other tiles of data (for example using the data access API) from this function. Note that the function will be called from LDM data loader threads, so multiple threads may be executing in this function at the same time (on different tiles). Inputs are: