VTK
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 -------------------------------------------------------------------------*/
30 #ifndef vtkGraphMapper_h
31 #define vtkGraphMapper_h
32 
33 #include "vtkRenderingCoreModule.h" // For export macro
34 #include "vtkMapper.h"
35 
36 #include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
37 
38 class vtkActor2D;
39 class vtkMapArrayValues;
40 class vtkCamera;
41 class vtkFollower;
42 class vtkGraph;
43 class vtkGlyph3D;
44 class vtkGraphToPolyData;
45 class vtkIconGlyphFilter;
46 class vtkCellCenters;
47 class vtkPolyData;
48 class vtkPolyDataMapper;
50 class vtkLookupTable;
52 class vtkTexture;
53 class vtkTexturedActor2D;
55 
56 class VTKRENDERINGCORE_EXPORT vtkGraphMapper : public vtkMapper
57 {
58 public:
59  static vtkGraphMapper *New();
60  vtkTypeMacro(vtkGraphMapper, vtkMapper);
61  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
62  void Render(vtkRenderer *ren, vtkActor *act) VTK_OVERRIDE;
63 
65 
68  void SetVertexColorArrayName(const char* name);
69  const char* GetVertexColorArrayName();
71 
73 
76  void SetColorVertices(bool vis);
77  bool GetColorVertices();
78  void ColorVerticesOn();
79  void ColorVerticesOff();
81 
83 
89  void SetScaledGlyphs(bool arg);
90  vtkGetMacro(ScaledGlyphs, bool);
91  vtkBooleanMacro(ScaledGlyphs, bool);
93 
95 
98  vtkSetStringMacro(ScalingArrayName);
99  vtkGetStringMacro(ScalingArrayName);
101 
103 
106  void SetEdgeVisibility(bool vis);
107  bool GetEdgeVisibility();
108  vtkBooleanMacro(EdgeVisibility, bool);
110 
112 
115  void SetEdgeColorArrayName(const char* name);
116  const char* GetEdgeColorArrayName();
118 
120 
123  void SetColorEdges(bool vis);
124  bool GetColorEdges();
125  void ColorEdgesOn();
126  void ColorEdgesOff();
128 
130 
133  vtkSetStringMacro(EnabledEdgesArrayName);
134  vtkGetStringMacro(EnabledEdgesArrayName);
136 
138 
141  vtkSetMacro(EnableEdgesByArray, int);
142  vtkGetMacro(EnableEdgesByArray, int);
143  vtkBooleanMacro(EnableEdgesByArray, int);
145 
147 
150  vtkSetStringMacro(EnabledVerticesArrayName);
151  vtkGetStringMacro(EnabledVerticesArrayName);
153 
155 
158  vtkSetMacro(EnableVerticesByArray, int);
159  vtkGetMacro(EnableVerticesByArray, int);
160  vtkBooleanMacro(EnableVerticesByArray, int);
162 
164 
167  void SetIconArrayName(const char* name);
168  const char* GetIconArrayName();
170 
176  void AddIconType(char *type, int index);
177 
181  void ClearIconTypes();
182 
184 
187  void SetIconSize(int *size);
188  int *GetIconSize();
190 
195  void SetIconAlignment(int alignment);
196 
198 
201  vtkTexture *GetIconTexture();
202  void SetIconTexture(vtkTexture *texture);
204 
206 
209  void SetIconVisibility(bool vis);
210  bool GetIconVisibility();
211  vtkBooleanMacro(IconVisibility, bool);
213 
215 
218  vtkGetMacro(VertexPointSize,float);
219  void SetVertexPointSize(float size);
221 
223 
226  vtkGetMacro(EdgeLineWidth,float);
227  void SetEdgeLineWidth(float width);
229 
235  void ReleaseGraphicsResources(vtkWindow *) VTK_OVERRIDE;
236 
240  vtkMTimeType GetMTime() VTK_OVERRIDE;
241 
243 
246  void SetInputData(vtkGraph *input);
247  vtkGraph *GetInput();
249 
254  double *GetBounds() VTK_OVERRIDE;
255  void GetBounds(double* bounds) VTK_OVERRIDE
256  { Superclass::GetBounds(bounds); }
257 
259 
262  vtkGetObjectMacro(EdgeLookupTable, vtkLookupTable);
263  vtkGetObjectMacro(VertexLookupTable, vtkLookupTable);
265 
266 protected:
267  vtkGraphMapper();
268  ~vtkGraphMapper() VTK_OVERRIDE;
269 
271 
274  vtkGetStringMacro(VertexColorArrayNameInternal);
275  vtkSetStringMacro(VertexColorArrayNameInternal);
276  vtkGetStringMacro(EdgeColorArrayNameInternal);
277  vtkSetStringMacro(EdgeColorArrayNameInternal);
278  char* VertexColorArrayNameInternal;
279  char* EdgeColorArrayNameInternal;
281 
282  char* EnabledEdgesArrayName;
283  char* EnabledVerticesArrayName;
284  int EnableEdgesByArray;
285  int EnableVerticesByArray;
286 
287  vtkGetStringMacro(IconArrayNameInternal);
288  vtkSetStringMacro(IconArrayNameInternal);
289  char* IconArrayNameInternal;
290 
292  vtkSmartPointer<vtkGlyph3D> CircleOutlineGlyph;
293 
299 
304 
306  vtkSmartPointer<vtkActor> VertexActor;
307  vtkSmartPointer<vtkActor> OutlineActor;
309 
310  // Color maps
311  vtkLookupTable* EdgeLookupTable;
312  vtkLookupTable* VertexLookupTable;
313 
314  void ReportReferences(vtkGarbageCollector*) VTK_OVERRIDE;
315 
316  // see algorithm for more info
317  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
318 
319 private:
320  vtkGraphMapper(const vtkGraphMapper&) VTK_DELETE_FUNCTION;
321  void operator=(const vtkGraphMapper&) VTK_DELETE_FUNCTION;
322 
323  // Helper function
324  vtkPolyData* CreateCircle(bool filled);
325 
326  float VertexPointSize;
327  float EdgeLineWidth;
328  bool ScaledGlyphs;
329  char* ScalingArrayName;
330 };
331 
332 #endif
map vtkGraph and derived classes to graphics primitives
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:45
actor that draws 2D data with texture support
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:300
Filter that generates a polydata consisting of quads with texture coordinates referring to a set of i...
a actor that draws 2D data
Definition: vtkActor2D.h:39
map scalar values into colors via a lookup table
abstract specification for renderers
Definition: vtkRenderer.h:57
Hold a reference to a vtkObjectBase instance.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
generate points at center of cells
Detect and break reference loops.
convert a vtkGraph to vtkPolyData
Base class for graph data types.
Definition: vtkGraph.h:281
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
Make a vtkPolyData with a vertex on each point.
a simple class to control print indentation
Definition: vtkIndent.h:33
a virtual camera for 3D rendering
Definition: vtkCamera.h:44
copy oriented and scaled glyph geometry to every input point
Definition: vtkGlyph3D.h:105
handles properties associated with a texture map
Definition: vtkTexture.h:64
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
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.
vtkMTimeType GetMTime() override
Overload standard modified time function.
transform points into different coordinate systems
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:85
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
map vtkPolyData to graphics primitives
a subclass of actor that always faces the camera
Definition: vtkFollower.h:40
static vtkAlgorithm * New()
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
virtual void Render(vtkRenderer *ren, vtkActor *a)=0
Method initiates the mapping process.
draw vtkPolyData onto the image plane
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
Definition: vtkMapper.h:113