VTK  9.5.20250810
vtkGraphMapper.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
17#ifndef vtkGraphMapper_h
18#define vtkGraphMapper_h
19
20#include "vtkMapper.h"
21#include "vtkRenderingCoreModule.h" // For export macro
22
23#include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
24#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
25
26VTK_ABI_NAMESPACE_BEGIN
27class vtkActor2D;
29class vtkCamera;
30class vtkFollower;
31class vtkGraph;
32class vtkGlyph3D;
35class vtkCellCenters;
36class vtkPolyData;
39class vtkLookupTable;
41class vtkTexture;
44
45class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkGraphMapper : public vtkMapper
46{
47public:
49 vtkTypeMacro(vtkGraphMapper, vtkMapper);
50 void PrintSelf(ostream& os, vtkIndent indent) override;
51 void Render(vtkRenderer* ren, vtkActor* act) override;
52
54
57 void SetVertexColorArrayName(const char* name);
60
62
65 void SetColorVertices(bool vis);
70
72
78 void SetScaledGlyphs(bool arg);
79 vtkGetMacro(ScaledGlyphs, bool);
80 vtkBooleanMacro(ScaledGlyphs, bool);
82
84
87 vtkSetStringMacro(ScalingArrayName);
88 vtkGetStringMacro(ScalingArrayName);
90
92
95 void SetEdgeVisibility(bool vis);
97 vtkBooleanMacro(EdgeVisibility, bool);
99
101
104 void SetEdgeColorArrayName(const char* name);
107
109
112 void SetColorEdges(bool vis);
117
119
122 vtkSetStringMacro(EnabledEdgesArrayName);
123 vtkGetStringMacro(EnabledEdgesArrayName);
125
127
130 vtkSetMacro(EnableEdgesByArray, vtkTypeBool);
131 vtkGetMacro(EnableEdgesByArray, vtkTypeBool);
132 vtkBooleanMacro(EnableEdgesByArray, vtkTypeBool);
134
136
139 vtkSetStringMacro(EnabledVerticesArrayName);
140 vtkGetStringMacro(EnabledVerticesArrayName);
142
144
147 vtkSetMacro(EnableVerticesByArray, vtkTypeBool);
148 vtkGetMacro(EnableVerticesByArray, vtkTypeBool);
149 vtkBooleanMacro(EnableVerticesByArray, vtkTypeBool);
151
153
156 void SetIconArrayName(const char* name);
157 const char* GetIconArrayName();
159
165 void AddIconType(const char* type, int index);
166
171
173
176 void SetIconSize(int* size) VTK_SIZEHINT(2);
179
184 void SetIconAlignment(int alignment);
185
187
190 vtkTexture* GetIconTexture();
191 void SetIconTexture(vtkTexture* texture);
193
195
198 void SetIconVisibility(bool vis);
199 bool GetIconVisibility();
200 vtkBooleanMacro(IconVisibility, bool);
202
204
207 vtkGetMacro(VertexPointSize, float);
208 void SetVertexPointSize(float size);
210
212
215 vtkGetMacro(EdgeLineWidth, float);
216 void SetEdgeLineWidth(float width);
218
224 void ReleaseGraphicsResources(vtkWindow*) override;
225
229 vtkMTimeType GetMTime() override;
230
232
235 void SetInputData(vtkGraph* input);
236 vtkGraph* GetInput();
238
243 double* GetBounds() VTK_SIZEHINT(6) override;
244 void GetBounds(double* bounds) override { Superclass::GetBounds(bounds); }
245
247
250 vtkGetObjectMacro(EdgeLookupTable, vtkLookupTable);
251 vtkGetObjectMacro(VertexLookupTable, vtkLookupTable);
253
254protected:
256 ~vtkGraphMapper() override;
257
259
262 vtkGetStringMacro(VertexColorArrayNameInternal);
263 vtkSetStringMacro(VertexColorArrayNameInternal);
264 vtkGetStringMacro(EdgeColorArrayNameInternal);
265 vtkSetStringMacro(EdgeColorArrayNameInternal);
269
274
275 vtkGetStringMacro(IconArrayNameInternal);
276 vtkSetStringMacro(IconArrayNameInternal);
278
281
287
292
297
298 // Color maps
301
303
304 // see algorithm for more info
305 int FillInputPortInformation(int port, vtkInformation* info) override;
306
307private:
308 vtkGraphMapper(const vtkGraphMapper&) = delete;
309 void operator=(const vtkGraphMapper&) = delete;
310
311 // Helper function
312 vtkPolyData* CreateCircle(bool filled);
313
314 float VertexPointSize;
315 float EdgeLineWidth;
316 bool ScaledGlyphs;
317 char* ScalingArrayName;
318};
319
320VTK_ABI_NAMESPACE_END
321#endif
virtual double * GetBounds()=0
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
a actor that draws 2D data
Definition vtkActor2D.h:145
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:151
a virtual camera for 3D rendering
Definition vtkCamera.h:151
generate points at center of cells
a subclass of actor that always faces the camera
Definition vtkFollower.h:93
Detect and break reference loops.
copy oriented and scaled glyph geometry to every input point
Definition vtkGlyph3D.h:211
map vtkGraph and derived classes to graphics primitives
void ColorEdgesOn()
Whether to color edges.
~vtkGraphMapper() override
bool GetEdgeVisibility()
Whether to show edges or not.
vtkSmartPointer< vtkTexturedActor2D > IconActor
void SetColorEdges(bool vis)
Whether to color edges.
void SetVertexColorArrayName(const char *name)
The array to use for coloring vertices.
char * EnabledVerticesArrayName
vtkSmartPointer< vtkGraphToPolyData > GraphToPoly
vtkLookupTable * EdgeLookupTable
void ClearIconTypes()
Clear all icon mappings.
vtkSmartPointer< vtkPolyDataMapper > EdgeMapper
vtkSmartPointer< vtkPolyDataMapper > VertexMapper
int * GetIconSize()
Specify the Width and Height, in pixels, of an icon in the icon sheet.
void AddIconType(const char *type, int index)
Associate the icon at index "index" in the vtkTexture to all vertices containing "type" as a value in...
void ColorVerticesOff()
Whether to color vertices.
const char * GetEdgeColorArrayName()
The array to use for coloring edges.
bool GetColorVertices()
Whether to color vertices.
void SetColorVertices(bool vis)
Whether to color vertices.
vtkSmartPointer< vtkMapArrayValues > IconTypeToIndex
void ReportReferences(vtkGarbageCollector *) override
vtkSmartPointer< vtkIconGlyphFilter > IconGlyph
char * EdgeColorArrayNameInternal
Used to store the vertex and edge color array names.
vtkSmartPointer< vtkPolyDataMapper > OutlineMapper
vtkSmartPointer< vtkVertexGlyphFilter > VertexGlyph
vtkSmartPointer< vtkTransformCoordinateSystems > IconTransform
void SetScaledGlyphs(bool arg)
Whether scaled glyphs are on or not.
vtkTypeBool EnableEdgesByArray
char * IconArrayNameInternal
void SetIconSize(int *size)
Specify the Width and Height, in pixels, of an icon in the icon sheet.
const char * GetVertexColorArrayName()
The array to use for coloring vertices.
void ColorVerticesOn()
Whether to color vertices.
vtkSmartPointer< vtkActor > EdgeActor
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkLookupTable * VertexLookupTable
char * VertexColorArrayNameInternal
Used to store the vertex and edge color array names.
bool GetColorEdges()
Whether to color edges.
static vtkGraphMapper * New()
char * EnabledEdgesArrayName
vtkSmartPointer< vtkPolyDataMapper2D > IconMapper
vtkSmartPointer< vtkGlyph3D > CircleGlyph
vtkSmartPointer< vtkActor > OutlineActor
void SetIconArrayName(const char *name)
The array to use for assigning icons.
vtkSmartPointer< vtkActor > VertexActor
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool EnableVerticesByArray
const char * GetIconArrayName()
The array to use for assigning icons.
void ColorEdgesOff()
Whether to color edges.
void SetEdgeVisibility(bool vis)
Whether to show edges or not.
vtkSmartPointer< vtkGlyph3D > CircleOutlineGlyph
void Render(vtkRenderer *ren, vtkActor *act) override
Method initiates the mapping process.
void SetEdgeColorArrayName(const char *name)
The array to use for coloring edges.
convert a vtkGraph to vtkPolyData
Base class for graph data types.
Definition vtkGraph.h:342
Filter that generates a polydata consisting of quads with texture coordinates referring to a set of i...
a simple class to control print indentation
Definition vtkIndent.h:108
Store vtkAlgorithm input/output information.
map scalar values into colors via a lookup table
Map values in an input array to different values in an output array of (possibly) different type.
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:98
draw vtkPolyData onto the image plane
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract specification for renderers
Hold a reference to a vtkObjectBase instance.
handles properties associated with a texture map
Definition vtkTexture.h:168
actor that draws 2D data with texture support
transform points into different coordinate systems
Make a vtkPolyData with a vertex on each point.
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_SIZEHINT(...)
#define VTK_MARSHALAUTO