VTK  9.2.6
vtkGraphMapper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGraphMapper.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 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
33 #ifndef vtkGraphMapper_h
34 #define vtkGraphMapper_h
35 
36 #include "vtkMapper.h"
37 #include "vtkRenderingCoreModule.h" // For export macro
38 
39 #include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
40 
41 class vtkActor2D;
42 class vtkMapArrayValues;
43 class vtkCamera;
44 class vtkFollower;
45 class vtkGraph;
46 class vtkGlyph3D;
47 class vtkGraphToPolyData;
48 class vtkIconGlyphFilter;
49 class vtkCellCenters;
50 class vtkPolyData;
51 class vtkPolyDataMapper;
53 class vtkLookupTable;
55 class vtkTexture;
56 class vtkTexturedActor2D;
58 
59 class VTKRENDERINGCORE_EXPORT vtkGraphMapper : public vtkMapper
60 {
61 public:
62  static vtkGraphMapper* New();
63  vtkTypeMacro(vtkGraphMapper, vtkMapper);
64  void PrintSelf(ostream& os, vtkIndent indent) override;
65  void Render(vtkRenderer* ren, vtkActor* act) override;
66 
68 
71  void SetVertexColorArrayName(const char* name);
72  const char* GetVertexColorArrayName();
74 
76 
79  void SetColorVertices(bool vis);
84 
86 
92  void SetScaledGlyphs(bool arg);
93  vtkGetMacro(ScaledGlyphs, bool);
94  vtkBooleanMacro(ScaledGlyphs, bool);
96 
98 
101  vtkSetStringMacro(ScalingArrayName);
102  vtkGetStringMacro(ScalingArrayName);
104 
106 
109  void SetEdgeVisibility(bool vis);
111  vtkBooleanMacro(EdgeVisibility, bool);
113 
115 
118  void SetEdgeColorArrayName(const char* name);
119  const char* GetEdgeColorArrayName();
121 
123 
126  void SetColorEdges(bool vis);
128  void ColorEdgesOn();
131 
133 
136  vtkSetStringMacro(EnabledEdgesArrayName);
137  vtkGetStringMacro(EnabledEdgesArrayName);
139 
141 
144  vtkSetMacro(EnableEdgesByArray, vtkTypeBool);
145  vtkGetMacro(EnableEdgesByArray, vtkTypeBool);
146  vtkBooleanMacro(EnableEdgesByArray, vtkTypeBool);
148 
150 
153  vtkSetStringMacro(EnabledVerticesArrayName);
154  vtkGetStringMacro(EnabledVerticesArrayName);
156 
158 
161  vtkSetMacro(EnableVerticesByArray, vtkTypeBool);
162  vtkGetMacro(EnableVerticesByArray, vtkTypeBool);
163  vtkBooleanMacro(EnableVerticesByArray, vtkTypeBool);
165 
167 
170  void SetIconArrayName(const char* name);
171  const char* GetIconArrayName();
173 
179  void AddIconType(const char* type, int index);
180 
185 
187 
190  void SetIconSize(int* size);
191  int* GetIconSize();
193 
198  void SetIconAlignment(int alignment);
199 
201 
205  void SetIconTexture(vtkTexture* texture);
207 
209 
212  void SetIconVisibility(bool vis);
214  vtkBooleanMacro(IconVisibility, bool);
216 
218 
221  vtkGetMacro(VertexPointSize, float);
224 
226 
229  vtkGetMacro(EdgeLineWidth, float);
230  void SetEdgeLineWidth(float width);
232 
239 
243  vtkMTimeType GetMTime() override;
244 
246 
249  void SetInputData(vtkGraph* input);
252 
257  double* GetBounds() VTK_SIZEHINT(6) override;
258  void GetBounds(double* bounds) override { Superclass::GetBounds(bounds); }
259 
261 
264  vtkGetObjectMacro(EdgeLookupTable, vtkLookupTable);
265  vtkGetObjectMacro(VertexLookupTable, vtkLookupTable);
267 
268 protected:
270  ~vtkGraphMapper() override;
271 
273 
276  vtkGetStringMacro(VertexColorArrayNameInternal);
277  vtkSetStringMacro(VertexColorArrayNameInternal);
278  vtkGetStringMacro(EdgeColorArrayNameInternal);
279  vtkSetStringMacro(EdgeColorArrayNameInternal);
283 
288 
289  vtkGetStringMacro(IconArrayNameInternal);
290  vtkSetStringMacro(IconArrayNameInternal);
292 
295 
301 
306 
311 
312  // Color maps
315 
317 
318  // see algorithm for more info
320 
321 private:
322  vtkGraphMapper(const vtkGraphMapper&) = delete;
323  void operator=(const vtkGraphMapper&) = delete;
324 
325  // Helper function
326  vtkPolyData* CreateCircle(bool filled);
327 
328  float VertexPointSize;
329  float EdgeLineWidth;
330  bool ScaledGlyphs;
331  char* ScalingArrayName;
332 };
333 
334 #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:155
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:161
a virtual camera for 3D rendering
Definition: vtkCamera.h:161
generate points at center of cells
a subclass of actor that always faces the camera
Definition: vtkFollower.h:123
Detect and break reference loops.
copy oriented and scaled glyph geometry to every input point
Definition: vtkGlyph3D.h:222
map vtkGraph and derived classes to graphics primitives
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
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
bool GetIconVisibility()
Whether to show icons.
void ClearIconTypes()
Clear all icon mappings.
vtkSmartPointer< vtkPolyDataMapper > EdgeMapper
const char * GetVertexColorArrayName()
The array to use for coloring vertices.
vtkSmartPointer< vtkPolyDataMapper > VertexMapper
int * GetIconSize()
Specify the Width and Height, in pixels, of an icon in the icon sheet.
void SetIconVisibility(bool vis)
Whether to show icons.
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.
bool GetColorVertices()
Whether to color vertices.
void SetColorVertices(bool vis)
Whether to color vertices.
vtkSmartPointer< vtkMapArrayValues > IconTypeToIndex
void ReportReferences(vtkGarbageCollector *) override
vtkSmartPointer< vtkIconGlyphFilter > IconGlyph
const char * GetIconArrayName()
The array to use for assigning icons.
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.
void SetInputData(vtkGraph *input)
Set the Input of this mapper.
static vtkGraphMapper * New()
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.
vtkGraph * GetInput()
Set the Input of this mapper.
vtkLookupTable * VertexLookupTable
char * VertexColorArrayNameInternal
Used to store the vertex and edge color array names.
bool GetColorEdges()
Whether to color edges.
void SetIconAlignment(int alignment)
Specify where the icons should be placed in relation to the vertex.
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
void ColorEdgesOff()
Whether to color edges.
void SetIconTexture(vtkTexture *texture)
The texture containing the icon sheet.
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.
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
const char * GetEdgeColorArrayName()
The array to use for coloring edges.
void SetEdgeLineWidth(float width)
Get/Set the edge line width.
void SetEdgeColorArrayName(const char *name)
The array to use for coloring edges.
void SetVertexPointSize(float size)
Get/Set the vertex point size.
vtkTexture * GetIconTexture()
The texture containing the icon sheet.
vtkMTimeType GetMTime() override
Get the mtime also considering the lookup table.
convert a vtkGraph to vtkPolyData
Base class for graph data types.
Definition: vtkGraph.h:345
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:119
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:177
draw vtkPolyData onto the image plane
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:200
abstract specification for renderers
Definition: vtkRenderer.h:182
handles properties associated with a texture map
Definition: vtkTexture.h:178
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:39
void GetBounds(T a, double bds[6])
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453
@ type
Definition: vtkX3D.h:522
@ filled
Definition: vtkX3D.h:355
@ name
Definition: vtkX3D.h:225
@ size
Definition: vtkX3D.h:259
@ index
Definition: vtkX3D.h:252
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287
#define VTK_SIZEHINT(...)