VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPBGLRandomGraphSource.h 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 -------------------------------------------------------------------------*/ 00040 #ifndef __vtkPBGLRandomGraphSource_h 00041 #define __vtkPBGLRandomGraphSource_h 00042 00043 #include "vtkInfovisParallelModule.h" // For export macro 00044 #include "vtkGraphAlgorithm.h" 00045 00046 class vtkGraph; 00047 class vtkPVXMLElement; 00048 00049 class VTKINFOVISPARALLEL_EXPORT vtkPBGLRandomGraphSource : public vtkGraphAlgorithm 00050 { 00051 public: 00052 static vtkPBGLRandomGraphSource* New(); 00053 vtkTypeMacro(vtkPBGLRandomGraphSource,vtkGraphAlgorithm); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00055 00057 00058 vtkGetMacro(NumberOfVertices, vtkIdType); 00059 vtkSetClampMacro(NumberOfVertices, vtkIdType, 0, VTK_ID_MAX); 00061 00063 00065 vtkGetMacro(NumberOfEdges, vtkIdType); 00066 vtkSetClampMacro(NumberOfEdges, vtkIdType, 0, VTK_ID_MAX); 00068 00070 00072 vtkGetMacro(EdgeProbability, double); 00073 vtkSetClampMacro(EdgeProbability, double, 0.0, 1.0); 00075 00077 00079 vtkSetMacro(IncludeEdgeWeights, bool); 00080 vtkGetMacro(IncludeEdgeWeights, bool); 00081 vtkBooleanMacro(IncludeEdgeWeights, bool); 00083 00085 00086 vtkSetStringMacro(EdgeWeightArrayName); 00087 vtkGetStringMacro(EdgeWeightArrayName); 00089 00091 00093 vtkSetMacro(Directed, bool); 00094 vtkGetMacro(Directed, bool); 00095 vtkBooleanMacro(Directed, bool); 00097 00099 00105 vtkSetMacro(UseEdgeProbability, bool); 00106 vtkGetMacro(UseEdgeProbability, bool); 00107 vtkBooleanMacro(UseEdgeProbability, bool); 00109 00111 00113 vtkSetMacro(StartWithTree, bool); 00114 vtkGetMacro(StartWithTree, bool); 00115 vtkBooleanMacro(StartWithTree, bool); 00117 00119 00121 vtkSetMacro(AllowSelfLoops, bool); 00122 vtkGetMacro(AllowSelfLoops, bool); 00123 vtkBooleanMacro(AllowSelfLoops, bool); 00125 00127 00132 vtkSetMacro(AllowBalancedEdgeDistribution, bool); 00133 vtkGetMacro(AllowBalancedEdgeDistribution, bool); 00134 vtkBooleanMacro(AllowBalancedEdgeDistribution, bool); 00136 00138 00139 vtkSetMacro(GeneratePedigreeIds, bool); 00140 vtkGetMacro(GeneratePedigreeIds, bool); 00141 vtkBooleanMacro(GeneratePedigreeIds, bool); 00143 00145 00147 vtkSetStringMacro(VertexPedigreeIdArrayName); 00148 vtkGetStringMacro(VertexPedigreeIdArrayName); 00150 00152 00153 vtkSetStringMacro(EdgePedigreeIdArrayName); 00154 vtkGetStringMacro(EdgePedigreeIdArrayName); 00156 00158 00161 vtkSetMacro(Seed, int); 00162 vtkGetMacro(Seed, int); 00164 00165 protected: 00166 vtkPBGLRandomGraphSource(); 00167 ~vtkPBGLRandomGraphSource(); 00168 vtkIdType NumberOfVertices; 00169 vtkIdType NumberOfEdges; 00170 double EdgeProbability; 00171 bool Directed; 00172 bool UseEdgeProbability; 00173 bool StartWithTree; 00174 bool IncludeEdgeWeights; 00175 bool AllowSelfLoops; 00176 bool AllowBalancedEdgeDistribution; 00177 bool GeneratePedigreeIds; 00178 int Seed; 00179 char* EdgeWeightArrayName; 00180 char* VertexPedigreeIdArrayName; 00181 char* EdgePedigreeIdArrayName; 00182 00183 virtual int RequestData( 00184 vtkInformation*, 00185 vtkInformationVector**, 00186 vtkInformationVector*); 00187 00189 00190 virtual int RequestDataObject(vtkInformation*, 00191 vtkInformationVector** inputVector, 00192 vtkInformationVector* outputVector); 00194 00195 private: 00196 vtkPBGLRandomGraphSource(const vtkPBGLRandomGraphSource&); // Not implemented 00197 void operator=(const vtkPBGLRandomGraphSource&); // Not implemented 00198 }; 00199 00200 #endif 00201