VTK  9.2.6
vtkMutableUndirectedGraph.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMutableUndirectedGraph.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 -------------------------------------------------------------------------*/
146 #ifndef vtkMutableUndirectedGraph_h
147 #define vtkMutableUndirectedGraph_h
148 
149 #include "vtkCommonDataModelModule.h" // For export macro
150 #include "vtkUndirectedGraph.h"
151 
152 class vtkEdgeListIterator;
153 class vtkGraphEdge;
154 
155 class VTKCOMMONDATAMODEL_EXPORT vtkMutableUndirectedGraph : public vtkUndirectedGraph
156 {
157 public:
160  void PrintSelf(ostream& os, vtkIndent indent) override;
161 
177 
189 
209 
225  vtkIdType AddVertex(const vtkVariant& pedigreeId);
226 
236 
250 
263  vtkEdgeType AddEdge(const vtkVariant& u, vtkIdType v, vtkVariantArray* propertyArr = nullptr);
264 
277  vtkEdgeType AddEdge(vtkIdType u, const vtkVariant& v, vtkVariantArray* propertyArr = nullptr);
278 
292  const vtkVariant& u, const vtkVariant& v, vtkVariantArray* propertyArr = nullptr);
293 
302 
316  void LazyAddVertex(vtkVariantArray* propertyArr);
317 
328  void LazyAddVertex(const vtkVariant& pedigreeId);
329 
339 
352  void LazyAddEdge(vtkIdType u, vtkIdType v, vtkVariantArray* propertyArr);
353 
366  void LazyAddEdge(const vtkVariant& u, vtkIdType v, vtkVariantArray* propertyArr = nullptr);
367 
380  void LazyAddEdge(vtkIdType u, const vtkVariant& v, vtkVariantArray* propertyArr = nullptr);
381 
395  const vtkVariant& u, const vtkVariant& v, vtkVariantArray* propertyArr = nullptr);
396 
406 
412 
418 
423 
428 
429 protected:
432 
437 
438 private:
440  void operator=(const vtkMutableUndirectedGraph&) = delete;
441 };
442 
443 #endif
Iterates through all edges in a graph.
Representation of a single graph edge.
Definition: vtkGraphEdge.h:40
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:119
An editable undirected graph.
void RemoveVertices(vtkIdTypeArray *arr)
Removes a collection of vertices from the graph along with any connected edges.
void LazyAddEdge(vtkIdType u, const vtkVariant &v, vtkVariantArray *propertyArr=nullptr)
Adds an undirected edge from u to v, where u is a vertex index and v is a vertex pedigree ID.
~vtkMutableUndirectedGraph() override
void LazyAddEdge(const vtkVariant &u, vtkIdType v, vtkVariantArray *propertyArr=nullptr)
Adds an undirected edge from u to v, where u is a vertex pedigree ID and v is a vertex index.
void LazyAddEdge(vtkIdType u, vtkIdType v)
Adds an undirected edge from u to v, where u and v are vertex indices.
void LazyAddVertex()
Adds a vertex to the graph.
void LazyAddVertex(const vtkVariant &pedigreeId)
Adds a vertex with the given pedigreeID to the graph.
vtkGraphEdge * GraphEdge
Graph edge that is reused of AddGraphEdge calls.
vtkIdType AddVertex(const vtkVariant &pedigreeId)
Adds a vertex with the given pedigreeID to the graph and returns the index of the new vertex.
virtual vtkIdType SetNumberOfVertices(vtkIdType numVerts)
Allocates space for the specified number of vertices in the graph's internal data structures.
void LazyAddVertex(vtkVariantArray *propertyArr)
Adds a vertex to the graph with associated properties defined in propertyArr.
void LazyAddEdge(vtkIdType u, vtkIdType v, vtkVariantArray *propertyArr)
Adds an undirected edge from u to v, where u and v are vertex indices.
vtkEdgeType AddEdge(const vtkVariant &u, const vtkVariant &v, vtkVariantArray *propertyArr=nullptr)
Adds a directed edge from u to v, where u and v are vertex pedigree IDs, and returns a vtkEdgeType st...
void LazyAddEdge(const vtkVariant &u, const vtkVariant &v, vtkVariantArray *propertyArr=nullptr)
Adds an undirected edge from u to v, where u and v are vertex pedigree IDs.
vtkEdgeType AddEdge(vtkIdType u, const vtkVariant &v, vtkVariantArray *propertyArr=nullptr)
Adds a directed edge from u to v, where u is a vertex index and v is a vertex pedigree ID,...
vtkIdType AddVertex(vtkVariantArray *propertyArr)
Adds a vertex to the graph with associated properties defined in propertyArr and returns the index of...
void RemoveVertex(vtkIdType v)
Removes the vertex from the graph along with any connected edges.
vtkGraphEdge * AddGraphEdge(vtkIdType u, vtkIdType v)
Variant of AddEdge() that returns a heavyweight vtkGraphEdge object.
static vtkMutableUndirectedGraph * New()
void RemoveEdge(vtkIdType e)
Removes the edge from the graph.
vtkIdType AddVertex()
Adds a vertex to the graph and returns the index of the new vertex.
vtkEdgeType AddEdge(vtkIdType u, vtkIdType v)
Adds an undirected edge from u to v, where u and v are vertex indices, and returns a vtkEdgeType stru...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkEdgeType AddEdge(vtkIdType u, vtkIdType v, vtkVariantArray *propertyArr)
Adds an undirected edge from u to v, where u and v are vertex indices, with associated properties def...
void RemoveEdges(vtkIdTypeArray *arr)
Removes a collection of edges from the graph.
vtkEdgeType AddEdge(const vtkVariant &u, vtkIdType v, vtkVariantArray *propertyArr=nullptr)
Adds an undirected edge from u to v, where u is a vertex pedigree ID and v is a vertex index,...
An undirected graph.
An array holding vtkVariants.
A atomic type representing the union of many types.
Definition: vtkVariant.h:149
int vtkIdType
Definition: vtkType.h:332