00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00036 #ifndef __vtkMutableUndirectedGraph_h
00037 #define __vtkMutableUndirectedGraph_h
00038
00039 #include "vtkUndirectedGraph.h"
00040
00041 class vtkEdgeListIterator;
00042 class vtkGraphEdge;
00043
00044 class VTK_FILTERING_EXPORT vtkMutableUndirectedGraph : public vtkUndirectedGraph
00045 {
00046 public:
00047 static vtkMutableUndirectedGraph *New();
00048 vtkTypeRevisionMacro(vtkMutableUndirectedGraph, vtkUndirectedGraph);
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050
00059 vtkIdType AddVertex();
00060
00074 vtkIdType AddVertex(vtkVariantArray *propertyArr);
00075
00076
00078
00088 vtkIdType AddVertex(const vtkVariant& pedigreeId);
00089
00091
00098 vtkEdgeType AddEdge(vtkIdType u, vtkIdType v);
00099
00101
00107 vtkEdgeType AddEdge(vtkIdType u, vtkIdType v,
00108 vtkVariantArray *propertyArr);
00110
00111
00113
00120 vtkEdgeType AddEdge(const vtkVariant& uPedigreeId, vtkIdType v,
00121 vtkVariantArray *propertyArr = 0);
00123
00125
00132 vtkEdgeType AddEdge(vtkIdType u, const vtkVariant& vPedigreeId,
00133 vtkVariantArray *propertyArr = 0);
00135
00137
00144 vtkEdgeType AddEdge(const vtkVariant& uPedigreeId,
00145 const vtkVariant& vPedigreeId,
00146 vtkVariantArray *propertyArr = 0);
00147
00149
00158 void LazyAddVertex();
00159
00171 void LazyAddVertex(vtkVariantArray *propertyArr);
00172
00173
00175
00181 void LazyAddVertex(const vtkVariant& pedigreeId);
00182
00184
00189 void LazyAddEdge(vtkIdType u, vtkIdType v);
00190
00198 void LazyAddEdge(vtkIdType u, vtkIdType v, vtkVariantArray *propertyArr);
00199
00200
00202
00210 void LazyAddEdge(const vtkVariant& uPedigreeId, vtkIdType v,
00211 vtkVariantArray *propertyArr = 0);
00213
00215
00223 void LazyAddEdge(vtkIdType u, const vtkVariant& vPedigreeId,
00224 vtkVariantArray *propertyArr = 0);
00226
00228
00236 void LazyAddEdge(const vtkVariant& uPedigreeId,
00237 const vtkVariant& vPedigreeId,
00238 vtkVariantArray *propertyArr = 0);
00239
00241
00245 vtkGraphEdge *AddGraphEdge(vtkIdType u, vtkIdType v);
00246
00247 protected:
00248 vtkMutableUndirectedGraph();
00249 ~vtkMutableUndirectedGraph();
00250
00252 vtkGraphEdge *GraphEdge;
00253
00254 private:
00255 vtkMutableUndirectedGraph(const vtkMutableUndirectedGraph&);
00256 void operator=(const vtkMutableUndirectedGraph&);
00257 };
00258
00259 #endif