VTK
vtkScalarsToColorsPainter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkScalarsToColorsPainter.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=========================================================================*/
28#ifndef vtkScalarsToColorsPainter_h
29#define vtkScalarsToColorsPainter_h
30
31#include "vtkRenderingOpenGLModule.h" // For export macro
32#include "vtkPainter.h"
33#include "vtkSmartPointer.h" // needed for vtkSmartPointer.
34class vtkDataArray;
35class vtkImageData;
40class vtkDataSet;
42
43class VTKRENDERINGOPENGL_EXPORT vtkScalarsToColorsPainter : public vtkPainter
44{
45public:
48 void PrintSelf(ostream& os, vtkIndent indent);
49
59
66
72
81
89
91
98
104
109
111
120
125
139
144
151
152protected:
155
160
167 vtkDataArray* scalars, vtkDataSet* input);
168
172 virtual void PrepareForRendering(vtkRenderer* renderer, vtkActor* actor);
173
179 virtual void MapScalars(vtkDataSet* output,
180 double alpha, int multiply_with_alpha,
181 vtkDataSet* input);
182
188
192 void ReportReferences(vtkGarbageCollector *collector) VTK_OVERRIDE;
193
203
204
208 void UpdateColorTextureMap(double alpha, int multiply_with_alpha);
209
210 // Methods to set the ivars. These are purposefully protected.
211 // The only means of affecting these should be using the vtkInformation
212 // object.
213 vtkSetMacro(UseLookupTableScalarRange, int);
214 vtkSetVector2Macro(ScalarRange, double);
215 vtkSetMacro(ScalarMode, int);
216 vtkSetMacro(ColorMode, int);
217 vtkSetMacro(InterpolateScalarsBeforeMapping, int);
218 vtkSetMacro(ScalarVisibility, int);
219 vtkSetMacro(ScalarMaterialMode, int);
220 vtkSetMacro(ArrayAccessMode, int);
221 vtkSetMacro(ArrayComponent, int);
222 vtkSetMacro(ArrayId, int);
223 vtkSetStringMacro(ArrayName);
224 vtkSetMacro(FieldDataTupleId, vtkIdType);
225
227
233
235 // Lookup table provided via the scalars. This gets preference over the one
236 // set on the mapper by the user.
243 double LastUsedAlpha; // Essential to ensure alpha changes work correctly
244 // for composite datasets.
246 double ScalarRange[2];
249
251
252 // This is set when MapScalars decides to use vertex colors for atleast on
253 // dataset in the current pass.
255
256private:
257 vtkScalarsToColorsPainter(const vtkScalarsToColorsPainter&) VTK_DELETE_FUNCTION;
258 void operator=(const vtkScalarsToColorsPainter&) VTK_DELETE_FUNCTION;
259
260};
261
262#endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
general representation of visualization data
Definition: vtkDataObject.h:65
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
Detect and break reference loops.
topologically and geometrically regular array of data
Definition: vtkImageData.h:46
a simple class to control print indentation
Definition: vtkIndent.h:40
Key for integer values in vtkInformation.
Key for vtkObjectBase values.
Key for string values in vtkInformation.
Store vtkAlgorithm input/output information.
Abstract class for drawing poly data.
Definition: vtkPainter.h:62
abstract specification for renderers
Definition: vtkRenderer.h:64
painter that converts scalars to colors.
void MapScalarsToTexture(vtkDataSet *output, vtkDataArray *scalars, vtkDataSet *input)
Create texture coordinates for the output assuming a texture for the lookuptable has already been cre...
void ReportReferences(vtkGarbageCollector *collector) override
Take part in garbage collection.
void UpdateColorTextureMap(double alpha, int multiply_with_alpha)
Should not be called if CanUseTextureMapForColoring() returns 0.
virtual void PrepareForRendering(vtkRenderer *renderer, vtkActor *actor)
Called just before RenderInternal().
static vtkInformationIntegerKey * SCALAR_VISIBILITY()
Turn on/off flag to control whether scalar data is used to color objects.
virtual vtkDataObject * NewClone(vtkDataObject *data)
Create a new shallow-copied clone for data with no scalars.
static vtkInformationStringKey * ARRAY_NAME()
static vtkInformationIntegerKey * ARRAY_ID()
virtual int GetPremultiplyColorsWithAlpha(vtkActor *actor)
For alpha blending, we sometime premultiply the colors with alpha and change the alpha blending funct...
int CanUseTextureMapForColoring(vtkDataObject *input)
Returns if we can use texture maps for scalar coloring.
static vtkInformationIntegerKey * FIELD_DATA_TUPLE_ID()
static vtkInformationIntegerKey * ARRAY_COMPONENT()
static vtkInformationObjectBaseKey * LOOKUP_TABLE()
Specify a lookup table for the mapper to use.
static vtkInformationIntegerKey * INTERPOLATE_SCALARS_BEFORE_MAPPING()
By default, vertex color is used to map colors to a surface.
virtual vtkDataObject * GetOutput()
Subclasses need to override this to return the output of the pipeline.
virtual void CreateDefaultLookupTable()
Create default lookup table.
virtual void MapScalars(vtkDataSet *output, double alpha, int multiply_with_alpha, vtkDataSet *input)
Generates the colors, if needed.
virtual vtkIdType GetTextureSizeLimit()
Return the texture size limit.
virtual ~vtkScalarsToColorsPainter()
void SetLookupTable(vtkScalarsToColors *lut)
static vtkScalarsToColorsPainter * New()
vtkScalarsToColors * GetLookupTable()
vtkSmartPointer< vtkScalarsToColors > ScalarsLookupTable
static vtkInformationDoubleVectorKey * SCALAR_RANGE()
Specify range in terms of scalar minimum and maximum (smin,smax).
static vtkInformationIntegerKey * SCALAR_MATERIAL_MODE()
Set the light-model color mode.
static vtkInformationIntegerKey * SCALAR_MODE()
Control how the painter works with scalar point data and cell attribute data.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
static vtkInformationIntegerKey * ARRAY_ACCESS_MODE()
Controls what data array is used to generate colors.
vtkSmartPointer< vtkImageData > ColorTextureMap
static vtkInformationIntegerKey * COLOR_MODE()
Control how the scalar data is mapped to colors.
virtual void ProcessInformation(vtkInformation *)
Called before RenderInternal() if the Information has been changed since the last time this method wa...
static vtkInformationIntegerKey * USE_LOOKUP_TABLE_SCALAR_RANGE()
Control whether the mapper sets the lookuptable range based on its own ScalarRange,...
Superclass for mapping scalar values to colors.
record modification and/or execution time
Definition: vtkTimeStamp.h:36
@ alpha
Definition: vtkX3D.h:250
@ data
Definition: vtkX3D.h:315
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int vtkIdType
Definition: vtkType.h:287