VTK  9.4.20250303
vtkMapper.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
60#ifndef vtkMapper_h
61#define vtkMapper_h
62
63#include "vtkAbstractMapper3D.h"
64#include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_5_0
65#include "vtkRenderingCoreModule.h" // For export macro
66#include "vtkSmartPointer.h" // needed for vtkSmartPointer.
67#include "vtkSystemIncludes.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS
68#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
69#include <vector> // for method args
70
71#define VTK_RESOLVE_OFF 0
72#define VTK_RESOLVE_POLYGON_OFFSET 1
73#define VTK_RESOLVE_SHIFT_ZBUFFER 2
74
75#define VTK_GET_ARRAY_BY_ID 0
76#define VTK_GET_ARRAY_BY_NAME 1
77
78#define VTK_MATERIALMODE_DEFAULT 0
79#define VTK_MATERIALMODE_AMBIENT 1
80#define VTK_MATERIALMODE_DIFFUSE 2
81#define VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE 3
82
83VTK_ABI_NAMESPACE_BEGIN
84class vtkActor;
85class vtkDataSet;
86class vtkDataObject;
87class vtkFloatArray;
89class vtkImageData;
90class vtkProp;
91class vtkRenderer;
93class vtkSelection;
95class vtkWindow;
96
97class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkMapper : public vtkAbstractMapper3D
98{
99public:
101 void PrintSelf(ostream& os, vtkIndent indent) override;
102
107
113
118 virtual void Render(vtkRenderer* ren, vtkActor* a) = 0;
119
126
128
134
140
142
145 vtkSetMacro(ScalarVisibility, vtkTypeBool);
146 vtkGetMacro(ScalarVisibility, vtkTypeBool);
147 vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
149
151
157 vtkSetMacro(Static, vtkTypeBool);
158 vtkGetMacro(Static, vtkTypeBool);
159 vtkBooleanMacro(Static, vtkTypeBool);
161
163
175 vtkSetMacro(ColorMode, int);
176 vtkGetMacro(ColorMode, int);
177 void SetColorModeToDefault() { this->SetColorMode(VTK_COLOR_MODE_DEFAULT); }
181
185 const char* GetColorModeAsString();
186
188
194 vtkSetMacro(InterpolateScalarsBeforeMapping, vtkTypeBool);
195 vtkGetMacro(InterpolateScalarsBeforeMapping, vtkTypeBool);
196 vtkBooleanMacro(InterpolateScalarsBeforeMapping, vtkTypeBool);
198
200
208 vtkSetMacro(UseLookupTableScalarRange, vtkTypeBool);
209 vtkGetMacro(UseLookupTableScalarRange, vtkTypeBool);
210 vtkBooleanMacro(UseLookupTableScalarRange, vtkTypeBool);
212
214
219 vtkSetVector2Macro(ScalarRange, double);
220 vtkGetVectorMacro(ScalarRange, double, 2);
222
236 // When ScalarMode is set to use Field Data (ScalarModeToFieldData),
237 // you must call SelectColorArray to choose the field data array to
238 // be used to color cells. In this mode, the default behavior is to
239 // treat the field data tuples as being associated with cells. If
240 // the poly data contains triangle strips, the array is expected to
241 // contain the cell data for each mini-cell formed by any triangle
242 // strips in the poly data as opposed to treating them as a single
243 // tuple that applies to the entire strip. This mode can also be
244 // used to color the entire poly data by a single color obtained by
245 // mapping the tuple at a given index in the field data array
246 // through the color map. Use SetFieldDataTupleId() to specify
247 // the tuple index.
248 vtkSetMacro(ScalarMode, int);
249 vtkGetMacro(ScalarMode, int);
250 void SetScalarModeToDefault() { this->SetScalarMode(VTK_SCALAR_MODE_DEFAULT); }
254 {
255 this->SetScalarMode(VTK_SCALAR_MODE_USE_POINT_FIELD_DATA);
256 }
258 {
259 this->SetScalarMode(VTK_SCALAR_MODE_USE_CELL_FIELD_DATA);
260 }
262
264
269 void SelectColorArray(int arrayNum);
270 void SelectColorArray(const char* arrayName);
272
273 // When ScalarMode is set to UseFieldData, set the index of the
274 // tuple by which to color the entire data set. By default, the
275 // index is -1, which means to treat the field data array selected
276 // with SelectColorArray as having a scalar value for each cell.
277 // Indices of 0 or higher mean to use the tuple at the given index
278 // for coloring the entire data set.
279 vtkSetMacro(FieldDataTupleId, vtkIdType);
280 vtkGetMacro(FieldDataTupleId, vtkIdType);
281
283
288 void ColorByArrayComponent(int arrayNum, int component);
289 void ColorByArrayComponent(const char* arrayName, int component);
291
295 vtkGetStringMacro(ArrayName);
296 vtkSetStringMacro(ArrayName);
297 vtkGetMacro(ArrayId, int);
298 vtkSetMacro(ArrayId, int);
299 vtkGetMacro(ArrayAccessMode, int);
300 vtkSetMacro(ArrayAccessMode, int);
301 vtkGetMacro(ArrayComponent, int);
302 vtkSetMacro(ArrayComponent, int);
303
308
310
320 static void SetResolveCoincidentTopology(int val);
323 static void SetResolveCoincidentTopologyToOff() { SetResolveCoincidentTopology(VTK_RESOLVE_OFF); }
325 {
326 SetResolveCoincidentTopology(VTK_RESOLVE_POLYGON_OFFSET);
327 }
329 {
330 SetResolveCoincidentTopology(VTK_RESOLVE_SHIFT_ZBUFFER);
331 }
333
335
340 static void SetResolveCoincidentTopologyPolygonOffsetParameters(double factor, double units);
341 static void GetResolveCoincidentTopologyPolygonOffsetParameters(double& factor, double& units);
343
345
350 void GetRelativeCoincidentTopologyPolygonOffsetParameters(double& factor, double& units);
352
354
359 static void SetResolveCoincidentTopologyLineOffsetParameters(double factor, double units);
360 static void GetResolveCoincidentTopologyLineOffsetParameters(double& factor, double& units);
362
364
368 void SetRelativeCoincidentTopologyLineOffsetParameters(double factor, double units);
369 void GetRelativeCoincidentTopologyLineOffsetParameters(double& factor, double& units);
371
373
381
383
390
392
396 void GetCoincidentTopologyPolygonOffsetParameters(double& factor, double& units);
397 void GetCoincidentTopologyLineOffsetParameters(double& factor, double& units);
400
402
412
414
418 static void SetResolveCoincidentTopologyZShift(double val);
421
426 double* GetBounds() VTK_SIZEHINT(6) override;
427 void GetBounds(double bounds[6]) override { this->vtkAbstractMapper3D::GetBounds(bounds); }
428
434 void SetRenderTime(double time) { this->RenderTime = time; }
435 vtkGetMacro(RenderTime, double);
436
442
444
450 vtkDataSet* GetDataSetInput() { return this->GetInput(); }
451 VTK_DEPRECATED_IN_9_5_0("Use GetDataSetInput() instead.")
452 vtkDataSet* GetInputAsDataSet() { return this->GetDataSetInput(); }
454
456
463 virtual vtkUnsignedCharArray* MapScalars(double alpha);
464 virtual vtkUnsignedCharArray* MapScalars(double alpha, int& cellFlag);
465 virtual vtkUnsignedCharArray* MapScalars(vtkDataSet* input, double alpha);
466 virtual vtkUnsignedCharArray* MapScalars(vtkDataSet* input, double alpha, int& cellFlag);
468
470
475 virtual bool HasOpaqueGeometry();
478
485 virtual bool GetSupportsSelection() { return false; }
486
492 std::vector<unsigned int>& /* pixeloffsets */, vtkProp* /* prop */)
493 {
494 }
495
505
511
516
521
526
528
532 vtkGetObjectMacro(Selection, vtkSelection);
535
540 vtkScalarsToColors* lkup, int colorMode);
541
542protected:
544 ~vtkMapper() override;
545
546 // color mapped colors
548
549 // Use texture coordinates for coloring.
551 // Coordinate for each point.
553 // 1D ColorMap used for the texture image.
555 void MapScalarsToTexture(vtkAbstractArray* scalars, double alpha);
556
560 double ScalarRange[2];
562
565
567
568 // for coloring by a component of a field data array
573
574 // If coloring by field data, which tuple to use to color the entire
575 // data set. If -1, treat array values as cell data.
577
579
585
586 vtkSelection* Selection = nullptr;
587
588private:
589 vtkMapper(const vtkMapper&) = delete;
590 void operator=(const vtkMapper&) = delete;
591};
592
593VTK_ABI_NAMESPACE_END
594#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:151
general representation of visualization data
abstract class to specify dataset behavior
Definition vtkDataSet.h:165
dynamic, self-adjusting array of float
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:108
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:98
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:253
vtkScalarsToColors * LookupTable
Definition vtkMapper.h:557
double CoincidentPolygonFactor
Definition vtkMapper.h:580
vtkDataSet * GetDataSetInput()
Get the input to this mapper as a vtkDataSet, instead of as a more specialized data type that the sub...
Definition vtkMapper.h:450
void SetColorModeToMapScalars()
default (ColorModeToDefault), unsigned char scalars are treated as colors, and NOT mapped through the...
Definition vtkMapper.h:178
int ColorMode
Definition vtkMapper.h:563
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetScalarModeToUseCellData()
Definition vtkMapper.h:252
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:550
void SetColorModeToDefault()
default (ColorModeToDefault), unsigned char scalars are treated as colors, and NOT mapped through the...
Definition vtkMapper.h:177
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:561
void SetScalarModeToDefault()
Definition vtkMapper.h:250
int ScalarMode
Definition vtkMapper.h:564
virtual bool GetSupportsSelection()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
Definition vtkMapper.h:485
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:566
void SetScalarModeToUseCellFieldData()
Definition vtkMapper.h:257
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:554
vtkTimeStamp BuildTime
Definition vtkMapper.h:559
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:179
vtkTypeBool Static
Definition vtkMapper.h:578
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:261
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:572
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:569
int ArrayComponent
Definition vtkMapper.h:571
void SetRenderTime(double time)
This instance variable is used by vtkLODActor to determine which mapper to use.
Definition vtkMapper.h:434
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:547
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:323
virtual void Render(vtkRenderer *ren, vtkActor *a)=0
Method initiates the mapping process.
vtkTypeBool ScalarVisibility
Definition vtkMapper.h:558
vtkMTimeType GetMTime() override
Overload standard modified time function.
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:576
static vtkSmartPointer< vtkImageData > BuildColorTextureImage(vtkScalarsToColors *lkup, int colorMode)
Create an image of the lookup table lkup.
double CoincidentPointOffset
Definition vtkMapper.h:584
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:324
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:328
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:491
double CoincidentLineOffset
Definition vtkMapper.h:583
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:552
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:251
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:582
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:581
void ClearColorArrays()
Call to force a rebuild of color result arrays on next MapScalars.
char * ArrayName
Definition vtkMapper.h:570
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
Definition vtkMapper.h:125
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:66
abstract specification for renderers
Superclass for mapping scalar values to colors.
data object that represents a "selection" in VTK.
Hold a reference to a vtkObjectBase instance.
record modification and/or execution time
dynamic, self-adjusting array of unsigned char
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64
#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_DEPRECATED_IN_9_5_0(reason)
#define VTK_RESOLVE_POLYGON_OFFSET
Definition vtkMapper.h:72
#define VTK_RESOLVE_OFF
Definition vtkMapper.h:71
#define VTK_RESOLVE_SHIFT_ZBUFFER
Definition vtkMapper.h:73
#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(...)
#define VTK_MARSHALAUTO