VTK  9.2.6
vtkDiscretizableColorTransferFunction.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkDiscretizableColorTransferFunction.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
58#ifndef vtkDiscretizableColorTransferFunction_h
59#define vtkDiscretizableColorTransferFunction_h
60
62#include "vtkRenderingCoreModule.h" // For export macro
63#include "vtkSmartPointer.h" // for vtkSmartPointer
64
66class vtkLookupTable;
69
70class VTKRENDERINGCORE_EXPORT vtkDiscretizableColorTransferFunction
72{
73public:
76 void PrintSelf(ostream& os, vtkIndent indent) override;
77
79
82 int IsOpaque() override;
83 int IsOpaque(vtkAbstractArray* scalars, int colorMode, int component) override;
84 int IsOpaque(vtkAbstractArray* scalars, int colorMode, int component,
85 vtkUnsignedCharArray* ghosts, unsigned char ghostsToSkip = 0xff) override;
87
95 void SetIndexedColorRGB(unsigned int index, const double rgb[3])
96 {
97 this->SetIndexedColor(index, rgb[0], rgb[1], rgb[2]);
98 }
99 void SetIndexedColorRGBA(unsigned int index, const double rgba[4])
100 {
101 this->SetIndexedColor(index, rgba[0], rgba[1], rgba[2], rgba[3]);
102 }
103 void SetIndexedColor(unsigned int index, double r, double g, double b, double a = 1.0);
104
117 void GetIndexedColor(vtkIdType i, double rgba[4]) override;
118
120
125 void SetNumberOfIndexedColors(unsigned int count);
128
135 void Build() override;
136
138
144 vtkSetMacro(Discretize, vtkTypeBool);
145 vtkGetMacro(Discretize, vtkTypeBool);
146 vtkBooleanMacro(Discretize, vtkTypeBool);
148
150
154 virtual void SetUseLogScale(int useLogScale);
155 vtkGetMacro(UseLogScale, int);
157
159
164 vtkSetMacro(NumberOfValues, vtkIdType);
165 vtkGetMacro(NumberOfValues, vtkIdType);
167
172 const unsigned char* MapValue(double v) override;
173
178 void GetColor(double v, double rgb[3]) override;
179
183 double GetOpacity(double v) override;
184
190 void MapScalarsThroughTable2(void* input, unsigned char* output, int inputDataType,
191 int numberOfValues, int inputIncrement, int outputFormat) override;
192
200 void SetAlpha(double alpha) override;
201
203
208 void SetNanColor(double r, double g, double b) override;
209 void SetNanColor(const double rgb[3]) override { this->SetNanColor(rgb[0], rgb[1], rgb[2]); }
211
217 void SetNanOpacity(double a) override;
218
223 int UsingLogScale() override { return this->UseLogScale; }
224
229
231
237
239
242 vtkSetMacro(EnableOpacityMapping, bool);
243 vtkGetMacro(EnableOpacityMapping, bool);
244 vtkBooleanMacro(EnableOpacityMapping, bool);
246
251
252protected:
255
260
265
270
275
277
280
281 void MapDataArrayToOpacity(vtkDataArray* scalars, int component, vtkUnsignedCharArray* colors);
282
283private:
285 void operator=(const vtkDiscretizableColorTransferFunction&) = delete;
286
287 template <typename T, typename VectorGetter>
288 void MapVectorToOpacity(VectorGetter getter, T* scalars, int component, int numberOfComponents,
289 vtkIdType numberOfTuples, unsigned char* colors);
290
291 template <template <class> class VectorGetter>
292 void AllTypesMapVectorToOpacity(int scalarType, void* scalarsPtr, int component,
293 int numberOfComponents, vtkIdType numberOfTuples, unsigned char* colors);
294
295 class vtkInternals;
296 vtkInternals* Internals;
297};
298
299#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.
int UseLogScale
Flag indicating whether log scaling is to be used.
void MapDataArrayToOpacity(vtkDataArray *scalars, int component, vtkUnsignedCharArray *colors)
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...
int IsOpaque(vtkAbstractArray *scalars, int colorMode, int component) override
Returns the negation of EnableOpacityMapping.
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.
vtkIdType GetNumberOfAvailableColors() override
Get the number of available colors for mapping to.
int IsOpaque(vtkAbstractArray *scalars, int colorMode, int component, vtkUnsignedCharArray *ghosts, unsigned char ghostsToSkip=0xff) override
Returns the negation of EnableOpacityMapping.
vtkSmartPointer< vtkPiecewiseFunction > ScalarOpacityFunction
virtual void SetUseLogScale(int useLogScale)
Get/Set if log scale must be used while mapping scalars to colors.
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.
double GetOpacity(double v) override
Return the opacity of a given scalar.
int IsOpaque() override
Returns the negation of EnableOpacityMapping.
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.
int 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:49
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:69
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287