VTK
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 =========================================================================*/
45 #ifndef vtkDiscretizableColorTransferFunction_h
46 #define vtkDiscretizableColorTransferFunction_h
47 
48 #include "vtkRenderingCoreModule.h" // For export macro
50 #include "vtkSmartPointer.h" // for vtkSmartPointer
51 
53 class vtkLookupTable;
55 
57 {
58 public:
61  void PrintSelf(ostream& os, vtkIndent indent);
62 
66  int IsOpaque();
67 
75  void SetIndexedColor(unsigned int index, const double rgb[3])
76  { this->SetIndexedColor(index, rgb[0], rgb[1], rgb[2]); }
77  void SetIndexedColor(unsigned int index, double r, double g, double b);
78 
91  virtual void GetIndexedColor(vtkIdType i, double rgba[4]);
92 
94 
99  void SetNumberOfIndexedColors(unsigned int count);
100  unsigned int GetNumberOfIndexedColors();
102 
109  virtual void Build();
110 
112 
118  vtkSetMacro(Discretize, int);
119  vtkGetMacro(Discretize, int);
120  vtkBooleanMacro(Discretize, int);
122 
124 
128  virtual void SetUseLogScale(int useLogScale);
129  vtkGetMacro(UseLogScale, int);
131 
133 
138  vtkSetMacro(NumberOfValues, vtkIdType);
139  vtkGetMacro(NumberOfValues, vtkIdType);
141 
146  virtual unsigned char *MapValue(double v);
147 
152  virtual void GetColor(double v, double rgb[3]);
153 
157  virtual double GetOpacity(double v);
158 
160 
175  virtual vtkUnsignedCharArray *MapScalars(vtkDataArray *scalars, int colorMode,
176  int component);
177  virtual vtkUnsignedCharArray *MapScalars(vtkAbstractArray *scalars, int colorMode,
178  int component);
180 
187  VTK_LEGACY(double* GetRGBPoints());
188 
196  virtual void SetAlpha(double alpha);
197 
199 
204  virtual void SetNanColor(double r, double g, double b);
205  virtual void SetNanColor(double rgb[3]) {
206  this->SetNanColor(rgb[0], rgb[1], rgb[2]);
207  }
209 
214  virtual int UsingLogScale()
215  { return this->UseLogScale; }
216 
221 
223 
226  virtual void SetScalarOpacityFunction(vtkPiecewiseFunction *function);
227  virtual vtkPiecewiseFunction* GetScalarOpacityFunction() const;
229 
231 
234  vtkSetMacro(EnableOpacityMapping, bool)
235  vtkGetMacro(EnableOpacityMapping, bool)
236  vtkBooleanMacro(EnableOpacityMapping, bool)
238 
242  virtual vtkMTimeType GetMTime();
243 
244 protected:
246  ~vtkDiscretizableColorTransferFunction();
247 
251  int Discretize;
252 
256  int UseLogScale;
257 
261  vtkIdType NumberOfValues;
262 
266  vtkLookupTable* LookupTable;
267 
269 
270  bool EnableOpacityMapping;
271  vtkSmartPointer<vtkPiecewiseFunction> ScalarOpacityFunction;
272 
273  void MapDataArrayToOpacity(
274  vtkDataArray *scalars, int component, vtkUnsignedCharArray* colors);
275 
276 private:
277  vtkDiscretizableColorTransferFunction(const vtkDiscretizableColorTransferFunction&) VTK_DELETE_FUNCTION;
278  void operator=(const vtkDiscretizableColorTransferFunction&) VTK_DELETE_FUNCTION;
279 
280  template<typename T, typename VectorGetter>
281  void MapVectorToOpacity (
282  VectorGetter getter, T* scalars, int component,
283  int numberOfComponents, vtkIdType numberOfTuples, unsigned char* colors);
284 
285  template<template<class> class VectorGetter>
286  void AllTypesMapVectorToOpacity (
287  int scalarType,
288  void* scalarsPtr, int component,
289  int numberOfComponents, vtkIdType numberOfTuples, unsigned char* colors);
290 
291  class vtkInternals;
292  vtkInternals* Internals;
293 };
294 
295 #endif
vtkTimeStamp BuildTime
virtual vtkIdType GetNumberOfAvailableColors()
Get the number of available colors for mapping to.
Defines a 1D piecewise function.
Abstract superclass for all arrays.
record modification and/or execution time
Definition: vtkTimeStamp.h:35
static vtkColorTransferFunction * New()
virtual void SetNanColor(double rgb[3])
Set the color to use when a NaN (not a number) is encountered.
map scalar values into colors via a lookup table
virtual void SetAlpha(double alpha)
Specify an additional opacity (alpha) value to blend with.
virtual unsigned char * MapValue(double v)
Map one value through the lookup table.
Hold a reference to a vtkObjectBase instance.
int vtkIdType
Definition: vtkType.h:287
virtual int UsingLogScale()
This should return 1 if the subclass is using log scale for mapping scalars to colors.
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248
virtual void SetNanColor(double, double, double)
Set the RGB color to use when a NaN (not a number) is encountered.
void PrintSelf(ostream &os, vtkIndent indent)
Print method for vtkColorTransferFunction.
virtual double GetOpacity(double v)
Map one value through the lookup table and return the alpha value (the opacity) as a double between 0...
virtual int IsOpaque()
Return true if all of the values defining the mapping have an opacity equal to 1. ...
double * GetColor(double x)
Returns an RGB color for the specified scalar value.
virtual void GetIndexedColor(vtkIdType idx, double rgba[4])
Return a color given an integer index.
a simple class to control print indentation
Definition: vtkIndent.h:39
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
dynamic, self-adjusting array of unsigned char
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
a combination of vtkColorTransferFunction and vtkLookupTable.
virtual vtkUnsignedCharArray * MapScalars(vtkDataArray *scalars, int colorMode, int component)
Internal methods that map a data array into a 4-component, unsigned char RGBA array.
Defines a transfer function for mapping a property to an RGB color value.
virtual void Build()
Perform any processing required (if any) before processing scalars.
void SetIndexedColor(unsigned int index, const double rgb[3])
Add colors to use when IndexedLookup is true.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.