141 template <
typename T>
147 template <
typename T>
151 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,...
Generate a 2/3D-LUT by blending two 1/2D-LUTs.
bool renderRescaled(LUTDataBase *lutData, double minIndex, double maxIndex) const override
Render rescaled LUT in (previously initialized) LUTData object.
double getNativeMinIndex(void) const override
Get native minimum index.
LUTDimensionality getDimensionality(void) const override
Get dimensionality (1, 2, or 3)
virtual void setInputLUTs(LUTFunction *inLUT1, LUTFunction *inLUT2)
Set input LUTs, set relative flag to true if both input LUTs are relative.
double getNativeMaxValue(void) const override
Get native maximum LUT value.
int getHeight(void) const override
Get native LUT height (= number of rows, numbering starts at 0)
LUTVisualType getRenderType(LUTDataBase *lutData) const override
Get visual type used for rendering.
virtual bool renderLUT(LUTDataBase *lutData, LUTIteratorBase *lutIterator) const
Perform LUT rendering, return true if successful.
LUTDimensionality _dimensionality
Output LUT dimensionality (1, 2, or 3)
virtual void clearLutData(void) const
Clear LUT data objects after rendering.
ML_CLASS_HEADER(LUTFBlend)
LUTDataBase * _lutData1
Rendered LUT data for original input LUTs, used at first and last blending steps.
bool render(LUTDataBase *lutData) const override
Render LUT in (previously initialized) LUTData object.
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 isValid(void) const override
Return true if the LUT function is valid.
int _numBlendingSteps
Number of blending steps.
LUTFBlend(void)
Constructor.
double getNativeMaxIndex(void) const override
Get native maximum index.
LUTFunction * _inLUT1
Input LUTs.
virtual bool startRender(LUTDataBase *lutData, double minIndex, double maxIndex, bool rescaled) const
Initialize LUT data objects for input LUTs for rendering, return true if successful.
double getNativeMinValue(void) const override
Get native minimum LUT value.
void copyData(LUTData< T > *outLutData, LUTDataBase *inLutData, int inRow, int outRow, int outLayer) const
Copy data from inLutData at inRow to outLutData at outRow, outLayer.
LUTData< T > * createInputLUTData(LUTData< T > *outLutData, int blendIndex, LUTFunction *lutFunction, double minIndex, double maxIndex, bool rescaled) const
Allocate, initialize and render LUT data object for input LUT.
virtual void setBlendingSteps(int numBlendingSteps)
Set number of blending steps (= number of rows/layers in output 2/3D-LUT, min = 2)
void blendData(LUTData< T > *outLutData, double blendFactor, int inRow, int outRow, int outLayer) const
Interpolate LUT data between input LUTs 1 and 2 at inRow, store result in outLutData at outRow,...
int getDepth(void) const override
Get native LUT depth (= number of layers, numbering starts at 0)
bool renderLUTNative(LUTDataBase *lutData, LUTIteratorBase *lutIterator) const override
Render the lookup table into lutData using lutIterator to access and increment the LUT pointers.
virtual int getBlendingSteps(void) const
Get number of blending steps.
Common base class for lookup tables.
LUT iterator base class with type independent functionality and declarations.
#define MLLUT_EXPORT
System specific macro definitions.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
LUTDimensionality
LUT dimensionality.
LUTVisualType
LUT visual type constants to identify the visual interpretation of the individual LUT channels.