VTK  9.3.0
vtkGraphLayoutView.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
32#ifndef vtkGraphLayoutView_h
33#define vtkGraphLayoutView_h
34
35#include "vtkRenderView.h"
36#include "vtkViewsInfovisModule.h" // For export macro
37
38VTK_ABI_NAMESPACE_BEGIN
42class vtkViewTheme;
43
44class VTKVIEWSINFOVIS_EXPORT vtkGraphLayoutView : public vtkRenderView
45{
46public:
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
52
55 void SetVertexLabelArrayName(const char* name);
58
60
63 void SetEdgeLabelArrayName(const char* name);
64 const char* GetEdgeLabelArrayName();
66
68
73 vtkBooleanMacro(VertexLabelVisibility, bool);
75
77
82 vtkBooleanMacro(HideVertexLabelsOnInteraction, bool);
84
86
89 void SetEdgeVisibility(bool vis);
91 vtkBooleanMacro(EdgeVisibility, bool);
93
95
98 void SetEdgeLabelVisibility(bool vis);
100 vtkBooleanMacro(EdgeLabelVisibility, bool);
102
104
109 vtkBooleanMacro(HideEdgeLabelsOnInteraction, bool);
111
113
117 void SetVertexColorArrayName(const char* name);
120
122
125 void SetColorVertices(bool vis);
127 vtkBooleanMacro(ColorVertices, bool);
129
131
134 void SetEdgeColorArrayName(const char* name);
137
139
142 void SetColorEdges(bool vis);
144 vtkBooleanMacro(ColorEdges, bool);
146
148
151 void SetEdgeSelection(bool vis);
153 vtkBooleanMacro(EdgeSelection, bool);
155
157
160 void SetEnabledEdgesArrayName(const char* name);
163
165
168 void SetEnableEdgesByArray(bool vis);
171
173
176 void SetEnabledVerticesArrayName(const char* name);
179
181
187
189
192 void SetScalingArrayName(const char* name);
193 const char* GetScalingArrayName();
195
197
200 void SetScaledGlyphs(bool arg);
202 vtkBooleanMacro(ScaledGlyphs, bool);
204
206
224 void SetLayoutStrategy(const char* name);
225 void SetLayoutStrategyToRandom() { this->SetLayoutStrategy("Random"); }
226 void SetLayoutStrategyToForceDirected() { this->SetLayoutStrategy("Force Directed"); }
227 void SetLayoutStrategyToSimple2D() { this->SetLayoutStrategy("Simple 2D"); }
228 void SetLayoutStrategyToClustering2D() { this->SetLayoutStrategy("Clustering 2D"); }
229 void SetLayoutStrategyToCommunity2D() { this->SetLayoutStrategy("Community 2D"); }
230 void SetLayoutStrategyToFast2D() { this->SetLayoutStrategy("Fast 2D"); }
231 void SetLayoutStrategyToPassThrough() { this->SetLayoutStrategy("Pass Through"); }
232 void SetLayoutStrategyToCircular() { this->SetLayoutStrategy("Circular"); }
233 void SetLayoutStrategyToTree() { this->SetLayoutStrategy("Tree"); }
234 void SetLayoutStrategyToCosmicTree() { this->SetLayoutStrategy("Cosmic Tree"); }
235 void SetLayoutStrategyToCone() { this->SetLayoutStrategy("Cone"); }
236 void SetLayoutStrategyToSpanTree() { this->SetLayoutStrategy("Span Tree"); }
239
241
249
251
258 void SetEdgeLayoutStrategy(const char* name);
259 void SetEdgeLayoutStrategyToArcParallel() { this->SetEdgeLayoutStrategy("Arc Parallel"); }
260 void SetEdgeLayoutStrategyToPassThrough() { this->SetEdgeLayoutStrategy("Pass Through"); }
263
265
273
279 void AddIconType(const char* type, int index);
280
285
290 void SetIconAlignment(int alignment);
291
293
296 void SetIconVisibility(bool b);
298 vtkBooleanMacro(IconVisibility, bool);
300
302
305 void SetIconArrayName(const char* name);
306 const char* GetIconArrayName();
308
310
313 void SetGlyphType(int type);
316
318
321 virtual void SetVertexLabelFontSize(int size);
324
326
329 virtual void SetEdgeLabelFontSize(int size);
330 virtual int GetEdgeLabelFontSize();
332
334
340
342
348
353
360 virtual int IsLayoutComplete();
361
372 virtual void UpdateLayout();
373
374protected:
377
379
385 // Called to process events. Overrides behavior in vtkRenderView.
386 void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData) override;
388
389private:
390 vtkGraphLayoutView(const vtkGraphLayoutView&) = delete;
391 void operator=(const vtkGraphLayoutView&) = delete;
392 bool VertexLabelsRequested;
393 bool EdgeLabelsRequested;
394};
395
396VTK_ABI_NAMESPACE_END
397#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()
Whether to show vertex labels.
void SetLayoutStrategyToSpanTree()
The layout strategy to use when performing the graph layout.
vtkDataRepresentation * CreateDefaultRepresentation(vtkAlgorithmOutput *conn) override
Overrides behavior in vtkView to create a vtkRenderedGraphRepresentation by default.
void SetEdgeLayoutStrategy(vtkEdgeLayoutStrategy *s)
The layout strategy to use when performing the edge layout.
virtual void SetVertexLabelFontSize(int size)
The size of the font used for vertex labeling.
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)
void SetEdgeLayoutStrategyToPassThrough()
The layout strategy to use when performing the edge layout.
bool GetEdgeLabelVisibility()
Whether to show edge labels.
void SetLayoutStrategyToClustering2D()
The layout strategy to use when performing the graph layout.
void SetEdgeLayoutStrategy(const char *name)
The layout strategy to use when performing the edge layout.
const char * GetEnabledVerticesArrayName()
The array to use for coloring vertices.
bool GetColorEdges()
Whether to color edges.
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.
vtkGraphLayoutStrategy * GetLayoutStrategy()
The layout strategy to use when performing the graph layout.
const char * GetVertexLabelArrayName()
The array to use for vertex labeling.
void SetEdgeLayoutStrategyToArcParallel()
The layout strategy to use when performing the edge layout.
static vtkGraphLayoutView * New()
bool GetEdgeSelection()
Whether edges are selectable.
void SetVertexColorArrayName(const char *name)
The array to use for coloring vertices.
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...
bool GetIconVisibility()
Whether icons are visible (default off).
bool GetScaledGlyphs()
Whether to use scaled glyphs or not.
int GetEnableEdgesByArray()
Whether to color edges.
void ProcessEvents(vtkObject *caller, unsigned long eventId, void *callData) override
Overrides behavior in vtkView to create a vtkRenderedGraphRepresentation by default.
void SetColorEdges(bool vis)
Whether to color edges.
virtual void SetEdgeLabelFontSize(int size)
The size of the font used for edge labeling.
bool GetColorVertices()
Whether to color vertices.
const char * GetScalingArrayName()
The array used for scaling (if ScaledGlyphs is ON)
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...
void SetLayoutStrategyToRandom()
The layout strategy to use when performing the graph layout.
int GetGlyphType()
The type of glyph to use for the vertices.
void SetLayoutStrategyToCone()
The layout strategy to use when performing the graph layout.
void SetEdgeColorArrayName(const char *name)
The array to use for coloring edges.
void SetLayoutStrategyToCosmicTree()
The layout strategy to use when performing the graph layout.
void SetLayoutStrategyToTree()
The layout strategy to use when performing the graph layout.
virtual vtkRenderedGraphRepresentation * GetGraphRepresentation()
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.
const char * GetEnabledEdgesArrayName()
The array to use for coloring edges.
void SetLayoutStrategyToPassThrough()
The layout strategy to use when performing the graph layout.
int GetEnableVerticesByArray()
Whether to color vertices.
void SetVertexLabelArrayName(const char *name)
The array to use for vertex labeling.
bool GetHideVertexLabelsOnInteraction()
Whether to hide vertex labels during mouse interactions.
void SetIconArrayName(const char *name)
The array used for assigning icons.
~vtkGraphLayoutView() override
void SetEdgeLabelVisibility(bool vis)
Whether to show edge labels.
void SetHideEdgeLabelsOnInteraction(bool vis)
Whether to hide edge labels during mouse interactions.
bool GetEdgeVisibility()
Whether to show the edges at all.
const char * GetEdgeColorArrayName()
The array to use for coloring edges.
bool GetVertexScalarBarVisibility()
Whether the scalar bar for vertices is visible.
void SetLayoutStrategyToSimple2D()
The layout strategy to use when performing the graph layout.
bool GetHideEdgeLabelsOnInteraction()
Whether to hide edge labels during mouse interactions.
virtual int GetVertexLabelFontSize()
The size of the font used for vertex labeling.
void SetEdgeSelection(bool vis)
Whether edges are selectable.
void SetEnableEdgesByArray(bool vis)
Whether to color edges.
const char * GetVertexColorArrayName()
The array to use for coloring vertices.
void SetEdgeVisibility(bool vis)
Whether to show the edges at all.
void SetEnableVerticesByArray(bool vis)
Whether to color vertices.
void SetLayoutStrategyToCircular()
The layout strategy to use when performing the graph layout.
virtual int GetEdgeLabelFontSize()
The size of the font used for edge labeling.
const char * GetIconArrayName()
The array used for assigning icons.
void SetEdgeScalarBarVisibility(bool vis)
Whether the scalar bar for edges is visible.
void SetEdgeLabelArrayName(const char *name)
The array to use for edge labeling.
const char * GetLayoutStrategyName()
The layout strategy to use when performing the graph layout.
void SetLayoutStrategyToForceDirected()
The layout strategy to use when performing the graph layout.
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.
void SetLayoutStrategyToCommunity2D()
The layout strategy to use when performing the graph layout.
const char * GetEdgeLayoutStrategyName()
The layout strategy to use when performing the edge layout.
void SetColorVertices(bool vis)
Whether to color vertices.
bool GetEdgeScalarBarVisibility()
Whether the scalar bar for edges is visible.
void SetLayoutStrategyToFast2D()
The layout strategy to use when performing the graph layout.
void SetIconAlignment(int alignment)
Specify where the icons should be placed in relation to the vertex.
void ClearIconTypes()
Clear all icon mappings.
vtkEdgeLayoutStrategy * GetEdgeLayoutStrategy()
The layout strategy to use when performing the edge layout.
const char * GetEdgeLabelArrayName()
The array to use for edge labeling.
void SetLayoutStrategy(vtkGraphLayoutStrategy *s)
The layout strategy to use when performing the graph layout.
void SetVertexLabelVisibility(bool vis)
Whether to show vertex labels.
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:29
abstract base class for most VTK objects
Definition vtkObject.h:49
A view containing a renderer.
Sets theme colors for a graphical view.