129 double minIndex,
double maxIndex)
const override;
141 template <
typename T>
143 double minIndex,
double maxIndex,
bool rescaled)
const;
147 template <
typename T>
151 template <
typename T>
LUTVisualType getVisualType(void) const
Get visual type.
bool renderRescaled(LUTDataBase *lutData, double minIndex, double maxIndex) const override
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
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
bool renderLUTRescaled(LUTDataBase *lutData, LUTIteratorBase *lutIterator, double minIndex, double maxIndex) const override
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
int getDepth(void) const override
Get native LUT depth (= number of layers, numbering starts at 0).
bool renderLUTNative(LUTDataBase *lutData, LUTIteratorBase *lutIterator) const override
virtual int getBlendingSteps(void) const
Get number of blending steps.
LUTFunction(LUTVisualType vt, bool relative)
Constructor.
LUT iterator base class with type independent functionality and declarations.
#define MLLUT_EXPORT
System specific macro definitions.
LUTDimensionality
LUT dimensionality.