VTK  9.0.3
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 -------------------------------------------------------------------------*/
42 #ifndef vtkGraphLayoutView_h
43 #define vtkGraphLayoutView_h
44 
45 #include "vtkRenderView.h"
46 #include "vtkViewsInfovisModule.h" // For export macro
47 
51 class vtkViewTheme;
52 
53 class VTKVIEWSINFOVIS_EXPORT vtkGraphLayoutView : public vtkRenderView
54 {
55 public:
58  void PrintSelf(ostream& os, vtkIndent indent) override;
59 
61 
64  void SetVertexLabelArrayName(const char* name);
65  const char* GetVertexLabelArrayName();
67 
69 
72  void SetEdgeLabelArrayName(const char* name);
73  const char* GetEdgeLabelArrayName();
75 
77 
80  void SetVertexLabelVisibility(bool vis);
82  vtkBooleanMacro(VertexLabelVisibility, bool);
84 
86 
91  vtkBooleanMacro(HideVertexLabelsOnInteraction, bool);
93 
95 
98  void SetEdgeVisibility(bool vis);
100  vtkBooleanMacro(EdgeVisibility, bool);
102 
104 
107  void SetEdgeLabelVisibility(bool vis);
109  vtkBooleanMacro(EdgeLabelVisibility, bool);
111 
113 
118  vtkBooleanMacro(HideEdgeLabelsOnInteraction, bool);
120 
122 
126  void SetVertexColorArrayName(const char* name);
127  const char* GetVertexColorArrayName();
129 
131 
134  void SetColorVertices(bool vis);
136  vtkBooleanMacro(ColorVertices, bool);
138 
140 
143  void SetEdgeColorArrayName(const char* name);
144  const char* GetEdgeColorArrayName();
146 
148 
151  void SetColorEdges(bool vis);
153  vtkBooleanMacro(ColorEdges, bool);
155 
157 
160  void SetEdgeSelection(bool vis);
162  vtkBooleanMacro(EdgeSelection, bool);
164 
166 
169  void SetEnabledEdgesArrayName(const char* name);
172 
174 
177  void SetEnableEdgesByArray(bool vis);
180 
182 
188 
190 
193  void SetEnableVerticesByArray(bool vis);
196 
198 
201  void SetScalingArrayName(const char* name);
202  const char* GetScalingArrayName();
204 
206 
209  void SetScaledGlyphs(bool arg);
211  vtkBooleanMacro(ScaledGlyphs, bool);
213 
215 
233  void SetLayoutStrategy(const char* name);
234  void SetLayoutStrategyToRandom() { this->SetLayoutStrategy("Random"); }
235  void SetLayoutStrategyToForceDirected() { this->SetLayoutStrategy("Force Directed"); }
236  void SetLayoutStrategyToSimple2D() { this->SetLayoutStrategy("Simple 2D"); }
237  void SetLayoutStrategyToClustering2D() { this->SetLayoutStrategy("Clustering 2D"); }
238  void SetLayoutStrategyToCommunity2D() { this->SetLayoutStrategy("Community 2D"); }
239  void SetLayoutStrategyToFast2D() { this->SetLayoutStrategy("Fast 2D"); }
240  void SetLayoutStrategyToPassThrough() { this->SetLayoutStrategy("Pass Through"); }
241  void SetLayoutStrategyToCircular() { this->SetLayoutStrategy("Circular"); }
242  void SetLayoutStrategyToTree() { this->SetLayoutStrategy("Tree"); }
243  void SetLayoutStrategyToCosmicTree() { this->SetLayoutStrategy("Cosmic Tree"); }
244  void SetLayoutStrategyToCone() { this->SetLayoutStrategy("Cone"); }
245  void SetLayoutStrategyToSpanTree() { this->SetLayoutStrategy("Span Tree"); }
246  const char* GetLayoutStrategyName();
248 
250 
258 
260 
267  void SetEdgeLayoutStrategy(const char* name);
268  void SetEdgeLayoutStrategyToArcParallel() { this->SetEdgeLayoutStrategy("Arc Parallel"); }
269  void SetEdgeLayoutStrategyToPassThrough() { this->SetEdgeLayoutStrategy("Pass Through"); }
272 
274 
282 
288  void AddIconType(const char* type, int index);
289 
294 
299  void SetIconAlignment(int alignment);
300 
302 
305  void SetIconVisibility(bool b);
307  vtkBooleanMacro(IconVisibility, bool);
309 
311 
314  void SetIconArrayName(const char* name);
315  const char* GetIconArrayName();
317 
319 
322  void SetGlyphType(int type);
325 
327 
330  virtual void SetVertexLabelFontSize(const int size);
331  virtual int GetVertexLabelFontSize();
333 
335 
338  virtual void SetEdgeLabelFontSize(const int size);
339  virtual int GetEdgeLabelFontSize();
341 
343 
349 
351 
357 
362 
369  virtual int IsLayoutComplete();
370 
381  virtual void UpdateLayout();
382 
383 protected:
386 
388 
394  // Called to process events. Overrides behavior in vtkRenderView.
395  void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData) override;
397 
398 private:
399  vtkGraphLayoutView(const vtkGraphLayoutView&) = delete;
400  void operator=(const vtkGraphLayoutView&) = delete;
401  bool VertexLabelsRequested;
402  bool EdgeLabelsRequested;
403 };
404 
405 #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 vtkRenderedGraphRepresentation * GetGraphRepresentation()
void SetVertexColorArrayName(const char *name)
The array to use for coloring vertices.
const char * GetScalingArrayName()
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 ProcessEvents(vtkObject *caller, unsigned long eventId, void *callData) override
Called to process events.
void SetColorEdges(bool vis)
Whether to color edges.
vtkEdgeLayoutStrategy * GetEdgeLayoutStrategy()
The layout strategy to use when performing the edge layout.
const char * GetVertexLabelArrayName()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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.
vtkDataRepresentation * CreateDefaultRepresentation(vtkAlgorithmOutput *conn) override
Overrides behavior in vtkView to create a vtkRenderedGraphRepresentation by default.
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 SetIconArrayName(const char *name)
The array used for assigning icons.
~vtkGraphLayoutView() override
vtkGraphLayoutStrategy * GetLayoutStrategy()
The layout strategy to use when performing the graph layout.
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.
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:34
abstract base class for most VTK objects
Definition: vtkObject.h:63
A view containing a renderer.
Definition: vtkRenderView.h:65
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:43
@ type
Definition: vtkX3D.h:522
@ name
Definition: vtkX3D.h:225
@ size
Definition: vtkX3D.h:259
@ index
Definition: vtkX3D.h:252