13#ifndef ML_LUTFCOMPOSE_H
14#define ML_LUTFCOMPOSE_H
141 template <
typename T>
Untyped base class for LUTData template classes.
A LUTData object stores an instance of a LUT, rendered for a specified visual type,...
A LUT function composing several input LUTs into a single output LUT.
double getNativeMinValue(void) const override
Get native minimum LUT value.
int getHeight(void) const override
Get native LUT height (= number of rows, numbering starts at 0)
int getDepth(void) const override
Get native LUT depth (= number of layers, numbering starts at 0)
static unsigned int defaultResolution
Default value for the intermediate resolution.
double getNativeMaxIndex(void) const override
Get native maximum index.
bool renderRescaled(LUTDataBase *lutData, double minIndex, double maxIndex) const override
Render rescaled LUT in (previously initialized) LUTData object.
double getNativeMaxValue(void) const override
Get native maximum LUT value.
bool isValid(void) const override
Return true if the LUT function is valid.
void clear(void)
Clear list of input LUTs.
LUTVisualType getRenderType(LUTDataBase *lutData) const override
Get visual type used for rendering.
ML_CLASS_HEADER(LUTFCompose)
unsigned int getResolution(void) const
Get intermediate resolution.
unsigned int getNumInputLUTs(void) const
Get number of input LUTs.
double getNativeMinIndex(void) const override
Get native minimum index.
unsigned int _resolution
Intermediate resolution.
bool renderLUTRescaled(LUTDataBase *lutData, LUTIteratorBase *lutIterator, double minIndex, double maxIndex) const override
Render rescaled LUT into lutData using lutIterator to access and increment the LUT pointers.
bool render(LUTDataBase *lutData) const override
Render LUT in (previously initialized) LUTData object.
unsigned int getInputLUTWidth(unsigned int index) const
Get the width of the index range for which the specified input LUT needs to be rendered.
bool renderLUT(LUTData< T > *lutData, LUTIterator< T > *lutIterator, double minIndex, double maxIndex, bool rescale) const
Render the output LUT into lutData using lutIterator to access and increment the LUT pointers.
void setResolution(unsigned int resolution)
Set intermediate resolution (if not obtained from input LUT)
void addInputLUT(const LUTFunction &inputLUT)
Add an input LUT.
std::vector< const LUTFunction * > _inputLUTs
List of input LUTs.
LUTFCompose(void)
Constructor.
bool renderLUTNative(LUTDataBase *lutData, LUTIteratorBase *lutIterator) const override
Render the lookup table into lutData using lutIterator to access and increment the LUT pointers.
const LUTFunction * getInputLUT(unsigned int i) const
Get pointer to i-th input LUT (or NULL if out of range)
Common base class for lookup tables.
void changed(void)
Assign a new LUT ID.
LUT iterator base class with type independent functionality and declarations.
The LUTIterator class template is used by a LUTFunction object for rendering into a LUTData object.
#define MLLUT_EXPORT
System specific macro definitions.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
LUTVisualType
LUT visual type constants to identify the visual interpretation of the individual LUT channels.