VTK  9.2.6
vtkMapper.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkMapper.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=========================================================================*/
53#ifndef vtkMapper_h
54#define vtkMapper_h
55
56#include "vtkAbstractMapper3D.h"
57#include "vtkRenderingCoreModule.h" // For export macro
58#include "vtkSmartPointer.h" // needed for vtkSmartPointer.
59#include "vtkSystemIncludes.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS
60#include <vector> // for method args
61
62#define VTK_RESOLVE_OFF 0
63#define VTK_RESOLVE_POLYGON_OFFSET 1
64#define VTK_RESOLVE_SHIFT_ZBUFFER 2
65
66#define VTK_GET_ARRAY_BY_ID 0
67#define VTK_GET_ARRAY_BY_NAME 1
68
69#define VTK_MATERIALMODE_DEFAULT 0
70#define VTK_MATERIALMODE_AMBIENT 1
71#define VTK_MATERIALMODE_DIFFUSE 2
72#define VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE 3
73
74class vtkActor;
75class vtkDataSet;
76class vtkDataObject;
77class vtkFloatArray;
79class vtkImageData;
80class vtkProp;
81class vtkRenderer;
83class vtkSelection;
85class vtkWindow;
86
87class VTKRENDERINGCORE_EXPORT vtkMapper : public vtkAbstractMapper3D
88{
89public:
91 void PrintSelf(ostream& os, vtkIndent indent) override;
92
96 void ShallowCopy(vtkAbstractMapper* m) override;
97
103
108 virtual void Render(vtkRenderer* ren, vtkActor* a) = 0;
109
116
118
124
130
132
135 vtkSetMacro(ScalarVisibility, vtkTypeBool);
136 vtkGetMacro(ScalarVisibility, vtkTypeBool);
137 vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
139
141
147 vtkSetMacro(Static, vtkTypeBool);
148 vtkGetMacro(Static, vtkTypeBool);
149 vtkBooleanMacro(Static, vtkTypeBool);
151
153
165 vtkSetMacro(ColorMode, int);
166 vtkGetMacro(ColorMode, int);
167 void SetColorModeToDefault() { this->SetColorMode(VTK_COLOR_MODE_DEFAULT); }
171
175 const char* GetColorModeAsString();
176
178
184 vtkSetMacro(InterpolateScalarsBeforeMapping, vtkTypeBool);
185 vtkGetMacro(InterpolateScalarsBeforeMapping, vtkTypeBool);
186 vtkBooleanMacro(InterpolateScalarsBeforeMapping, vtkTypeBool);
188
190
198 vtkSetMacro(UseLookupTableScalarRange, vtkTypeBool);
199 vtkGetMacro(UseLookupTableScalarRange, vtkTypeBool);
200 vtkBooleanMacro(UseLookupTableScalarRange, vtkTypeBool);
202
204
209 vtkSetVector2Macro(ScalarRange, double);
210 vtkGetVectorMacro(ScalarRange, double, 2);
212
226 // When ScalarMode is set to use Field Data (ScalarModeToFieldData),
227 // you must call SelectColorArray to choose the field data array to
228 // be used to color cells. In this mode, the default behavior is to
229 // treat the field data tuples as being associated with cells. If
230 // the poly data contains triangle strips, the array is expected to
231 // contain the cell data for each mini-cell formed by any triangle
232 // strips in the poly data as opposed to treating them as a single
233 // tuple that applies to the entire strip. This mode can also be
234 // used to color the entire poly data by a single color obtained by
235 // mapping the tuple at a given index in the field data array
236 // through the color map. Use SetFieldDataTupleId() to specify
237 // the tuple index.
238 vtkSetMacro(ScalarMode, int);
239 vtkGetMacro(ScalarMode, int);
240 void SetScalarModeToDefault() { this->SetScalarMode(VTK_SCALAR_MODE_DEFAULT); }
244 {
245 this->SetScalarMode(VTK_SCALAR_MODE_USE_POINT_FIELD_DATA);
246 }
248 {
249 this->SetScalarMode(VTK_SCALAR_MODE_USE_CELL_FIELD_DATA);
250 }
252
254
259 void SelectColorArray(int arrayNum);
260 void SelectColorArray(const char* arrayName);
262
263 // When ScalarMode is set to UseFieldData, set the index of the
264 // tuple by which to color the entire data set. By default, the
265 // index is -1, which means to treat the field data array selected
266 // with SelectColorArray as having a scalar value for each cell.
267 // Indices of 0 or higher mean to use the tuple at the given index
268 // for coloring the entire data set.
269 vtkSetMacro(FieldDataTupleId, vtkIdType);
270 vtkGetMacro(FieldDataTupleId, vtkIdType);
271
273
278 void ColorByArrayComponent(int arrayNum, int component);
279 void ColorByArrayComponent(const char* arrayName, int component);
281
285 vtkGetStringMacro(ArrayName);
286 vtkSetStringMacro(ArrayName);
287 vtkGetMacro(ArrayId, int);
288 vtkSetMacro(ArrayId, int);
289 vtkGetMacro(ArrayAccessMode, int);
290 vtkSetMacro(ArrayAccessMode, int);
291 vtkGetMacro(ArrayComponent, int);
292 vtkSetMacro(ArrayComponent, int);
293
298
300
310 static void SetResolveCoincidentTopology(int val);
313 static void SetResolveCoincidentTopologyToOff() { SetResolveCoincidentTopology(VTK_RESOLVE_OFF); }
315 {
316 SetResolveCoincidentTopology(VTK_RESOLVE_POLYGON_OFFSET);
317 }
319 {
320 SetResolveCoincidentTopology(VTK_RESOLVE_SHIFT_ZBUFFER);
321 }
323
325
330 static void SetResolveCoincidentTopologyPolygonOffsetParameters(double factor, double units);
331 static void GetResolveCoincidentTopologyPolygonOffsetParameters(double& factor, double& units);
333
335
340 void GetRelativeCoincidentTopologyPolygonOffsetParameters(double& factor, double& units);
342
344
349 static void SetResolveCoincidentTopologyLineOffsetParameters(double factor, double units);
350 static void GetResolveCoincidentTopologyLineOffsetParameters(double& factor, double& units);
352
354
358 void SetRelativeCoincidentTopologyLineOffsetParameters(double factor, double units);
359 void GetRelativeCoincidentTopologyLineOffsetParameters(double& factor, double& units);
361
363
371
373
380
382
386 void GetCoincidentTopologyPolygonOffsetParameters(double& factor, double& units);
387 void GetCoincidentTopologyLineOffsetParameters(double& factor, double& units);
390
392
402
404
408 static void SetResolveCoincidentTopologyZShift(double val);
411
416 double* GetBounds() VTK_SIZEHINT(6) override;
417 void GetBounds(double bounds[6]) override { this->vtkAbstractMapper3D::GetBounds(bounds); }
418
424 void SetRenderTime(double time) { this->RenderTime = time; }
425 vtkGetMacro(RenderTime, double);
426
432
439 vtkDataSet* GetInputAsDataSet() { return this->GetInput(); }
440
442
449 virtual vtkUnsignedCharArray* MapScalars(double alpha);
450 virtual vtkUnsignedCharArray* MapScalars(double alpha, int& cellFlag);
451 virtual vtkUnsignedCharArray* MapScalars(vtkDataSet* input, double alpha);
452 virtual vtkUnsignedCharArray* MapScalars(vtkDataSet* input, double alpha, int& cellFlag);
454
456
461 virtual bool HasOpaqueGeometry();
464
471 virtual bool GetSupportsSelection() { return false; }
472
478 std::vector<unsigned int>& /* pixeloffsets */, vtkProp* /* prop */)
479 {
480 }
481
491
497
502
507
512
514
518 vtkGetObjectMacro(Selection, vtkSelection);
521
522protected:
524 ~vtkMapper() override;
525
526 // color mapped colors
528
529 // Use texture coordinates for coloring.
531 // Coordinate for each point.
533 // 1D ColorMap used for the texture image.
535 void MapScalarsToTexture(vtkAbstractArray* scalars, double alpha);
536
540 double ScalarRange[2];
542
545
547
548 // for coloring by a component of a field data array
553
554 // If coloring by field data, which tuple to use to color the entire
555 // data set. If -1, treat array values as cell data.
557
559
565
566 vtkSelection* Selection = nullptr;
567
568private:
569 vtkMapper(const vtkMapper&) = delete;
570 void operator=(const vtkMapper&) = delete;
571};
572
573#endif
Abstract superclass for all arrays.
abstract class specifies interface to map 3D data
virtual double * GetBounds()=0
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
abstract class specifies interface to map data
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
general representation of visualization data
Definition: vtkDataObject.h:66
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:42
topologically and geometrically regular array of data
Definition: vtkImageData.h:54
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:88
virtual bool HasOpaqueGeometry()
Some introspection on the type of data the mapper will render used by props to determine if they shou...
const char * GetScalarModeAsString()
Return the method for obtaining scalar data.
~vtkMapper() override
virtual int CanUseTextureMapForColoring(vtkDataObject *input)
Returns if we can use texture maps for scalar coloring.
void GetCoincidentTopologyLineOffsetParameters(double &factor, double &units)
Get the net parameters for handling coincident topology obtained by summing the global values with th...
static int GetResolveCoincidentTopology()
Set/Get a global flag that controls whether coincident topology (e.g., a line on top of a polygon) is...
void SelectColorArray(const char *arrayName)
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which array to use f...
void SetScalarModeToUsePointFieldData()
Definition: vtkMapper.h:243
vtkScalarsToColors * LookupTable
Definition: vtkMapper.h:537
double CoincidentPolygonFactor
Definition: vtkMapper.h:560
void SetColorModeToMapScalars()
default (ColorModeToDefault), unsigned char scalars are treated as colors, and NOT mapped through the...
Definition: vtkMapper.h:168
int ColorMode
Definition: vtkMapper.h:543
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetScalarModeToUseCellData()
Definition: vtkMapper.h:242
void SetLookupTable(vtkScalarsToColors *lut)
Specify a lookup table for the mapper to use.
virtual vtkUnsignedCharArray * MapScalars(double alpha)
Map the scalars (if there are any scalars and ScalarVisibility is on) through the lookup table,...
vtkTypeBool InterpolateScalarsBeforeMapping
Definition: vtkMapper.h:530
void SetColorModeToDefault()
default (ColorModeToDefault), unsigned char scalars are treated as colors, and NOT mapped through the...
Definition: vtkMapper.h:167
void SelectColorArray(int arrayNum)
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which array to use f...
vtkTypeBool UseLookupTableScalarRange
Definition: vtkMapper.h:541
void SetScalarModeToDefault()
Definition: vtkMapper.h:240
int ScalarMode
Definition: vtkMapper.h:544
virtual bool GetSupportsSelection()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
Definition: vtkMapper.h:471
static void GetResolveCoincidentTopologyLineOffsetParameters(double &factor, double &units)
Used to set the line offset scale factor and units.
void GetCoincidentTopologyPolygonOffsetParameters(double &factor, double &units)
Get the net parameters for handling coincident topology obtained by summing the global values with th...
virtual void CreateDefaultLookupTable()
Create default lookup table.
double RenderTime
Definition: vtkMapper.h:546
void SetScalarModeToUseCellFieldData()
Definition: vtkMapper.h:247
void MapScalarsToTexture(vtkAbstractArray *scalars, double alpha)
vtkImageData * GetColorTextureMap()
Provide read access to the color texture array.
static void GetResolveCoincidentTopologyPointOffsetParameter(double &units)
Used to set the point offset value Used when ResolveCoincidentTopology is set to PolygonOffset.
static void SetResolveCoincidentTopologyToDefault()
Set/Get a global flag that controls whether coincident topology (e.g., a line on top of a polygon) is...
virtual bool HasTranslucentPolygonalGeometry()
Some introspection on the type of data the mapper will render used by props to determine if they shou...
vtkImageData * ColorTextureMap
Definition: vtkMapper.h:534
vtkTimeStamp BuildTime
Definition: vtkMapper.h:539
void ColorByArrayComponent(int arrayNum, int component)
Legacy: These methods used to be used to specify the array component.
void GetRelativeCoincidentTopologyPointOffsetParameter(double &units)
Used to set the point offset value relative to the global Used when ResolveCoincidentTopology is set ...
void SetColorModeToDirectScalars()
default (ColorModeToDefault), unsigned char scalars are treated as colors, and NOT mapped through the...
Definition: vtkMapper.h:169
vtkTypeBool Static
Definition: vtkMapper.h:558
virtual vtkUnsignedCharArray * MapScalars(double alpha, int &cellFlag)
Map the scalars (if there are any scalars and ScalarVisibility is on) through the lookup table,...
void SetScalarModeToUseFieldData()
Definition: vtkMapper.h:251
static double GetResolveCoincidentTopologyZShift()
Used to set the z-shift if ResolveCoincidentTopology is set to ShiftZBuffer.
static void SetResolveCoincidentTopologyPolygonOffsetParameters(double factor, double units)
Used to set the polygon offset scale factor and units.
int ArrayAccessMode
Definition: vtkMapper.h:552
void SetRelativeCoincidentTopologyLineOffsetParameters(double factor, double units)
Used to set the line offset values relative to the global Used when ResolveCoincidentTopology is set ...
int ArrayId
Definition: vtkMapper.h:549
int ArrayComponent
Definition: vtkMapper.h:551
void SetRenderTime(double time)
This instance variable is used by vtkLODActor to determine which mapper to use.
Definition: vtkMapper.h:424
static void SetResolveCoincidentTopology(int val)
Set/Get a global flag that controls whether coincident topology (e.g., a line on top of a polygon) is...
void GetRelativeCoincidentTopologyLineOffsetParameters(double &factor, double &units)
Used to set the line offset values relative to the global Used when ResolveCoincidentTopology is set ...
vtkUnsignedCharArray * Colors
Definition: vtkMapper.h:527
static void SetResolveCoincidentTopologyToOff()
Set/Get a global flag that controls whether coincident topology (e.g., a line on top of a polygon) is...
Definition: vtkMapper.h:313
virtual void Render(vtkRenderer *ren, vtkActor *a)=0
Method initiates the mapping process.
vtkTypeBool ScalarVisibility
Definition: vtkMapper.h:538
vtkMTimeType GetMTime() override
Overload standard modified time function.
vtkDataSet * GetInputAsDataSet()
Get the input to this mapper as a vtkDataSet, instead of as a more specialized data type that the sub...
Definition: vtkMapper.h:439
vtkScalarsToColors * GetLookupTable()
Specify a lookup table for the mapper to use.
virtual vtkUnsignedCharArray * MapScalars(vtkDataSet *input, double alpha, int &cellFlag)
Map the scalars (if there are any scalars and ScalarVisibility is on) through the lookup table,...
vtkIdType FieldDataTupleId
Definition: vtkMapper.h:556
double CoincidentPointOffset
Definition: vtkMapper.h:564
static void SetResolveCoincidentTopologyToPolygonOffset()
Set/Get a global flag that controls whether coincident topology (e.g., a line on top of a polygon) is...
Definition: vtkMapper.h:314
static void SetResolveCoincidentTopologyToShiftZBuffer()
Set/Get a global flag that controls whether coincident topology (e.g., a line on top of a polygon) is...
Definition: vtkMapper.h:318
void ColorByArrayComponent(const char *arrayName, int component)
Legacy: These methods used to be used to specify the array component.
void GetRelativeCoincidentTopologyPolygonOffsetParameters(double &factor, double &units)
Used to set the polygon offset values relative to the global Used when ResolveCoincidentTopology is s...
static int GetResolveCoincidentTopologyPolygonOffsetFaces()
Used when ResolveCoincidentTopology is set to PolygonOffset.
vtkFloatArray * GetColorCoordinates()
Provide read access to the color texture coordinate array.
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
virtual void ProcessSelectorPixelBuffers(vtkHardwareSelector *, std::vector< unsigned int > &, vtkProp *)
allows a mapper to update a selections color buffers Called from a prop which in turn is called from ...
Definition: vtkMapper.h:477
double CoincidentLineOffset
Definition: vtkMapper.h:563
void SetRelativeCoincidentTopologyPointOffsetParameter(double units)
Used to set the point offset value relative to the global Used when ResolveCoincidentTopology is set ...
static void SetResolveCoincidentTopologyPointOffsetParameter(double units)
Used to set the point offset value Used when ResolveCoincidentTopology is set to PolygonOffset.
vtkFloatArray * ColorCoordinates
Definition: vtkMapper.h:532
void SetRelativeCoincidentTopologyPolygonOffsetParameters(double factor, double units)
Used to set the polygon offset values relative to the global Used when ResolveCoincidentTopology is s...
void ShallowCopy(vtkAbstractMapper *m) override
Make a shallow copy of this mapper.
void SetScalarModeToUsePointData()
Definition: vtkMapper.h:241
vtkUnsignedCharArray * GetColorMapColors()
Provide read access to the color array.
static void SetResolveCoincidentTopologyLineOffsetParameters(double factor, double units)
Used to set the line offset scale factor and units.
vtkDataSet * GetInput()
Get the input as a vtkDataSet.
virtual void SetSelection(vtkSelection *)
Set/Get selection used to display particular points or cells in a second pass.
static void SetResolveCoincidentTopologyPolygonOffsetFaces(int faces)
Used when ResolveCoincidentTopology is set to PolygonOffset.
static void GetResolveCoincidentTopologyPolygonOffsetParameters(double &factor, double &units)
Used to set the polygon offset scale factor and units.
void GetCoincidentTopologyPointOffsetParameter(double &units)
Get the net parameters for handling coincident topology obtained by summing the global values with th...
double CoincidentLineFactor
Definition: vtkMapper.h:562
const char * GetColorModeAsString()
Return the method of coloring scalar data.
static void SetResolveCoincidentTopologyZShift(double val)
Used to set the z-shift if ResolveCoincidentTopology is set to ShiftZBuffer.
virtual vtkUnsignedCharArray * MapScalars(vtkDataSet *input, double alpha)
Map the scalars (if there are any scalars and ScalarVisibility is on) through the lookup table,...
double CoincidentPolygonOffset
Definition: vtkMapper.h:561
void ClearColorArrays()
Call to force a rebuild of color result arrays on next MapScalars.
char * ArrayName
Definition: vtkMapper.h:550
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
Definition: vtkMapper.h:115
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:57
abstract specification for renderers
Definition: vtkRenderer.h:73
Superclass for mapping scalar values to colors.
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:60
record modification and/or execution time
Definition: vtkTimeStamp.h:36
dynamic, self-adjusting array of unsigned char
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_SCALAR_MODE_DEFAULT
#define VTK_SCALAR_MODE_USE_POINT_DATA
#define VTK_SCALAR_MODE_USE_FIELD_DATA
#define VTK_SCALAR_MODE_USE_CELL_DATA
#define VTK_SCALAR_MODE_USE_CELL_FIELD_DATA
#define VTK_SCALAR_MODE_USE_POINT_FIELD_DATA
#define VTK_RESOLVE_POLYGON_OFFSET
Definition: vtkMapper.h:63
#define VTK_RESOLVE_OFF
Definition: vtkMapper.h:62
#define VTK_RESOLVE_SHIFT_ZBUFFER
Definition: vtkMapper.h:64
#define VTK_COLOR_MODE_MAP_SCALARS
#define VTK_COLOR_MODE_DEFAULT
#define VTK_COLOR_MODE_DIRECT_SCALARS
int vtkIdType
Definition: vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287
#define VTK_SIZEHINT(...)