VTK  9.5.20250807
vtkDiscretizableColorTransferFunction.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
86#ifndef vtkDiscretizableColorTransferFunction_h
87#define vtkDiscretizableColorTransferFunction_h
88
90#include "vtkRenderingCoreModule.h" // For export macro
91#include "vtkSmartPointer.h" // for vtkSmartPointer
92#include "vtkWrappingHints.h" // For VTK_MARSHALMANUAL
93
94VTK_ABI_NAMESPACE_BEGIN
96class vtkLookupTable;
99
102{
103public:
106 void PrintSelf(ostream& os, vtkIndent indent) override;
107
109
113 vtkTypeBool IsOpaque(vtkAbstractArray* scalars, int colorMode, int component) override;
114 vtkTypeBool IsOpaque(vtkAbstractArray* scalars, int colorMode, int component,
115 vtkUnsignedCharArray* ghosts, unsigned char ghostsToSkip = 0xff) override;
117
125 void SetIndexedColorRGB(unsigned int index, const double rgb[3])
126 {
127 this->SetIndexedColor(index, rgb[0], rgb[1], rgb[2]);
128 }
129 void SetIndexedColorRGBA(unsigned int index, const double rgba[4])
130 {
131 this->SetIndexedColor(index, rgba[0], rgba[1], rgba[2], rgba[3]);
132 }
133 void SetIndexedColor(unsigned int index, double r, double g, double b, double a = 1.0);
134
147 void GetIndexedColor(vtkIdType i, double rgba[4]) override;
148
150
155 void SetNumberOfIndexedColors(unsigned int count);
158
165 void Build() override;
166
168
174 vtkSetMacro(Discretize, vtkTypeBool);
175 vtkGetMacro(Discretize, vtkTypeBool);
176 vtkBooleanMacro(Discretize, vtkTypeBool);
178
180
184 virtual void SetUseLogScale(vtkTypeBool useLogScale);
185 vtkGetMacro(UseLogScale, vtkTypeBool);
187
189
194 vtkSetMacro(NumberOfValues, vtkIdType);
195 vtkGetMacro(NumberOfValues, vtkIdType);
197
202 const unsigned char* MapValue(double v) override;
203
208 void GetColor(double v, double rgb[3]) override;
209
213 double GetOpacity(double v) override;
214
220 void MapScalarsThroughTable2(void* input, unsigned char* output, int inputDataType,
221 int numberOfValues, int inputIncrement, int outputFormat) override;
222
230 void SetAlpha(double alpha) override;
231
233
238 void SetNanColor(double r, double g, double b) override;
239 void SetNanColor(const double rgb[3]) override { this->SetNanColor(rgb[0], rgb[1], rgb[2]); }
241
247 void SetNanOpacity(double a) override;
248
253 vtkTypeBool UsingLogScale() override { return this->UseLogScale; }
254
259
261
267
269
272 vtkSetMacro(EnableOpacityMapping, bool);
273 vtkGetMacro(EnableOpacityMapping, bool);
274 vtkBooleanMacro(EnableOpacityMapping, bool);
276
281
282protected:
285
290
295
300
305
307
310
311 void MapDataArrayToOpacity(vtkDataArray* scalars, int component, vtkUnsignedCharArray* colors);
312
313private:
315 void operator=(const vtkDiscretizableColorTransferFunction&) = delete;
316
317 template <typename T, typename VectorGetter>
318 void MapVectorToOpacity(VectorGetter getter, T* scalars, int component, int numberOfComponents,
319 vtkIdType numberOfTuples, unsigned char* colors);
320
321 template <template <class> class VectorGetter>
322 void AllTypesMapVectorToOpacity(int scalarType, void* scalarsPtr, int component,
323 int numberOfComponents, vtkIdType numberOfTuples, unsigned char* colors);
324
325 class vtkInternals;
326 vtkInternals* Internals;
327};
328
329VTK_ABI_NAMESPACE_END
330#endif
Abstract superclass for all arrays.
Defines a transfer function for mapping a property to an RGB color value.
abstract superclass for arrays of numeric data
a combination of vtkColorTransferFunction and vtkLookupTable.
void SetNanColor(const double rgb[3]) override
Set the color to use when a NaN (not a number) is encountered.
unsigned int GetNumberOfIndexedColors()
Set the number of indexed colors.
vtkMTimeType GetMTime() override
Overridden to include the ScalarOpacityFunction's MTime.
vtkIdType NumberOfValues
Number of values to use in discretized color map.
vtkTypeBool IsOpaque(vtkAbstractArray *scalars, int colorMode, int component) override
Returns the negation of EnableOpacityMapping.
void MapDataArrayToOpacity(vtkDataArray *scalars, int component, vtkUnsignedCharArray *colors)
vtkTypeBool UseLogScale
Flag indicating whether log scaling is to be used.
void SetIndexedColorRGBA(unsigned int index, const double rgba[4])
void MapScalarsThroughTable2(void *input, unsigned char *output, int inputDataType, int numberOfValues, int inputIncrement, int outputFormat) override
Map a set of scalars through the lookup table.
void GetColor(double v, double rgb[3]) override
Map one value through the lookup table and return the color as an RGB array of doubles between 0 and ...
void SetNumberOfIndexedColors(unsigned int count)
Set the number of indexed colors.
void GetIndexedColor(vtkIdType i, double rgba[4]) override
Get the "indexed color" assigned to an index.
const unsigned char * MapValue(double v) override
Map one value through the lookup table and return a color defined as a RGBA unsigned char tuple (4 by...
virtual void SetUseLogScale(vtkTypeBool useLogScale)
Get/Set if log scale must be used while mapping scalars to colors.
vtkTypeBool Discretize
Flag indicating whether transfer function is discretized.
void SetAlpha(double alpha) override
Specify an additional opacity (alpha) value to blend with.
virtual vtkPiecewiseFunction * GetScalarOpacityFunction() const
Set/get the opacity function to use.
vtkTypeBool IsOpaque() override
Returns the negation of EnableOpacityMapping.
vtkIdType GetNumberOfAvailableColors() override
Get the number of available colors for mapping to.
vtkSmartPointer< vtkPiecewiseFunction > ScalarOpacityFunction
vtkLookupTable * LookupTable
Internal lookup table used for some aspects of the color mapping.
virtual void SetScalarOpacityFunction(vtkPiecewiseFunction *function)
Set/get the opacity function to use.
void SetIndexedColorRGB(unsigned int index, const double rgb[3])
Add colors to use when IndexedLookup is true.
vtkTypeBool IsOpaque(vtkAbstractArray *scalars, int colorMode, int component, vtkUnsignedCharArray *ghosts, unsigned char ghostsToSkip=0xff) override
Returns the negation of EnableOpacityMapping.
double GetOpacity(double v) override
Return the opacity of a given scalar.
void SetIndexedColor(unsigned int index, double r, double g, double b, double a=1.0)
void SetNanColor(double r, double g, double b) override
Set the color to use when a NaN (not a number) is encountered.
static vtkDiscretizableColorTransferFunction * New()
void SetNanOpacity(double a) override
Set the opacity to use when a NaN (not a number) is encountered.
vtkTypeBool UsingLogScale() override
This should return 1 if the subclass is using log scale for mapping scalars to colors.
void PrintSelf(ostream &os, vtkIndent indent) override
Print method for vtkColorTransferFunction.
void Build() override
Generate discretized lookup table, if applicable.
a simple class to control print indentation
Definition vtkIndent.h:108
map scalar values into colors via a lookup table
Defines a 1D piecewise function.
Hold a reference to a vtkObjectBase instance.
record modification and/or execution time
dynamic, self-adjusting array of unsigned char
int vtkTypeBool
Definition vtkABI.h:64
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_MARSHALMANUAL