VTK  9.1.0
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-------------------------------------------------------------------------*/
151#ifndef vtkGraphLayoutView_h
152#define vtkGraphLayoutView_h
153
154#include "vtkRenderView.h"
155#include "vtkViewsInfovisModule.h" // For export macro
156
160class vtkViewTheme;
161
162class VTKVIEWSINFOVIS_EXPORT vtkGraphLayoutView : public vtkRenderView
163{
164public:
167 void PrintSelf(ostream& os, vtkIndent indent) override;
168
170
173 void SetVertexLabelArrayName(const char* name);
176
178
181 void SetEdgeLabelArrayName(const char* name);
184
186
191 vtkBooleanMacro(VertexLabelVisibility, bool);
193
195
200 vtkBooleanMacro(HideVertexLabelsOnInteraction, bool);
202
204
207 void SetEdgeVisibility(bool vis);
209 vtkBooleanMacro(EdgeVisibility, bool);
211
213
218 vtkBooleanMacro(EdgeLabelVisibility, bool);
220
222
227 vtkBooleanMacro(HideEdgeLabelsOnInteraction, bool);
229
231
235 void SetVertexColorArrayName(const char* name);
238
240
243 void SetColorVertices(bool vis);
245 vtkBooleanMacro(ColorVertices, bool);
247
249
252 void SetEdgeColorArrayName(const char* name);
255
257
260 void SetColorEdges(bool vis);
262 vtkBooleanMacro(ColorEdges, bool);
264
266
269 void SetEdgeSelection(bool vis);
271 vtkBooleanMacro(EdgeSelection, bool);
273
275
278 void SetEnabledEdgesArrayName(const char* name);
281
283
286 void SetEnableEdgesByArray(bool vis);
289
291
294 void SetEnabledVerticesArrayName(const char* name);
297
299
305
307
310 void SetScalingArrayName(const char* name);
311 const char* GetScalingArrayName();
313
315
318 void SetScaledGlyphs(bool arg);
320 vtkBooleanMacro(ScaledGlyphs, bool);
322
324
342 void SetLayoutStrategy(const char* name);
343 void SetLayoutStrategyToRandom() { this->SetLayoutStrategy("Random"); }
344 void SetLayoutStrategyToForceDirected() { this->SetLayoutStrategy("Force Directed"); }
345 void SetLayoutStrategyToSimple2D() { this->SetLayoutStrategy("Simple 2D"); }
346 void SetLayoutStrategyToClustering2D() { this->SetLayoutStrategy("Clustering 2D"); }
347 void SetLayoutStrategyToCommunity2D() { this->SetLayoutStrategy("Community 2D"); }
348 void SetLayoutStrategyToFast2D() { this->SetLayoutStrategy("Fast 2D"); }
349 void SetLayoutStrategyToPassThrough() { this->SetLayoutStrategy("Pass Through"); }
350 void SetLayoutStrategyToCircular() { this->SetLayoutStrategy("Circular"); }
351 void SetLayoutStrategyToTree() { this->SetLayoutStrategy("Tree"); }
352 void SetLayoutStrategyToCosmicTree() { this->SetLayoutStrategy("Cosmic Tree"); }
353 void SetLayoutStrategyToCone() { this->SetLayoutStrategy("Cone"); }
354 void SetLayoutStrategyToSpanTree() { this->SetLayoutStrategy("Span Tree"); }
357
359
367
369
376 void SetEdgeLayoutStrategy(const char* name);
377 void SetEdgeLayoutStrategyToArcParallel() { this->SetEdgeLayoutStrategy("Arc Parallel"); }
378 void SetEdgeLayoutStrategyToPassThrough() { this->SetEdgeLayoutStrategy("Pass Through"); }
381
383
391
397 void AddIconType(const char* type, int index);
398
403
408 void SetIconAlignment(int alignment);
409
411
414 void SetIconVisibility(bool b);
416 vtkBooleanMacro(IconVisibility, bool);
418
420
423 void SetIconArrayName(const char* name);
424 const char* GetIconArrayName();
426
428
431 void SetGlyphType(int type);
434
436
439 virtual void SetVertexLabelFontSize(const int size);
442
444
447 virtual void SetEdgeLabelFontSize(const int size);
448 virtual int GetEdgeLabelFontSize();
450
452
458
460
466
471
478 virtual int IsLayoutComplete();
479
490 virtual void UpdateLayout();
491
492protected:
495
497
503 // Called to process events. Overrides behavior in vtkRenderView.
504 void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData) override;
506
507private:
508 vtkGraphLayoutView(const vtkGraphLayoutView&) = delete;
509 void operator=(const vtkGraphLayoutView&) = delete;
510 bool VertexLabelsRequested;
511 bool EdgeLabelsRequested;
512};
513
514#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.
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()
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.
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.
virtual void SetEdgeLabelFontSize(const int size)
The size of the font used for edge labeling.
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:113
abstract base class for most VTK objects
Definition: vtkObject.h:82
A view containing a renderer.
Definition: vtkRenderView.h:84
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:132