VTK  9.3.1
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 
25 VTK_ABI_NAMESPACE_BEGIN
26 class vtkActor2D;
27 class vtkMapArrayValues;
28 class vtkCamera;
29 class vtkFollower;
30 class vtkGraph;
31 class vtkGlyph3D;
32 class vtkGraphToPolyData;
33 class vtkIconGlyphFilter;
34 class vtkCellCenters;
35 class vtkPolyData;
36 class vtkPolyDataMapper;
38 class vtkLookupTable;
40 class vtkTexture;
41 class vtkTexturedActor2D;
43 
44 class VTKRENDERINGCORE_EXPORT vtkGraphMapper : public vtkMapper
45 {
46 public:
47  static vtkGraphMapper* New();
48  vtkTypeMacro(vtkGraphMapper, vtkMapper);
49  void PrintSelf(ostream& os, vtkIndent indent) override;
50  void Render(vtkRenderer* ren, vtkActor* act) override;
51 
53 
56  void SetVertexColorArrayName(const char* name);
57  const char* GetVertexColorArrayName();
59 
61 
64  void SetColorVertices(bool vis);
65  bool GetColorVertices();
66  void ColorVerticesOn();
67  void ColorVerticesOff();
69 
71 
77  void SetScaledGlyphs(bool arg);
78  vtkGetMacro(ScaledGlyphs, bool);
79  vtkBooleanMacro(ScaledGlyphs, bool);
81 
83 
86  vtkSetStringMacro(ScalingArrayName);
87  vtkGetStringMacro(ScalingArrayName);
89 
91 
94  void SetEdgeVisibility(bool vis);
95  bool GetEdgeVisibility();
96  vtkBooleanMacro(EdgeVisibility, bool);
98 
100 
103  void SetEdgeColorArrayName(const char* name);
104  const char* GetEdgeColorArrayName();
106 
108 
111  void SetColorEdges(bool vis);
112  bool GetColorEdges();
113  void ColorEdgesOn();
114  void ColorEdgesOff();
116 
118 
121  vtkSetStringMacro(EnabledEdgesArrayName);
122  vtkGetStringMacro(EnabledEdgesArrayName);
124 
126 
129  vtkSetMacro(EnableEdgesByArray, vtkTypeBool);
130  vtkGetMacro(EnableEdgesByArray, vtkTypeBool);
131  vtkBooleanMacro(EnableEdgesByArray, vtkTypeBool);
133 
135 
138  vtkSetStringMacro(EnabledVerticesArrayName);
139  vtkGetStringMacro(EnabledVerticesArrayName);
141 
143 
146  vtkSetMacro(EnableVerticesByArray, vtkTypeBool);
147  vtkGetMacro(EnableVerticesByArray, vtkTypeBool);
148  vtkBooleanMacro(EnableVerticesByArray, vtkTypeBool);
150 
152 
155  void SetIconArrayName(const char* name);
156  const char* GetIconArrayName();
158 
164  void AddIconType(const char* type, int index);
165 
169  void ClearIconTypes();
170 
172 
175  void SetIconSize(int* size);
176  int* GetIconSize();
178 
183  void SetIconAlignment(int alignment);
184 
186 
189  vtkTexture* GetIconTexture();
190  void SetIconTexture(vtkTexture* texture);
192 
194 
197  void SetIconVisibility(bool vis);
198  bool GetIconVisibility();
199  vtkBooleanMacro(IconVisibility, bool);
201 
203 
206  vtkGetMacro(VertexPointSize, float);
207  void SetVertexPointSize(float size);
209 
211 
214  vtkGetMacro(EdgeLineWidth, float);
215  void SetEdgeLineWidth(float width);
217 
223  void ReleaseGraphicsResources(vtkWindow*) override;
224 
228  vtkMTimeType GetMTime() override;
229 
231 
234  void SetInputData(vtkGraph* input);
235  vtkGraph* GetInput();
237 
242  double* GetBounds() VTK_SIZEHINT(6) override;
243  void GetBounds(double* bounds) override { Superclass::GetBounds(bounds); }
244 
246 
249  vtkGetObjectMacro(EdgeLookupTable, vtkLookupTable);
250  vtkGetObjectMacro(VertexLookupTable, vtkLookupTable);
252 
253 protected:
254  vtkGraphMapper();
255  ~vtkGraphMapper() override;
256 
258 
261  vtkGetStringMacro(VertexColorArrayNameInternal);
262  vtkSetStringMacro(VertexColorArrayNameInternal);
263  vtkGetStringMacro(EdgeColorArrayNameInternal);
264  vtkSetStringMacro(EdgeColorArrayNameInternal);
268 
273 
274  vtkGetStringMacro(IconArrayNameInternal);
275  vtkSetStringMacro(IconArrayNameInternal);
276  char* IconArrayNameInternal;
277 
280 
286 
291 
296 
297  // Color maps
300 
301  void ReportReferences(vtkGarbageCollector*) override;
302 
303  // see algorithm for more info
304  int FillInputPortInformation(int port, vtkInformation* info) override;
305 
306 private:
307  vtkGraphMapper(const vtkGraphMapper&) = delete;
308  void operator=(const vtkGraphMapper&) = delete;
309 
310  // Helper function
311  vtkPolyData* CreateCircle(bool filled);
312 
313  float VertexPointSize;
314  float EdgeLineWidth;
315  bool ScaledGlyphs;
316  char* ScalingArrayName;
317 };
318 
319 VTK_ABI_NAMESPACE_END
320 #endif
char * EdgeColorArrayNameInternal
Used to store the vertex and edge color array names.
map vtkGraph and derived classes to graphics primitives
void GetBounds(T a, double bds[6])
char * EnabledVerticesArrayName
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:40
actor that draws 2D data with texture support
char * IconArrayNameInternal
Map values in an input array to different values in an output array of (possibly) different type...
Store vtkAlgorithm input/output information.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270
Filter that generates a polydata consisting of quads with texture coordinates referring to a set of i...
vtkTypeBool EnableEdgesByArray
vtkSmartPointer< vtkPolyDataMapper > OutlineMapper
void ReportReferences(vtkGarbageCollector *) override
a actor that draws 2D data
Definition: vtkActor2D.h:34
map scalar values into colors via a lookup table
abstract specification for renderers
Definition: vtkRenderer.h:61
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
vtkSmartPointer< vtkGlyph3D > CircleOutlineGlyph
vtkSmartPointer< vtkIconGlyphFilter > IconGlyph
vtkSmartPointer< vtkActor > OutlineActor
generate points at center of cells
Detect and break reference loops.
vtkSmartPointer< vtkTransformCoordinateSystems > IconTransform
int vtkTypeBool
Definition: vtkABI.h:64
convert a vtkGraph to vtkPolyData
Base class for graph data types.
Definition: vtkGraph.h:280
window superclass for vtkRenderWindow
Definition: vtkWindow.h:27
Make a vtkPolyData with a vertex on each point.
a simple class to control print indentation
Definition: vtkIndent.h:28
a virtual camera for 3D rendering
Definition: vtkCamera.h:40
vtkLookupTable * VertexLookupTable
copy oriented and scaled glyph geometry to every input point
Definition: vtkGlyph3D.h:101
vtkSmartPointer< vtkPolyDataMapper > VertexMapper
vtkSmartPointer< vtkGlyph3D > CircleGlyph
handles properties associated with a texture map
Definition: vtkTexture.h:57
virtual double * GetBounds()=0
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax, zmin,zmax).
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkLookupTable * EdgeLookupTable
vtkMTimeType GetMTime() override
Overload standard modified time function.
vtkSmartPointer< vtkActor > EdgeActor
#define VTK_SIZEHINT(...)
transform points into different coordinate systems
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:76
map vtkPolyData to graphics primitives
a subclass of actor that always faces the camera
Definition: vtkFollower.h:32
vtkSmartPointer< vtkTexturedActor2D > IconActor
vtkSmartPointer< vtkActor > VertexActor
char * EnabledEdgesArrayName
vtkSmartPointer< vtkGraphToPolyData > GraphToPoly
static vtkAlgorithm * New()
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax, zmin,zmax).
vtkSmartPointer< vtkMapArrayValues > IconTypeToIndex
vtkDataSet * GetInput()
Get the input as a vtkDataSet.
vtkSmartPointer< vtkVertexGlyphFilter > VertexGlyph
vtkSmartPointer< vtkPolyDataMapper2D > IconMapper
vtkSmartPointer< vtkPolyDataMapper > EdgeMapper
virtual void Render(vtkRenderer *ren, vtkActor *a)=0
Method initiates the mapping process.
char * VertexColorArrayNameInternal
Used to store the vertex and edge color array names.
draw vtkPolyData onto the image plane
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
Definition: vtkMapper.h:104
vtkTypeBool EnableVerticesByArray