SoLDMDataTransform Class Reference

Large Data Management LDM data transform object. More...

#include <LDM/nodes/SoLDMDataTransform.h>

Inheritance diagram for SoLDMDataTransform:
SoFieldContainer SoBase SoRefCounter SoTypedObject

List of all members.

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 &region) const
virtual void getAffectedRegion (std::vector< SbBox3i32 > &regions) const

Static Public Member Functions

static SoType getClassTypeId ()

Detailed Description

Large Data Management LDM data transform object.

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.



SoDataSet, SoVolumeData, SoVolumeTransform

Member Function Documentation

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:

  • The associated data set object the function is calling for. This allows retrieving information such as data type (ds->getDataType()).
  • The dimensions of the tile to transform. This defines the size of the buffer and is the same for every tile in a dataset. However tiles on the "outside" of the dataset may be partial tiles and contain less than the full number of actual data values.
  • A buffer containing the tile data to transform. The data should be modified "in place" in this buffer.
  • The position and extent of the tile in data space (voxel coordinates). For lower resolution tiles (level > 0) the extent of the tile will be larger than the dimensions of the tile (number of values in the tile).
  • The tile resolution level. Level 0 is full resolution data.


    : This method must be thread safe, and must not make any OpenInventor database modification or notification.

The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 12 Nov 2020
Copyright © Thermo Fisher Scientific All rights reserved.