VTK  9.3.20240424
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
93VTK_ABI_NAMESPACE_BEGIN
95class vtkLookupTable;
98
99class VTKRENDERINGCORE_EXPORT vtkDiscretizableColorTransferFunction
101{
102public:
105 void PrintSelf(ostream& os, vtkIndent indent) override;
106
108
112 vtkTypeBool IsOpaque(vtkAbstractArray* scalars, int colorMode, int component) override;
113 vtkTypeBool IsOpaque(vtkAbstractArray* scalars, int colorMode, int component,
114 vtkUnsignedCharArray* ghosts, unsigned char ghostsToSkip = 0xff) override;
116
124 void SetIndexedColorRGB(unsigned int index, const double rgb[3])
125 {
126 this->SetIndexedColor(index, rgb[0], rgb[1], rgb[2]);
127 }
128 void SetIndexedColorRGBA(unsigned int index, const double rgba[4])
129 {
130 this->SetIndexedColor(index, rgba[0], rgba[1], rgba[2], rgba[3]);
131 }
132 void SetIndexedColor(unsigned int index, double r, double g, double b, double a = 1.0);
133
146 void GetIndexedColor(vtkIdType i, double rgba[4]) override;
147
149
154 void SetNumberOfIndexedColors(unsigned int count);
157
164 void Build() override;
165
167
173 vtkSetMacro(Discretize, vtkTypeBool);
174 vtkGetMacro(Discretize, vtkTypeBool);
175 vtkBooleanMacro(Discretize, vtkTypeBool);
177
179
183 virtual void SetUseLogScale(vtkTypeBool useLogScale);
184 vtkGetMacro(UseLogScale, vtkTypeBool);
186
188
193 vtkSetMacro(NumberOfValues, vtkIdType);
194 vtkGetMacro(NumberOfValues, vtkIdType);
196
201 const unsigned char* MapValue(double v) override;
202
207 void GetColor(double v, double rgb[3]) override;
208
212 double GetOpacity(double v) override;
213
219 void MapScalarsThroughTable2(void* input, unsigned char* output, int inputDataType,
220 int numberOfValues, int inputIncrement, int outputFormat) override;
221
229 void SetAlpha(double alpha) override;
230
232
237 void SetNanColor(double r, double g, double b) override;
238 void SetNanColor(const double rgb[3]) override { this->SetNanColor(rgb[0], rgb[1], rgb[2]); }
240
246 void SetNanOpacity(double a) override;
247
252 vtkTypeBool UsingLogScale() override { return this->UseLogScale; }
253
258
260
266
268
271 vtkSetMacro(EnableOpacityMapping, bool);
272 vtkGetMacro(EnableOpacityMapping, bool);
273 vtkBooleanMacro(EnableOpacityMapping, bool);
275
280
281protected:
284
289
294
299
304
306
309
310 void MapDataArrayToOpacity(vtkDataArray* scalars, int component, vtkUnsignedCharArray* colors);
311
312private:
314 void operator=(const vtkDiscretizableColorTransferFunction&) = delete;
315
316 template <typename T, typename VectorGetter>
317 void MapVectorToOpacity(VectorGetter getter, T* scalars, int component, int numberOfComponents,
318 vtkIdType numberOfTuples, unsigned char* colors);
319
320 template <template <class> class VectorGetter>
321 void AllTypesMapVectorToOpacity(int scalarType, void* scalarsPtr, int component,
322 int numberOfComponents, vtkIdType numberOfTuples, unsigned char* colors);
323
324 class vtkInternals;
325 vtkInternals* Internals;
326};
327
328VTK_ABI_NAMESPACE_END
329#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:315
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270