MeVisLab Toolbox Reference
ml::LUTData< T > Class Template Reference

A LUTData object stores an instance of a LUT, rendered for a specified visual type, data type, reference range and index/row/layer set. More...

#include <mlLUTData.h>

Inheritance diagram for ml::LUTData< T >:
ml::LUTDataBase

Public Member Functions

 LUTData ()
 Constructor, passes data type identifier constant to LUTDataBase A specialized constructor for each supported data type is defined. More...
 
MLDataType getType (MLuint8 *)
 supported basic data types More...
 
MLDataType getType (MLint8 *)
 
MLDataType getType (MLuint16 *)
 
MLDataType getType (MLint16 *)
 
MLDataType getType (MLuint32 *)
 
MLDataType getType (MLint32 *)
 
MLDataType getType (MLint64 *)
 
MLDataType getType (MLuint64 *)
 
MLDataType getType (float *)
 
MLDataType getType (double *)
 
MLDataType getType (MLldouble *)
 
MLErrorCode init (LUTVisualType visualType, int minIndex, int maxIndex, T maxEntry)
 Initialize LUT data for specified visual type, index range and maximum entry value (= reference value used for scaling LUT entries) More...
 
MLErrorCode init (LUTVisualType visualType, int minIndex, int maxIndex, int minRow, int maxRow, T maxEntry)
 Initialize 2D-LUT data for specified visual type, index/row ranges and maximum entry value (= reference value used for scaling LUT entries) More...
 
MLErrorCode init (LUTVisualType visualType, int minIndex, int maxIndex, int minRow, int maxRow, int minLayer, int maxLayer, T maxEntry)
 Initialize 3D-LUT data for specified visual type, index/row/layer ranges and maximum entry value (= reference value used for scaling LUT entries) More...
 
MLErrorCode initShared1D (LUTVisualType visualType, int minIndex, int maxIndex, int row, int layer, LUTData< T > *srcLutData, int srcIndex, int srcRow, int srcLayer)
 Initialize 1D-LUT data for specified visual type and index range. More...
 
MLErrorCode initShared2D (LUTVisualType visualType, int minRow, int maxRow, int layer, LUTData< T > *srcLutData, int srcRow, int srcLayer)
 Initialize 2D-LUT data for specified visual type, row range and layer. More...
 
T getMaxEntry (void) const
 Get maximum (reference) entry value. More...
 
TgetData (void)
 Get LUT data pointer, entries are stored interleaved (e.g. RGBARGBA...) More...
 
const TgetData (void) const
 Get LUT data pointer (const version) More...
 
TgetEntriesAt (int index, int row, int layer)
 Get LUT entries at given index, row and layer. More...
 
const TgetEntriesAt (int index, int row, int layer) const
 Get LUT entries at given index, row and layer (const version) More...
 
TgetEntriesAt (int index, int row)
 Get LUT entries at given index and row. More...
 
const TgetEntriesAt (int index, int row) const
 Get LUT entries at given index and row (const version) More...
 
TgetEntriesAt (int index)
 Get LUT entries at given index. More...
 
const TgetEntriesAt (int index) const
 Get LUT entries at given index (const version) More...
 
virtual LUTData< T > * clone (void) const
 Create a new LUTData object with the same properties and a new, uninitialized data buffer. More...
 
- Public Member Functions inherited from ml::LUTDataBase
virtual ~LUTDataBase ()
 Destructor. More...
 
void clear ()
 Clear. More...
 
bool isInitialized (void) const
 Return true if LUT initialized. More...
 
bool ownsData (void) const
 Return true if this LUTData object owns the referenced LUT data buffer. More...
 
MLDataType getDataType (void) const
 Get data type. More...
 
int getEntrySize (void) const
 Get size of a single LUT entry. More...
 
LUTVisualType getVisualType (void) const
 Get visual type. More...
 
int getNumChannels (void) const
 Get number of channels. More...
 
LUTDimensionality getDimensionality (void) const
 Get number of dimensions (1, 2, or 3) More...
 
int getMinIndex (void) const
 Get minimum index value. More...
 
int getMaxIndex (void) const
 Get maximum index value. More...
 
int getWidth (void) const
 Get index range width. More...
 
int getMinRow (void) const
 Get minimum row value. More...
 
int getMaxRow (void) const
 Get maximum row value. More...
 
int getHeight (void) const
 Get number of rows. More...
 
int getMinLayer (void) const
 Get minimum layer value. More...
 
int getMaxLayer (void) const
 Get maximum layer value. More...
 
int getDepth (void) const
 Get number of layers. More...
 
int getLength (void) const
 Get total number of entries. More...
 
int getStride (int dim) const
 Get entry stride for index (dim = 1), row (2) and layer (3) dimension, relative to entry size, i.e. More...
 
int getDataSize (void) const
 Get size of LUT data area (in bytes) More...
 
bool isInRange (int index, int row=0, int layer=0) const
 Return true if specified index, row and layer position is in LUT range. More...
 
unsigned int getId (void) const
 Get LUT ID. More...
 
void setId (unsigned int id)
 Set LUT ID. More...
 
void setId (unsigned int id, double minIndex, double maxIndex)
 Set LUT ID including min/max range on rescaled luts. More...
 
const LUTDataIdgetFullId () const
 Get full LUT data ID, including min/max ranged from renderRescaled. More...
 
void setFullId (const LUTDataId &id)
 Set full LUT data ID, including min/max ranged from renderRescaled. More...
 

Protected Attributes

T _maxEntry
 Maximum entry value (= reference value used for scaling LUT entries) More...
 
- Protected Attributes inherited from ml::LUTDataBase
MLDataType _dataType
 Data type identifier constant. More...
 
int _entrySize
 Size of single data entry. More...
 
int _dataLength
 Number of entries. More...
 
void * _data
 LUT data pointer. More...
 
bool _ownsData
 This flag is true if LUT data buffer is owned by this LUTData object. More...
 
LUTVisualType _visualType
 Visual type. More...
 
int _numChannels
 Number of channels. More...
 
LUTDimensionality _dimensionality
 Dimensionality (1, 2 or 3) More...
 
int _minIndex
 Index range (1st dimension) More...
 
int _maxIndex
 
int _minRow
 Row range (2nd dimension) More...
 
int _maxRow
 
int _minLayer
 Layer range (3rd dimension) More...
 
int _maxLayer
 
int _strides [3]
 Data strides (entry address differences) for index (1st), row (2nd) and layer (3rd) dimension (relative to entry size) More...
 
int _entryOffset
 Entry offset for addressing via getEntriesAt() in derived LUTData class. More...
 
LUTDataId _lutId
 LUT ID. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ml::LUTDataBase
 LUTDataBase (MLDataType dataType)
 Constructor, create empty, unallocated table. More...
 
MLErrorCode init (LUTVisualType visualType, int minIndex, int maxIndex, int minRow, int maxRow, int minLayer, int maxLayer)
 Initialize LUT data for specified visual type and index/row/layer ranges. More...
 
MLErrorCode initShared1D (LUTVisualType visualType, int minIndex, int maxIndex, int row, int layer, LUTDataBase *srcLutData, int srcIndex, int srcRow, int srcLayer)
 Initialize 1D-LUT data for specified visual type, index range and row/layer. More...
 
MLErrorCode initShared2D (LUTVisualType visualType, int minRow, int maxRow, int layer, LUTDataBase *srcLutData, int srcRow, int srcLayer)
 Initialize 2D-LUT data for specified visual type, row range and layer. More...
 
void reset (void)
 Reset properties. More...
 
void clearData (void)
 Clear data buffer. More...
 
bool initData (void)
 Initialize data buffer, return true if successful. More...
 

Detailed Description

template<typename T>
class ml::LUTData< T >

A LUTData object stores an instance of a LUT, rendered for a specified visual type, data type, reference range and index/row/layer set.

For rendering a LUTFunction object into a LUTData, use the methods LUTFunction::render() and LUTFunction::renderRescaled(). To access the data stored in the LUTData object, use the getData() method.

Definition at line 242 of file mlLUTData.h.

Constructor & Destructor Documentation

◆ LUTData()

template<typename T >
ml::LUTData< T >::LUTData ( )
inline

Constructor, passes data type identifier constant to LUTDataBase A specialized constructor for each supported data type is defined.

Definition at line 248 of file mlLUTData.h.

Member Function Documentation

◆ clone()

template<typename T >
LUTData< T > * ml::LUTData< T >::clone ( void  ) const
virtual

Create a new LUTData object with the same properties and a new, uninitialized data buffer.

Definition at line 413 of file mlLUTData.h.

References ml::LUTData< T >::init(), and ML_RESULT_OK.

◆ getData() [1/2]

template<typename T >
T* ml::LUTData< T >::getData ( void  )
inline

Get LUT data pointer, entries are stored interleaved (e.g. RGBARGBA...)

Definition at line 306 of file mlLUTData.h.

References T.

◆ getData() [2/2]

template<typename T >
const T* ml::LUTData< T >::getData ( void  ) const
inline

Get LUT data pointer (const version)

Definition at line 309 of file mlLUTData.h.

References T.

◆ getEntriesAt() [1/6]

template<typename T >
T* ml::LUTData< T >::getEntriesAt ( int  index)
inline

Get LUT entries at given index.

Definition at line 328 of file mlLUTData.h.

◆ getEntriesAt() [2/6]

template<typename T >
const T* ml::LUTData< T >::getEntriesAt ( int  index) const
inline

Get LUT entries at given index (const version)

Definition at line 332 of file mlLUTData.h.

◆ getEntriesAt() [3/6]

template<typename T >
T* ml::LUTData< T >::getEntriesAt ( int  index,
int  row 
)
inline

Get LUT entries at given index and row.

Definition at line 320 of file mlLUTData.h.

◆ getEntriesAt() [4/6]

template<typename T >
const T* ml::LUTData< T >::getEntriesAt ( int  index,
int  row 
) const
inline

Get LUT entries at given index and row (const version)

Definition at line 324 of file mlLUTData.h.

◆ getEntriesAt() [5/6]

template<typename T >
T* ml::LUTData< T >::getEntriesAt ( int  index,
int  row,
int  layer 
)
inline

Get LUT entries at given index, row and layer.

Definition at line 312 of file mlLUTData.h.

Referenced by ml::LUTIterator< T >::init().

◆ getEntriesAt() [6/6]

template<typename T >
const T* ml::LUTData< T >::getEntriesAt ( int  index,
int  row,
int  layer 
) const
inline

Get LUT entries at given index, row and layer (const version)

Definition at line 316 of file mlLUTData.h.

◆ getMaxEntry()

template<typename T >
T ml::LUTData< T >::getMaxEntry ( void  ) const
inline

Get maximum (reference) entry value.

Definition at line 302 of file mlLUTData.h.

Referenced by ml::LUTData< T >::initShared1D(), and ml::LUTData< T >::initShared2D().

◆ getType() [1/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( double *  )
inline

Definition at line 260 of file mlLUTData.h.

References MLdoubleType.

◆ getType() [2/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( float *  )
inline

Definition at line 259 of file mlLUTData.h.

References MLfloatType.

◆ getType() [3/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLint16 )
inline

Definition at line 254 of file mlLUTData.h.

References MLint16Type.

◆ getType() [4/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLint32 )
inline

Definition at line 256 of file mlLUTData.h.

References MLint32Type.

◆ getType() [5/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLint64 )
inline

Definition at line 257 of file mlLUTData.h.

References MLint64Type.

◆ getType() [6/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLint8 )
inline

Definition at line 252 of file mlLUTData.h.

References MLint8Type.

◆ getType() [7/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLldouble )
inline

Definition at line 261 of file mlLUTData.h.

References MLldoubleType.

◆ getType() [8/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLuint16 )
inline

Definition at line 253 of file mlLUTData.h.

References MLuint16Type.

◆ getType() [9/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLuint32 )
inline

Definition at line 255 of file mlLUTData.h.

References MLuint32Type.

◆ getType() [10/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLuint64 )
inline

Definition at line 258 of file mlLUTData.h.

References MLuint64Type.

◆ getType() [11/11]

template<typename T >
MLDataType ml::LUTData< T >::getType ( MLuint8 )
inline

supported basic data types

Definition at line 251 of file mlLUTData.h.

References MLuint8Type.

◆ init() [1/3]

template<typename T >
MLErrorCode ml::LUTData< T >::init ( LUTVisualType  visualType,
int  minIndex,
int  maxIndex,
int  minRow,
int  maxRow,
int  minLayer,
int  maxLayer,
T  maxEntry 
)

Initialize 3D-LUT data for specified visual type, index/row/layer ranges and maximum entry value (= reference value used for scaling LUT entries)

Definition at line 351 of file mlLUTData.h.

References ml::library::init(), ML_BAD_PARAMETER, and ML_RESULT_OK.

◆ init() [2/3]

template<typename T >
MLErrorCode ml::LUTData< T >::init ( LUTVisualType  visualType,
int  minIndex,
int  maxIndex,
int  minRow,
int  maxRow,
T  maxEntry 
)
inline

Initialize 2D-LUT data for specified visual type, index/row ranges and maximum entry value (= reference value used for scaling LUT entries)

Definition at line 270 of file mlLUTData.h.

References ml::library::init().

◆ init() [3/3]

template<typename T >
MLErrorCode ml::LUTData< T >::init ( LUTVisualType  visualType,
int  minIndex,
int  maxIndex,
T  maxEntry 
)
inline

Initialize LUT data for specified visual type, index range and maximum entry value (= reference value used for scaling LUT entries)

Definition at line 265 of file mlLUTData.h.

References ml::library::init().

Referenced by ml::LUTData< T >::clone().

◆ initShared1D()

template<typename T >
MLErrorCode ml::LUTData< T >::initShared1D ( LUTVisualType  visualType,
int  minIndex,
int  maxIndex,
int  row,
int  layer,
LUTData< T > *  srcLutData,
int  srcIndex,
int  srcRow,
int  srcLayer 
)

Initialize 1D-LUT data for specified visual type and index range.

Initialize 1D-LUT data for specified visual type, index range and row/layer.

The LUT data buffer is shared with the data buffer of srcLutData, starting at specified srcIndex, srcRow and srcLayer. An error is returned if the requested visual type and index range is incompatible with the source LUTData.

CAUTION: Make sure that the LUT data buffer of the source LUTData remains valid during the life time of this object or until it is re-initialized.

Definition at line 375 of file mlLUTData.h.

References ml::LUTData< T >::getMaxEntry(), and ML_RESULT_OK.

◆ initShared2D()

template<typename T >
MLErrorCode ml::LUTData< T >::initShared2D ( LUTVisualType  visualType,
int  minRow,
int  maxRow,
int  layer,
LUTData< T > *  srcLutData,
int  srcRow,
int  srcLayer 
)

Initialize 2D-LUT data for specified visual type, row range and layer.

The LUT data buffer is shared with the data buffer of srcLutData, starting at specified srcRow and srcLayer. An error is returned if the requested visual type and row range is incompatible with the source LUTData.

CAUTION: Make sure that the LUT data buffer of the source LUTData remains valid during the life time of this object or until it is re-initialized.

Definition at line 397 of file mlLUTData.h.

References ml::LUTData< T >::getMaxEntry(), and ML_RESULT_OK.

Member Data Documentation

◆ _maxEntry

template<typename T >
T ml::LUTData< T >::_maxEntry
protected

Maximum entry value (= reference value used for scaling LUT entries)

Definition at line 343 of file mlLUTData.h.


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