VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkMutableUndirectedGraph.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright 2008 Sandia Corporation. 00017 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00018 the U.S. Government retains certain rights in this software. 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 //BTX 00078 00088 vtkIdType AddVertex(const vtkVariant& pedigreeId); 00089 //ETX 00091 00098 vtkEdgeType AddEdge(vtkIdType u, vtkIdType v); 00099 00101 00107 vtkEdgeType AddEdge(vtkIdType u, vtkIdType v, 00108 vtkVariantArray *propertyArr); 00110 00111 //BTX 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 //ETX 00149 00158 void LazyAddVertex(); 00159 00171 void LazyAddVertex(vtkVariantArray *propertyArr); 00172 00173 //BTX 00175 00181 void LazyAddVertex(const vtkVariant& pedigreeId); 00182 //ETX 00184 00189 void LazyAddEdge(vtkIdType u, vtkIdType v); 00190 00198 void LazyAddEdge(vtkIdType u, vtkIdType v, vtkVariantArray *propertyArr); 00199 00200 //BTX 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 //ETX 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&); // Not implemented. 00256 void operator=(const vtkMutableUndirectedGraph&); // Not implemented. 00257 }; 00258 00259 #endif