VTK  9.3.0
vtkRenderedGraphRepresentation.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
13#ifndef vtkRenderedGraphRepresentation_h
14#define vtkRenderedGraphRepresentation_h
15
17#include "vtkSmartPointer.h" // for SP ivars
18#include "vtkViewsInfovisModule.h" // For export macro
19
20VTK_ABI_NAMESPACE_BEGIN
21class vtkActor;
22class vtkApplyColors;
23class vtkApplyIcons;
24class vtkEdgeCenters;
25class vtkEdgeLayout;
27class vtkGraphLayout;
33class vtkInformation;
35class vtkLookupTable;
38class vtkPolyData;
42class vtkRenderView;
45class vtkTextProperty;
48class vtkVertexDegree;
49class vtkView;
50class vtkViewTheme;
51
52class VTKVIEWSINFOVIS_EXPORT vtkRenderedGraphRepresentation : public vtkRenderedRepresentation
53{
54public:
57 void PrintSelf(ostream& os, vtkIndent indent) override;
58
59 // ------------------------------------------------------------------------
60 // Vertex labels
61
62 virtual void SetVertexLabelArrayName(const char* name);
63 virtual const char* GetVertexLabelArrayName();
64 virtual void SetVertexLabelPriorityArrayName(const char* name);
65 virtual const char* GetVertexLabelPriorityArrayName();
66 virtual void SetVertexLabelVisibility(bool b);
68 vtkBooleanMacro(VertexLabelVisibility, bool);
71 vtkSetStringMacro(VertexHoverArrayName);
72 vtkGetStringMacro(VertexHoverArrayName);
74
77 vtkSetMacro(HideVertexLabelsOnInteraction, bool);
78 vtkGetMacro(HideVertexLabelsOnInteraction, bool);
79 vtkBooleanMacro(HideVertexLabelsOnInteraction, bool);
81
82 // ------------------------------------------------------------------------
83 // Edge labels
84
85 virtual void SetEdgeLabelArrayName(const char* name);
86 virtual const char* GetEdgeLabelArrayName();
87 virtual void SetEdgeLabelPriorityArrayName(const char* name);
88 virtual const char* GetEdgeLabelPriorityArrayName();
89 virtual void SetEdgeLabelVisibility(bool b);
90 virtual bool GetEdgeLabelVisibility();
91 vtkBooleanMacro(EdgeLabelVisibility, bool);
94 vtkSetStringMacro(EdgeHoverArrayName);
95 vtkGetStringMacro(EdgeHoverArrayName);
97
100 vtkSetMacro(HideEdgeLabelsOnInteraction, bool);
101 vtkGetMacro(HideEdgeLabelsOnInteraction, bool);
102 vtkBooleanMacro(HideEdgeLabelsOnInteraction, bool);
104
105 // ------------------------------------------------------------------------
106 // Vertex icons
107
108 virtual void SetVertexIconArrayName(const char* name);
109 virtual const char* GetVertexIconArrayName();
110 virtual void SetVertexIconPriorityArrayName(const char* name);
111 virtual const char* GetVertexIconPriorityArrayName();
112 virtual void SetVertexIconVisibility(bool b);
114 vtkBooleanMacro(VertexIconVisibility, bool);
115 virtual void AddVertexIconType(const char* name, int type);
116 virtual void ClearVertexIconTypes();
117 virtual void SetUseVertexIconTypeMap(bool b);
119 vtkBooleanMacro(UseVertexIconTypeMap, bool);
120 virtual void SetVertexIconAlignment(int align);
122 virtual void SetVertexSelectedIcon(int icon);
124 virtual void SetVertexDefaultIcon(int icon);
125 virtual int GetVertexDefaultIcon();
126
128
138 virtual void SetVertexIconSelectionMode(int mode);
140 virtual void SetVertexIconSelectionModeToSelectedIcon() { this->SetVertexIconSelectionMode(0); }
141 virtual void SetVertexIconSelectionModeToSelectedOffset() { this->SetVertexIconSelectionMode(1); }
142 virtual void SetVertexIconSelectionModeToAnnotationIcon() { this->SetVertexIconSelectionMode(2); }
144 {
145 this->SetVertexIconSelectionMode(3);
146 }
148
149 // ------------------------------------------------------------------------
150 // Edge icons
151
152 virtual void SetEdgeIconArrayName(const char* name);
153 virtual const char* GetEdgeIconArrayName();
154 virtual void SetEdgeIconPriorityArrayName(const char* name);
155 virtual const char* GetEdgeIconPriorityArrayName();
156 virtual void SetEdgeIconVisibility(bool b);
157 virtual bool GetEdgeIconVisibility();
158 vtkBooleanMacro(EdgeIconVisibility, bool);
159 virtual void AddEdgeIconType(const char* name, int type);
160 virtual void ClearEdgeIconTypes();
161 virtual void SetUseEdgeIconTypeMap(bool b);
162 virtual bool GetUseEdgeIconTypeMap();
163 vtkBooleanMacro(UseEdgeIconTypeMap, bool);
164 virtual void SetEdgeIconAlignment(int align);
165 virtual int GetEdgeIconAlignment();
166
167 // ------------------------------------------------------------------------
168 // Vertex colors
169
170 virtual void SetColorVerticesByArray(bool b);
172 vtkBooleanMacro(ColorVerticesByArray, bool);
173 virtual void SetVertexColorArrayName(const char* name);
174 virtual const char* GetVertexColorArrayName();
175
176 // ------------------------------------------------------------------------
177 // Edge colors
178
179 virtual void SetColorEdgesByArray(bool b);
180 virtual bool GetColorEdgesByArray();
181 vtkBooleanMacro(ColorEdgesByArray, bool);
182 virtual void SetEdgeColorArrayName(const char* name);
183 virtual const char* GetEdgeColorArrayName();
184
185 // ------------------------------------------------------------------------
186 // Enabled vertices
187
188 virtual void SetEnableVerticesByArray(bool b);
190 vtkBooleanMacro(EnableVerticesByArray, bool);
191 virtual void SetEnabledVerticesArrayName(const char* name);
192 virtual const char* GetEnabledVerticesArrayName();
193
194 // ------------------------------------------------------------------------
195 // Enabled edges
196
197 virtual void SetEnableEdgesByArray(bool b);
198 virtual bool GetEnableEdgesByArray();
199 vtkBooleanMacro(EnableEdgesByArray, bool);
200 virtual void SetEnabledEdgesArrayName(const char* name);
201 virtual const char* GetEnabledEdgesArrayName();
202
203 virtual void SetEdgeVisibility(bool b);
204 virtual bool GetEdgeVisibility();
205 vtkBooleanMacro(EdgeVisibility, bool);
206
207 void SetEdgeSelection(bool b);
209
210 // ------------------------------------------------------------------------
211 // Vertex layout strategy
212
214
220
222
225 virtual void SetLayoutStrategy(const char* name);
226 vtkGetStringMacro(LayoutStrategyName);
228
232 void SetLayoutStrategyToRandom() { this->SetLayoutStrategy("Random"); }
233 void SetLayoutStrategyToForceDirected() { this->SetLayoutStrategy("Force Directed"); }
234 void SetLayoutStrategyToSimple2D() { this->SetLayoutStrategy("Simple 2D"); }
235 void SetLayoutStrategyToClustering2D() { this->SetLayoutStrategy("Clustering 2D"); }
236 void SetLayoutStrategyToCommunity2D() { this->SetLayoutStrategy("Community 2D"); }
237 void SetLayoutStrategyToFast2D() { this->SetLayoutStrategy("Fast 2D"); }
238 void SetLayoutStrategyToPassThrough() { this->SetLayoutStrategy("Pass Through"); }
239 void SetLayoutStrategyToCircular() { this->SetLayoutStrategy("Circular"); }
240 void SetLayoutStrategyToTree() { this->SetLayoutStrategy("Tree"); }
241 void SetLayoutStrategyToCosmicTree() { this->SetLayoutStrategy("Cosmic Tree"); }
242 void SetLayoutStrategyToCone() { this->SetLayoutStrategy("Cone"); }
243 void SetLayoutStrategyToSpanTree() { this->SetLayoutStrategy("Span Tree"); }
244
250 const char* xarr, const char* yarr = nullptr, const char* zarr = nullptr);
251
263 bool radial, double angle = 90, double leafSpacing = 0.9, double logSpacing = 1.0);
264
275 virtual void SetLayoutStrategyToCosmicTree(const char* nodeSizeArrayName,
276 bool sizeLeafNodesOnly = true, int layoutDepth = 0, vtkIdType layoutRoot = -1);
277
278 // ------------------------------------------------------------------------
279 // Edge layout strategy
280
282
287 void SetEdgeLayoutStrategyToArcParallel() { this->SetEdgeLayoutStrategy("Arc Parallel"); }
288 void SetEdgeLayoutStrategyToPassThrough() { this->SetEdgeLayoutStrategy("Pass Through"); }
290
295 virtual void SetEdgeLayoutStrategyToGeo(double explodeFactor = 0.2);
296
298
301 virtual void SetEdgeLayoutStrategy(const char* name);
302 vtkGetStringMacro(EdgeLayoutStrategyName);
304
305 // ------------------------------------------------------------------------
306 // Miscellaneous
307
311 void ApplyViewTheme(vtkViewTheme* theme) override;
312
314
317 virtual void SetGlyphType(int type);
318 virtual int GetGlyphType();
320
322
325 virtual void SetScaling(bool b);
326 virtual bool GetScaling();
327 vtkBooleanMacro(Scaling, bool);
329
331
334 virtual void SetScalingArrayName(const char* name);
335 virtual const char* GetScalingArrayName();
337
339
342 virtual void SetVertexScalarBarVisibility(bool b);
344 virtual void SetEdgeScalarBarVisibility(bool b);
347
349
355
359 virtual bool IsLayoutComplete();
360
364 virtual void UpdateLayout();
365
369 void ComputeSelectedGraphBounds(double bounds[6]);
370
371protected:
374
376
379 bool AddToView(vtkView* view) override;
380 bool RemoveFromView(vtkView* view) override;
382
383 void PrepareForRendering(vtkRenderView* view) override;
384
386
387 std::string GetHoverStringInternal(vtkSelection* sel) override;
388
393 vtkInformationVector* outputVector) override;
394
396
428
431
432 vtkSetStringMacro(VertexColorArrayNameInternal);
433 vtkGetStringMacro(VertexColorArrayNameInternal);
435
436 vtkSetStringMacro(EdgeColorArrayNameInternal);
437 vtkGetStringMacro(EdgeColorArrayNameInternal);
439
440 vtkSetStringMacro(ScalingArrayNameInternal);
441 vtkGetStringMacro(ScalingArrayNameInternal);
443
444 vtkSetStringMacro(LayoutStrategyName);
446 vtkSetStringMacro(EdgeLayoutStrategyName);
450
452
453private:
455 void operator=(const vtkRenderedGraphRepresentation&) = delete;
456};
457
458VTK_ABI_NAMESPACE_END
459#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:41
apply colors to a data set.
apply icons to a data set.
generate points at center of edges
abstract superclass for all edge layout strategies
layout graph edges
abstract superclass for all graph layout strategies
layout a graph in 2 or 3 dimensions
create glyphs for graph vertices
convert a vtkGraph a set of points.
convert a vtkGraph to vtkPolyData
Filter that generates a polydata consisting of quads with texture coordinates referring to a set of i...
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
map scalar values into colors via a lookup table
Perturbs vertices that are coincident.
build a label hierarchy for a graph or point set.
draw vtkPolyData onto the image plane
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:80
Removes the rows/edges/vertices of input data flagged by ann.
A view containing a renderer.
bool AddToView(vtkView *view) override
Called by the view to add/remove this representation.
virtual void SetEdgeIconVisibility(bool b)
virtual void SetEnabledEdgesArrayName(const char *name)
virtual const char * GetEdgeLabelArrayName()
virtual void SetEdgeLayoutStrategy(vtkEdgeLayoutStrategy *strategy)
Set/get the graph layout strategy.
virtual void SetLayoutStrategyToTree(bool radial, double angle=90, double leafSpacing=0.9, double logSpacing=1.0)
Set the layout strategy to a tree layout.
virtual bool GetScaling()
Set whether to scale vertex glyphs.
virtual void ClearVertexIconTypes()
vtkSmartPointer< vtkActor > OutlineActor
Internal filter classes.
void PrepareForRendering(vtkRenderView *view) override
The view will call this method before every render.
vtkSmartPointer< vtkApplyColors > ApplyColors
Internal filter classes.
virtual const char * GetVertexColorArrayName()
virtual void SetScaling(bool b)
Set whether to scale vertex glyphs.
static vtkRenderedGraphRepresentation * New()
virtual void SetColorEdgesByArray(bool b)
virtual bool GetColorEdgesByArray()
virtual void SetLayoutStrategyToCosmicTree(const char *nodeSizeArrayName, bool sizeLeafNodesOnly=true, int layoutDepth=0, vtkIdType layoutRoot=-1)
Set the layout strategy to a cosmic tree layout.
virtual void SetLayoutStrategy(const char *name)
Get/set the layout strategy by name.
virtual void SetEdgeLayoutStrategy(const char *name)
Set the edge layout strategy by name.
vtkSmartPointer< vtkActor > VertexActor
Internal filter classes.
virtual void SetVertexLabelTextProperty(vtkTextProperty *p)
void ApplyViewTheme(vtkViewTheme *theme) override
Apply a theme to this representation.
virtual const char * GetVertexIconPriorityArrayName()
vtkSmartPointer< vtkTexturedActor2D > VertexIconActor
Internal filter classes.
virtual int GetVertexIconSelectionMode()
Set the mode to one of.
vtkSmartPointer< vtkTransformCoordinateSystems > VertexIconTransform
Internal filter classes.
virtual bool GetColorVerticesByArray()
virtual void SetEnableEdgesByArray(bool b)
virtual void SetVertexLabelArrayName(const char *name)
virtual vtkScalarBarWidget * GetEdgeScalarBar()
Obtain the scalar bar widget used to draw a legend for the vertices/edges.
virtual void SetEdgeVisibility(bool b)
std::string GetHoverStringInternal(vtkSelection *sel) override
Subclasses may override this method to generate the hover text.
vtkSmartPointer< vtkGraphLayout > Layout
Internal filter classes.
virtual bool GetEdgeLabelVisibility()
vtkSmartPointer< vtkScalarBarWidget > EdgeScalarBar
Internal filter classes.
virtual int GetGlyphType()
Set the graph vertex glyph type.
virtual vtkEdgeLayoutStrategy * GetEdgeLayoutStrategy()
Set/get the graph layout strategy.
vtkSmartPointer< vtkGraphToPoints > VertexIconPoints
Internal filter classes.
virtual bool GetEnableEdgesByArray()
vtkSmartPointer< vtkPointSetToLabelHierarchy > EdgeLabelHierarchy
Internal filter classes.
virtual bool GetEdgeIconVisibility()
virtual const char * GetEdgeLabelPriorityArrayName()
virtual void SetVertexIconSelectionMode(int mode)
Set the mode to one of.
virtual bool GetEnableVerticesByArray()
virtual int GetVertexIconAlignment()
vtkSmartPointer< vtkApplyIcons > ApplyVertexIcons
Internal filter classes.
virtual void SetEnabledVerticesArrayName(const char *name)
virtual vtkScalarBarWidget * GetVertexScalarBar()
Obtain the scalar bar widget used to draw a legend for the vertices/edges.
virtual void AddEdgeIconType(const char *name, int type)
virtual void SetVertexDefaultIcon(int icon)
virtual void AddVertexIconType(const char *name, int type)
vtkSmartPointer< vtkPolyData > EmptyPolyData
Internal filter classes.
vtkSmartPointer< vtkPolyDataMapper2D > VertexIconMapper
Internal filter classes.
virtual const char * GetVertexLabelPriorityArrayName()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkSmartPointer< vtkEdgeCenters > EdgeCenters
Internal filter classes.
vtkSelection * ConvertSelection(vtkView *view, vtkSelection *sel) override
Convert the selection to a type appropriate for sharing with other representations through vtkAnnotat...
virtual void UpdateLayout()
Performs another iteration on the graph layout.
vtkSmartPointer< vtkPointSetToLabelHierarchy > VertexLabelHierarchy
Internal filter classes.
virtual void SetVertexIconSelectionModeToAnnotationIcon()
Set the mode to one of.
virtual void SetEdgeLabelTextProperty(vtkTextProperty *p)
virtual void SetScalingArrayName(const char *name)
Set the glyph scaling array name.
void SetEdgeLayoutStrategyToPassThrough()
Set/get the graph layout strategy.
virtual void SetVertexScalarBarVisibility(bool b)
Vertex/edge scalar bar visibility.
void SetLayoutStrategyToRandom()
Set predefined layout strategies.
virtual void SetLayoutStrategy(vtkGraphLayoutStrategy *strategy)
Set/get the graph layout strategy.
virtual void SetVertexIconSelectionModeToIgnoreSelection()
Set the mode to one of.
virtual bool IsLayoutComplete()
Whether the current graph layout is complete.
virtual vtkTextProperty * GetVertexLabelTextProperty()
virtual void SetEdgeIconAlignment(int align)
virtual void SetVertexIconVisibility(bool b)
virtual void SetVertexSelectedIcon(int icon)
vtkSmartPointer< vtkEdgeLayout > EdgeLayout
Internal filter classes.
bool RemoveFromView(vtkView *view) override
Called by the view to add/remove this representation.
virtual void SetEdgeIconArrayName(const char *name)
virtual const char * GetEdgeIconPriorityArrayName()
virtual const char * GetEdgeIconArrayName()
virtual const char * GetEnabledVerticesArrayName()
virtual void SetVertexIconSelectionModeToSelectedOffset()
Set the mode to one of.
virtual void SetEdgeColorArrayName(const char *name)
virtual void SetColorVerticesByArray(bool b)
virtual vtkGraphLayoutStrategy * GetLayoutStrategy()
Set/get the graph layout strategy.
virtual const char * GetVertexIconArrayName()
vtkSmartPointer< vtkRemoveHiddenData > RemoveHiddenGraph
Internal filter classes.
virtual void SetUseVertexIconTypeMap(bool b)
virtual void SetVertexIconAlignment(int align)
virtual bool GetVertexLabelVisibility()
vtkSmartPointer< vtkPolyDataMapper > VertexMapper
Internal filter classes.
virtual vtkTextProperty * GetEdgeLabelTextProperty()
vtkSmartPointer< vtkGraphToGlyphs > VertexGlyph
Internal filter classes.
virtual bool GetUseVertexIconTypeMap()
vtkSmartPointer< vtkPolyDataMapper > EdgeMapper
Internal filter classes.
virtual void SetEdgeLayoutStrategyToGeo(double explodeFactor=0.2)
Set the edge layout strategy to a geospatial arced strategy appropriate for vtkGeoView.
vtkSmartPointer< vtkPerturbCoincidentVertices > Coincident
Internal filter classes.
virtual void SetVertexColorArrayName(const char *name)
virtual void SetEdgeLabelPriorityArrayName(const char *name)
virtual bool GetUseEdgeIconTypeMap()
virtual void SetEdgeIconPriorityArrayName(const char *name)
virtual void SetVertexIconSelectionModeToSelectedIcon()
Set the mode to one of.
virtual void SetVertexLabelVisibility(bool b)
virtual void SetEnableVerticesByArray(bool b)
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Connect inputs to internal pipeline.
virtual const char * GetEdgeColorArrayName()
vtkSmartPointer< vtkGraphToPoints > GraphToPoints
Internal filter classes.
virtual void SetUseEdgeIconTypeMap(bool b)
virtual void SetVertexIconPriorityArrayName(const char *name)
virtual void SetGlyphType(int type)
Set the graph vertex glyph type.
virtual void SetVertexLabelPriorityArrayName(const char *name)
virtual void SetEdgeLabelArrayName(const char *name)
vtkSmartPointer< vtkActor > EdgeActor
Internal filter classes.
vtkSmartPointer< vtkScalarBarWidget > VertexScalarBar
Internal filter classes.
void SetEdgeLayoutStrategyToArcParallel()
Set/get the graph layout strategy.
~vtkRenderedGraphRepresentation() override
virtual const char * GetEnabledEdgesArrayName()
vtkSmartPointer< vtkGraphToGlyphs > OutlineGlyph
Internal filter classes.
virtual void SetLayoutStrategyToAssignCoordinates(const char *xarr, const char *yarr=nullptr, const char *zarr=nullptr)
Set the layout strategy to use coordinates from arrays.
vtkSmartPointer< vtkPolyDataMapper > OutlineMapper
Internal filter classes.
virtual void SetVertexIconArrayName(const char *name)
vtkSmartPointer< vtkVertexDegree > VertexDegree
Internal filter classes.
vtkSmartPointer< vtkGraphToPolyData > GraphToPoly
Internal filter classes.
virtual void SetEdgeScalarBarVisibility(bool b)
Vertex/edge scalar bar visibility.
virtual bool GetEdgeScalarBarVisibility()
Vertex/edge scalar bar visibility.
vtkSmartPointer< vtkIconGlyphFilter > VertexIconGlyph
Internal filter classes.
virtual const char * GetScalingArrayName()
Set the glyph scaling array name.
virtual const char * GetVertexLabelArrayName()
void ComputeSelectedGraphBounds(double bounds[6])
Compute the bounding box of the selected subgraph.
virtual bool GetVertexScalarBarVisibility()
Vertex/edge scalar bar visibility.
virtual void SetEdgeLabelVisibility(bool b)
virtual bool GetVertexIconVisibility()
2D widget for manipulating a scalar bar
Superclass for mapping scalar values to colors.
data object that represents a "selection" in VTK.
Hold a reference to a vtkObjectBase instance.
represent text properties.
actor that draws 2D data with texture support
transform points into different coordinate systems
Adds an attribute array with the degree of each vertex.
Sets theme colors for a graphical view.
The superclass for all views.
Definition vtkView.h:46
int vtkIdType
Definition vtkType.h:315