VTK
vtkGraphLayoutView.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGraphLayoutView.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 -------------------------------------------------------------------------*/
48 #ifndef vtkGraphLayoutView_h
49 #define vtkGraphLayoutView_h
50 
51 #include "vtkViewsInfovisModule.h" // For export macro
52 #include "vtkRenderView.h"
53 
57 class vtkViewTheme;
58 
59 class VTKVIEWSINFOVIS_EXPORT vtkGraphLayoutView : public vtkRenderView
60 {
61 public:
64  void PrintSelf(ostream& os, vtkIndent indent);
65 
67 
70  void SetVertexLabelArrayName(const char* name);
71  const char* GetVertexLabelArrayName();
73 
75 
78  void SetEdgeLabelArrayName(const char* name);
79  const char* GetEdgeLabelArrayName();
81 
83 
86  void SetVertexLabelVisibility(bool vis);
88  vtkBooleanMacro(VertexLabelVisibility, bool);
90 
92 
97  vtkBooleanMacro(HideVertexLabelsOnInteraction, bool);
99 
101 
104  void SetEdgeVisibility(bool vis);
106  vtkBooleanMacro(EdgeVisibility, bool);
108 
110 
113  void SetEdgeLabelVisibility(bool vis);
115  vtkBooleanMacro(EdgeLabelVisibility, bool);
117 
119 
124  vtkBooleanMacro(HideEdgeLabelsOnInteraction, bool);
126 
128 
132  void SetVertexColorArrayName(const char* name);
133  const char* GetVertexColorArrayName();
135 
137 
140  void SetColorVertices(bool vis);
142  vtkBooleanMacro(ColorVertices, bool);
144 
146 
149  void SetEdgeColorArrayName(const char* name);
150  const char* GetEdgeColorArrayName();
152 
154 
157  void SetColorEdges(bool vis);
159  vtkBooleanMacro(ColorEdges, bool);
161 
163 
166  void SetEdgeSelection(bool vis);
168  vtkBooleanMacro(EdgeSelection, bool);
170 
172 
175  void SetEnabledEdgesArrayName(const char* name);
178 
180 
183  void SetEnableEdgesByArray(bool vis);
186 
188 
194 
196 
199  void SetEnableVerticesByArray(bool vis);
202 
204 
207  void SetScalingArrayName(const char* name);
208  const char* GetScalingArrayName();
210 
212 
215  void SetScaledGlyphs(bool arg);
217  vtkBooleanMacro(ScaledGlyphs, bool);
219 
221 
239  void SetLayoutStrategy(const char* name);
241  { this->SetLayoutStrategy("Random"); }
243  { this->SetLayoutStrategy("Force Directed"); }
245  { this->SetLayoutStrategy("Simple 2D"); }
247  { this->SetLayoutStrategy("Clustering 2D"); }
249  { this->SetLayoutStrategy("Community 2D"); }
251  { this->SetLayoutStrategy("Fast 2D"); }
253  { this->SetLayoutStrategy("Pass Through"); }
255  { this->SetLayoutStrategy("Circular"); }
257  { this->SetLayoutStrategy("Tree"); }
259  { this->SetLayoutStrategy("Cosmic Tree"); }
261  { this->SetLayoutStrategy("Cone"); }
263  { this->SetLayoutStrategy("Span Tree"); }
264  const char* GetLayoutStrategyName();
266 
268 
276 
278 
285  void SetEdgeLayoutStrategy(const char* name);
287  { this->SetEdgeLayoutStrategy("Arc Parallel"); }
289  { this->SetEdgeLayoutStrategy("Pass Through"); }
292 
294 
302 
308  void AddIconType(char *type, int index);
309 
314 
319  void SetIconAlignment(int alignment);
320 
322 
325  void SetIconVisibility(bool b);
327  vtkBooleanMacro(IconVisibility, bool);
329 
331 
334  void SetIconArrayName(const char* name);
335  const char* GetIconArrayName();
337 
339 
342  void SetGlyphType(int type);
345 
347 
350  virtual void SetVertexLabelFontSize(const int size);
351  virtual int GetVertexLabelFontSize();
353 
355 
358  virtual void SetEdgeLabelFontSize(const int size);
359  virtual int GetEdgeLabelFontSize();
361 
363 
369 
371 
377 
382 
389  virtual int IsLayoutComplete();
390 
401  virtual void UpdateLayout();
402 
403 protected:
406 
408 
414  // Called to process events. Overrides behavior in vtkRenderView.
415  virtual void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData);
417 
418 private:
419  vtkGraphLayoutView(const vtkGraphLayoutView&) VTK_DELETE_FUNCTION;
420  void operator=(const vtkGraphLayoutView&) VTK_DELETE_FUNCTION;
421  bool VertexLabelsRequested;
422  bool EdgeLabelsRequested;
423  bool Interacting;
424 };
425 
426 #endif
Proxy object to connect input/output ports.
The superclass for all representations.
abstract superclass for all edge layout strategies
abstract superclass for all graph layout strategies
Lays out and displays a graph.
bool GetVertexLabelVisibility()
void SetEdgeLayoutStrategy(vtkEdgeLayoutStrategy *s)
void SetScaledGlyphs(bool arg)
Whether to use scaled glyphs or not.
void SetScalingArrayName(const char *name)
The array used for scaling (if ScaledGlyphs is ON)
virtual void SetVertexLabelFontSize(const int size)
The size of the font used for vertex labeling.
void SetEdgeLayoutStrategyToPassThrough()
bool GetEdgeLabelVisibility()
void SetLayoutStrategyToClustering2D()
void SetEdgeLayoutStrategy(const char *name)
The layout strategy to use when performing the edge layout.
void SetGlyphType(int type)
The type of glyph to use for the vertices.
void SetEnabledVerticesArrayName(const char *name)
The array to use for coloring vertices.
const char * GetLayoutStrategyName()
static vtkGraphLayoutView * New()
void SetEdgeLayoutStrategyToArcParallel()
virtual vtkDataRepresentation * CreateDefaultRepresentation(vtkAlgorithmOutput *conn)
Overrides behavior in vtkView to create a vtkRenderedGraphRepresentation by default.
virtual vtkRenderedGraphRepresentation * GetGraphRepresentation()
void SetVertexColorArrayName(const char *name)
The array to use for coloring vertices.
const char * GetScalingArrayName()
void SetColorEdges(bool vis)
Whether to color edges.
vtkEdgeLayoutStrategy * GetEdgeLayoutStrategy()
The layout strategy to use when performing the edge layout.
const char * GetVertexLabelArrayName()
virtual int IsLayoutComplete()
Is the graph layout complete? This method is useful for when the strategy is iterative and the applic...
const char * GetEnabledVerticesArrayName()
const char * GetIconArrayName()
void SetEdgeColorArrayName(const char *name)
The array to use for coloring edges.
void SetLayoutStrategy(const char *name)
The layout strategy to use when performing the graph layout.
int GetEnableVerticesByArray()
void SetVertexLabelArrayName(const char *name)
The array to use for vertex labeling.
bool GetHideVertexLabelsOnInteraction()
void AddIconType(char *type, int index)
Associate the icon at index "index" in the vtkTexture to all vertices containing "type" as a value in...
void SetIconArrayName(const char *name)
The array used for assigning icons.
vtkGraphLayoutStrategy * GetLayoutStrategy()
The layout strategy to use when performing the graph layout.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
void SetEdgeLabelVisibility(bool vis)
Whether to show edge labels.
void SetHideEdgeLabelsOnInteraction(bool vis)
Whether to hide edge labels during mouse interactions.
bool GetVertexScalarBarVisibility()
bool GetHideEdgeLabelsOnInteraction()
virtual int GetVertexLabelFontSize()
void SetEdgeSelection(bool vis)
Whether edges are selectable.
void SetEnableEdgesByArray(bool vis)
Whether to color edges.
void SetEdgeVisibility(bool vis)
Whether to show the edges at all.
void SetEnableVerticesByArray(bool vis)
Whether to color vertices.
virtual int GetEdgeLabelFontSize()
void SetEdgeScalarBarVisibility(bool vis)
Whether the scalar bar for edges is visible.
const char * GetEnabledEdgesArrayName()
void SetEdgeLabelArrayName(const char *name)
The array to use for edge labeling.
const char * GetVertexColorArrayName()
void SetLayoutStrategyToForceDirected()
void ZoomToSelection()
Reset the camera based on the bounds of the selected region.
virtual void UpdateLayout()
This method is useful for when the strategy is iterative and the application wants to show the iterat...
void SetIconVisibility(bool b)
Whether icons are visible (default off).
void SetVertexScalarBarVisibility(bool vis)
Whether the scalar bar for vertices is visible.
virtual void SetEdgeLabelFontSize(const int size)
The size of the font used for edge labeling.
void SetColorVertices(bool vis)
Whether to color vertices.
bool GetEdgeScalarBarVisibility()
const char * GetEdgeColorArrayName()
const char * GetEdgeLabelArrayName()
void SetIconAlignment(int alignment)
Specify where the icons should be placed in relation to the vertex.
void ClearIconTypes()
Clear all icon mappings.
void SetLayoutStrategy(vtkGraphLayoutStrategy *s)
void SetVertexLabelVisibility(bool vis)
Whether to show vertex labels.
virtual void ProcessEvents(vtkObject *caller, unsigned long eventId, void *callData)
Called to process events.
const char * GetEdgeLayoutStrategyName()
void SetEnabledEdgesArrayName(const char *name)
The array to use for coloring edges.
void SetHideVertexLabelsOnInteraction(bool vis)
Whether to hide vertex labels during mouse interactions.
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract base class for most VTK objects
Definition: vtkObject.h:60
A view containing a renderer.
Definition: vtkRenderView.h:62
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:49
@ type
Definition: vtkX3D.h:516
@ name
Definition: vtkX3D.h:219
@ size
Definition: vtkX3D.h:253
@ index
Definition: vtkX3D.h:246
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.