VTK  9.0.1
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:
56  static vtkGraphLayoutView* New();
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);
81  bool GetVertexLabelVisibility();
82  vtkBooleanMacro(VertexLabelVisibility, bool);
84 
86 
89  void SetHideVertexLabelsOnInteraction(bool vis);
90  bool GetHideVertexLabelsOnInteraction();
91  vtkBooleanMacro(HideVertexLabelsOnInteraction, bool);
93 
95 
98  void SetEdgeVisibility(bool vis);
99  bool GetEdgeVisibility();
100  vtkBooleanMacro(EdgeVisibility, bool);
102 
104 
107  void SetEdgeLabelVisibility(bool vis);
108  bool GetEdgeLabelVisibility();
109  vtkBooleanMacro(EdgeLabelVisibility, bool);
111 
113 
116  void SetHideEdgeLabelsOnInteraction(bool vis);
117  bool GetHideEdgeLabelsOnInteraction();
118  vtkBooleanMacro(HideEdgeLabelsOnInteraction, bool);
120 
122 
126  void SetVertexColorArrayName(const char* name);
127  const char* GetVertexColorArrayName();
129 
131 
134  void SetColorVertices(bool vis);
135  bool GetColorVertices();
136  vtkBooleanMacro(ColorVertices, bool);
138 
140 
143  void SetEdgeColorArrayName(const char* name);
144  const char* GetEdgeColorArrayName();
146 
148 
151  void SetColorEdges(bool vis);
152  bool GetColorEdges();
153  vtkBooleanMacro(ColorEdges, bool);
155 
157 
160  void SetEdgeSelection(bool vis);
161  bool GetEdgeSelection();
162  vtkBooleanMacro(EdgeSelection, bool);
164 
166 
169  void SetEnabledEdgesArrayName(const char* name);
170  const char* GetEnabledEdgesArrayName();
172 
174 
177  void SetEnableEdgesByArray(bool vis);
178  int GetEnableEdgesByArray();
180 
182 
185  void SetEnabledVerticesArrayName(const char* name);
186  const char* GetEnabledVerticesArrayName();
188 
190 
193  void SetEnableVerticesByArray(bool vis);
194  int GetEnableVerticesByArray();
196 
198 
201  void SetScalingArrayName(const char* name);
202  const char* GetScalingArrayName();
204 
206 
209  void SetScaledGlyphs(bool arg);
210  bool GetScaledGlyphs();
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 
255  vtkGraphLayoutStrategy* GetLayoutStrategy();
256  void SetLayoutStrategy(vtkGraphLayoutStrategy* s);
258 
260 
267  void SetEdgeLayoutStrategy(const char* name);
268  void SetEdgeLayoutStrategyToArcParallel() { this->SetEdgeLayoutStrategy("Arc Parallel"); }
269  void SetEdgeLayoutStrategyToPassThrough() { this->SetEdgeLayoutStrategy("Pass Through"); }
270  const char* GetEdgeLayoutStrategyName();
272 
274 
279  vtkEdgeLayoutStrategy* GetEdgeLayoutStrategy();
280  void SetEdgeLayoutStrategy(vtkEdgeLayoutStrategy* s);
282 
288  void AddIconType(const char* type, int index);
289 
293  void ClearIconTypes();
294 
299  void SetIconAlignment(int alignment);
300 
302 
305  void SetIconVisibility(bool b);
306  bool GetIconVisibility();
307  vtkBooleanMacro(IconVisibility, bool);
309 
311 
314  void SetIconArrayName(const char* name);
315  const char* GetIconArrayName();
317 
319 
322  void SetGlyphType(int type);
323  int GetGlyphType();
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 
346  void SetEdgeScalarBarVisibility(bool vis);
347  bool GetEdgeScalarBarVisibility();
349 
351 
354  void SetVertexScalarBarVisibility(bool vis);
355  bool GetVertexScalarBarVisibility();
357 
361  void ZoomToSelection();
362 
369  virtual int IsLayoutComplete();
370 
381  virtual void UpdateLayout();
382 
383 protected:
385  ~vtkGraphLayoutView() override;
386 
388 
393  virtual vtkRenderedGraphRepresentation* GetGraphRepresentation();
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
vtkGraphLayoutView::SetLayoutStrategyToRandom
void SetLayoutStrategyToRandom()
Definition: vtkGraphLayoutView.h:234
vtkRenderView
A view containing a renderer.
Definition: vtkRenderView.h:64
vtkX3D::type
@ type
Definition: vtkX3D.h:522
vtkGraphLayoutView::SetLayoutStrategyToClustering2D
void SetLayoutStrategyToClustering2D()
Definition: vtkGraphLayoutView.h:237
vtkGraphLayoutStrategy
abstract superclass for all graph layout strategies
Definition: vtkGraphLayoutStrategy.h:45
vtkGraphLayoutView::SetLayoutStrategyToCommunity2D
void SetLayoutStrategyToCommunity2D()
Definition: vtkGraphLayoutView.h:238
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkGraphLayoutView::SetLayoutStrategyToForceDirected
void SetLayoutStrategyToForceDirected()
Definition: vtkGraphLayoutView.h:235
vtkRenderView.h
vtkRenderedGraphRepresentation
Definition: vtkRenderedGraphRepresentation.h:64
vtkGraphLayoutView::SetEdgeLayoutStrategyToPassThrough
void SetEdgeLayoutStrategyToPassThrough()
Definition: vtkGraphLayoutView.h:269
vtkGraphLayoutView::SetLayoutStrategyToCircular
void SetLayoutStrategyToCircular()
Definition: vtkGraphLayoutView.h:241
vtkRenderView::ProcessEvents
void ProcessEvents(vtkObject *caller, unsigned long eventId, void *callData) override
Called to process events.
vtkGraphLayoutView
Lays out and displays a graph.
Definition: vtkGraphLayoutView.h:53
vtkGraphLayoutView::SetLayoutStrategyToPassThrough
void SetLayoutStrategyToPassThrough()
Definition: vtkGraphLayoutView.h:240
vtkViewTheme
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:42
vtkDataRepresentation
The superclass for all representations.
Definition: vtkDataRepresentation.h:72
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkRenderView::New
static vtkRenderView * New()
vtkX3D::size
@ size
Definition: vtkX3D.h:259
vtkGraphLayoutView::SetLayoutStrategyToTree
void SetLayoutStrategyToTree()
Definition: vtkGraphLayoutView.h:242
vtkRenderView::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkX3D::name
@ name
Definition: vtkX3D.h:225
vtkGraphLayoutView::SetLayoutStrategyToCone
void SetLayoutStrategyToCone()
Definition: vtkGraphLayoutView.h:244
vtkGraphLayoutView::SetLayoutStrategyToFast2D
void SetLayoutStrategyToFast2D()
Definition: vtkGraphLayoutView.h:239
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:36
vtkGraphLayoutView::SetEdgeLayoutStrategyToArcParallel
void SetEdgeLayoutStrategyToArcParallel()
Definition: vtkGraphLayoutView.h:268
vtkGraphLayoutView::SetLayoutStrategyToSimple2D
void SetLayoutStrategyToSimple2D()
Definition: vtkGraphLayoutView.h:236
vtkGraphLayoutView::SetLayoutStrategyToCosmicTree
void SetLayoutStrategyToCosmicTree()
Definition: vtkGraphLayoutView.h:243
vtkView::CreateDefaultRepresentation
virtual vtkDataRepresentation * CreateDefaultRepresentation(vtkAlgorithmOutput *conn)
Create a default vtkDataRepresentation for the given vtkAlgorithmOutput.
vtkEdgeLayoutStrategy
abstract superclass for all edge layout strategies
Definition: vtkEdgeLayoutStrategy.h:36
vtkGraphLayoutView::SetLayoutStrategyToSpanTree
void SetLayoutStrategyToSpanTree()
Definition: vtkGraphLayoutView.h:245
vtkX3D::index
@ index
Definition: vtkX3D.h:252