32 #ifndef vtkColorTransferFunction_h
33 #define vtkColorTransferFunction_h
35 #include "vtkRenderingCoreModule.h"
39 VTK_ABI_NAMESPACE_BEGIN
40 class vtkColorTransferFunctionInternals;
46 #define VTK_CTF_DIVERGING 3
47 #define VTK_CTF_LAB_CIEDE2000 4
48 #define VTK_CTF_STEP 5
49 #define VTK_CTF_PROLAB 6
51 #define VTK_CTF_LINEAR 0
52 #define VTK_CTF_LOG10 1
79 int AddRGBPoint(
double x,
double r,
double g,
double b);
80 int AddRGBPoint(
double x,
double r,
double g,
double b,
double midpoint,
double sharpness);
83 int AddHSVPoint(
double x,
double h,
double s,
double v);
84 int AddHSVPoint(
double x,
double h,
double s,
double v,
double midpoint,
double sharpness);
85 int RemovePoint(
double x);
94 double x1,
double r1,
double g1,
double b1,
double x2,
double r2,
double g2,
double b2);
96 double x1,
double h1,
double s1,
double v1,
double x2,
double h2,
double s2,
double v2);
102 void RemoveAllPoints();
108 void GetColor(
double x,
double rgb[3])
override;
114 double GetRedValue(
double x);
115 double GetGreenValue(
double x);
116 double GetBlueValue(
double x);
125 int GetNodeValue(
int index,
double val[6]);
126 int SetNodeValue(
int index,
double val[6]);
132 const unsigned char*
MapValue(
double v)
override;
141 arg1 = this->
Range[0];
142 arg2 = this->
Range[1];
152 int AdjustRange(
double range[2]);
161 void GetTable(
double x1,
double x2,
int n,
double* table);
162 void GetTable(
double x1,
double x2,
int n,
float* table);
163 const unsigned char* GetTable(
double x1,
double x2,
int n);
175 void BuildFunctionFromTable(
double x1,
double x2,
int size,
double* table);
212 vtkGetMacro(ColorSpace,
int);
224 vtkSetMacro(Scale,
int);
227 vtkGetMacro(Scale,
int);
236 vtkSetVector3Macro(NanColor,
double);
237 vtkGetVector3Macro(NanColor,
double);
245 vtkSetMacro(NanOpacity,
double);
246 vtkGetMacro(NanOpacity,
double);
257 this->SetNanColor(r, g, b);
258 this->SetNanOpacity(a);
263 this->SetNanColorRGBA(rgba[0], rgba[1], rgba[2], rgba[3]);
272 vtkSetVector3Macro(BelowRangeColor,
double);
273 vtkGetVector3Macro(BelowRangeColor,
double);
290 vtkSetVector3Macro(AboveRangeColor,
double);
291 vtkGetVector3Macro(AboveRangeColor,
double);
310 double* GetDataPointer();
317 void FillFromDataPointer(
int n,
double* ptr);
324 int numberOfComponents,
int vectorComponent,
int outputFormat)
override;
335 vtkBooleanMacro(AllowDuplicateScalars,
vtkTypeBool);
355 int EstimateMinNumberOfSamples(
double const& x1,
double const& x2);
399 double BelowRangeColor[3];
409 double AboveRangeColor[3];
429 unsigned char UnsignedCharRGBAValue[4];
459 void SortAndUpdateRange();
471 void MovePoint(
double oldX,
double newX);
476 double FindMinimumXDistance();
483 VTK_ABI_NAMESPACE_END
virtual void SetNanColorRGBA(double r, double g, double b, double a)
Set the RGBA color to use when a NaN (not a number) is encountered.
void SetColorSpaceToProlab()
Set/Get the color space used for interpolation: RGB, HSV, CIELAB, PROLAB, Diverging or Step...
double NanOpacity
The opacity to use for not-a-number.
int Scale
The color interpolation scale (linear or logarithmic).
Abstract superclass for all arrays.
record modification and/or execution time
void SetScaleToLinear()
Set the type of scale to use, linear or logarithmic.
void SetRange(double, double) override
Set the range of scalars being mapped.
vtkColorTransferFunctionInternals * Internal
dynamic, self-adjusting array of double
virtual const unsigned char * MapValue(double v)
Map one value through the lookup table and return a color defined as an RGBA unsigned char tuple (4 b...
Superclass for mapping scalar values to colors.
auto Range(IterablePtr iterable, Options &&...opts) -> typename detail::IterableTraits< typename detail::StripPointers< IterablePtr >::type >::RangeType
Generate an iterable STL proxy object for a VTK container.
static vtkScalarsToColors * New()
#define VTK_MARSHALMANUAL
double * GetColor(double x)
Returns an RGB color for the specified scalar value.
void SetColorSpaceToLab()
Set/Get the color space used for interpolation: RGB, HSV, CIELAB, PROLAB, Diverging or Step...
a simple class to control print indentation
virtual void GetColor(double v, double rgb[3])
Map one value through the lookup table and store the color as an RGB array of doubles between 0 and 1...
void UpdateRange(A &min, A &max, const A &value)
Update an existing min - max range with a new prospective value.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool HSVWrap
Specify if HSV is wrap or not.
void SetColorSpaceToRGB()
Set/Get the color space used for interpolation: RGB, HSV, CIELAB, PROLAB, Diverging or Step...
virtual void GetRange(double _arg[2])
Returns min and max position of all function points.
vtkTypeBool AllowDuplicateScalars
If on, the same scalar value may have more than one node assigned to it.
vtkTypeBool UseBelowRangeColor
Flag indicating whether below-range color should be used.
#define VTK_SIZEHINT(...)
double * GetRange() override
Returns min and max position of all function points.
vtkTypeBool UseAboveRangeColor
Flag indicating whether below-range color should be used.
virtual void GetRange(double &arg1, double &arg2)
Returns min and max position of all function points.
void SetColorSpaceToDiverging()
Set/Get the color space used for interpolation: RGB, HSV, CIELAB, PROLAB, Diverging or Step...
#define VTK_CTF_LAB_CIEDE2000
Defines a transfer function for mapping a property to an RGB color value.
virtual void GetIndexedColor(vtkIdType i, double rgba[4])
Get the "indexed color" assigned to an index.
int TableSize
Temporary storage for the size of the table.
void SetColorSpaceToStep()
Set/Get the color space used for interpolation: RGB, HSV, CIELAB, PROLAB, Diverging or Step...
vtkTypeBool Clamping
Determines the function value outside of defined points Zero = always return 0.0 outside of defined p...
double * Function
Temporary array to store data from the nodes.
void SetScaleToLog10()
Set the type of scale to use, linear or logarithmic.
virtual void DeepCopy(vtkScalarsToColors *o)
Copy the contents from another object.
void SetColorSpaceToHSV()
Set/Get the color space used for interpolation: RGB, HSV, CIELAB, PROLAB, Diverging or Step...
void SetRange(const double rng[2]) override
Set the range of scalars being mapped.
#define VTK_CTF_DIVERGING
int ColorSpace
The color space in which interpolation is performed.
virtual vtkIdType GetNumberOfAvailableColors()
Get the number of available colors for mapping to.
void SetColorSpaceToLabCIEDE2000()
Set/Get the color space used for interpolation: RGB, HSV, CIELAB, PROLAB, Diverging or Step...
void SetNanColorRGBA(double rgba[4])
Set the RGBA color to use when a NaN (not a number) is encountered.
void MapScalarsThroughTable(vtkDataArray *scalars, unsigned char *output, int outputFormat)
Map a set of scalars through the lookup table in a single operation.