VTK  9.3.20240329
vtkMutableUndirectedGraph.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
130 #ifndef vtkMutableUndirectedGraph_h
131 #define vtkMutableUndirectedGraph_h
132 
133 #include "vtkCommonDataModelModule.h" // For export macro
134 #include "vtkUndirectedGraph.h"
135 
136 VTK_ABI_NAMESPACE_BEGIN
137 class vtkEdgeListIterator;
138 class vtkGraphEdge;
139 
140 class VTKCOMMONDATAMODEL_EXPORT vtkMutableUndirectedGraph : public vtkUndirectedGraph
141 {
142 public:
145  void PrintSelf(ostream& os, vtkIndent indent) override;
146 
162 
174 
194 
210  vtkIdType AddVertex(const vtkVariant& pedigreeId);
211 
221 
235 
248  vtkEdgeType AddEdge(const vtkVariant& u, vtkIdType v, vtkVariantArray* propertyArr = nullptr);
249 
262  vtkEdgeType AddEdge(vtkIdType u, const vtkVariant& v, vtkVariantArray* propertyArr = nullptr);
263 
277  const vtkVariant& u, const vtkVariant& v, vtkVariantArray* propertyArr = nullptr);
278 
287 
301  void LazyAddVertex(vtkVariantArray* propertyArr);
302 
313  void LazyAddVertex(const vtkVariant& pedigreeId);
314 
324 
337  void LazyAddEdge(vtkIdType u, vtkIdType v, vtkVariantArray* propertyArr);
338 
351  void LazyAddEdge(const vtkVariant& u, vtkIdType v, vtkVariantArray* propertyArr = nullptr);
352 
365  void LazyAddEdge(vtkIdType u, const vtkVariant& v, vtkVariantArray* propertyArr = nullptr);
366 
380  const vtkVariant& u, const vtkVariant& v, vtkVariantArray* propertyArr = nullptr);
381 
391 
397 
403 
408 
413 
414 protected:
417 
422 
423 private:
425  void operator=(const vtkMutableUndirectedGraph&) = delete;
426 };
427 
428 VTK_ABI_NAMESPACE_END
429 #endif
Iterates through all edges in a graph.
Representation of a single graph edge.
Definition: vtkGraphEdge.h:25
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:108
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 type representing the union of many types.
Definition: vtkVariant.h:162
int vtkIdType
Definition: vtkType.h:315