00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00037 #ifndef __vtkPBGLRandomGraphSource_h
00038 #define __vtkPBGLRandomGraphSource_h
00039
00040 #include "vtkGraphAlgorithm.h"
00041
00042 class vtkGraph;
00043 class vtkPVXMLElement;
00044
00045 class VTK_PARALLEL_EXPORT vtkPBGLRandomGraphSource : public vtkGraphAlgorithm
00046 {
00047 public:
00048 static vtkPBGLRandomGraphSource* New();
00049 vtkTypeRevisionMacro(vtkPBGLRandomGraphSource,vtkGraphAlgorithm);
00050 void PrintSelf(ostream& os, vtkIndent indent);
00051
00053
00054 vtkGetMacro(NumberOfVertices, vtkIdType);
00055 vtkSetClampMacro(NumberOfVertices, vtkIdType, 0, VTK_LARGE_ID);
00057
00059
00061 vtkGetMacro(NumberOfEdges, vtkIdType);
00062 vtkSetClampMacro(NumberOfEdges, vtkIdType, 0, VTK_LARGE_ID);
00064
00066
00068 vtkGetMacro(EdgeProbability, double);
00069 vtkSetClampMacro(EdgeProbability, double, 0.0, 1.0);
00071
00073
00075 vtkSetMacro(IncludeEdgeWeights, bool);
00076 vtkGetMacro(IncludeEdgeWeights, bool);
00077 vtkBooleanMacro(IncludeEdgeWeights, bool);
00079
00081
00082 vtkSetStringMacro(EdgeWeightArrayName);
00083 vtkGetStringMacro(EdgeWeightArrayName);
00085
00087
00089 vtkSetMacro(Directed, bool);
00090 vtkGetMacro(Directed, bool);
00091 vtkBooleanMacro(Directed, bool);
00093
00095
00101 vtkSetMacro(UseEdgeProbability, bool);
00102 vtkGetMacro(UseEdgeProbability, bool);
00103 vtkBooleanMacro(UseEdgeProbability, bool);
00105
00107
00109 vtkSetMacro(StartWithTree, bool);
00110 vtkGetMacro(StartWithTree, bool);
00111 vtkBooleanMacro(StartWithTree, bool);
00113
00115
00117 vtkSetMacro(AllowSelfLoops, bool);
00118 vtkGetMacro(AllowSelfLoops, bool);
00119 vtkBooleanMacro(AllowSelfLoops, bool);
00121
00123
00128 vtkSetMacro(AllowBalancedEdgeDistribution, bool);
00129 vtkGetMacro(AllowBalancedEdgeDistribution, bool);
00130 vtkBooleanMacro(AllowBalancedEdgeDistribution, bool);
00132
00134
00135 vtkSetMacro(GeneratePedigreeIds, bool);
00136 vtkGetMacro(GeneratePedigreeIds, bool);
00137 vtkBooleanMacro(GeneratePedigreeIds, bool);
00139
00141
00143 vtkSetStringMacro(VertexPedigreeIdArrayName);
00144 vtkGetStringMacro(VertexPedigreeIdArrayName);
00146
00148
00149 vtkSetStringMacro(EdgePedigreeIdArrayName);
00150 vtkGetStringMacro(EdgePedigreeIdArrayName);
00152
00154
00157 vtkSetMacro(Seed, int);
00158 vtkGetMacro(Seed, int);
00160
00161 protected:
00162 vtkPBGLRandomGraphSource();
00163 ~vtkPBGLRandomGraphSource();
00164 vtkIdType NumberOfVertices;
00165 vtkIdType NumberOfEdges;
00166 double EdgeProbability;
00167 bool Directed;
00168 bool UseEdgeProbability;
00169 bool StartWithTree;
00170 bool IncludeEdgeWeights;
00171 bool AllowSelfLoops;
00172 bool AllowBalancedEdgeDistribution;
00173 bool GeneratePedigreeIds;
00174 int Seed;
00175 char* EdgeWeightArrayName;
00176 char* VertexPedigreeIdArrayName;
00177 char* EdgePedigreeIdArrayName;
00178
00179 virtual int RequestData(
00180 vtkInformation*,
00181 vtkInformationVector**,
00182 vtkInformationVector*);
00183
00185
00186 virtual int RequestDataObject(vtkInformation*,
00187 vtkInformationVector** inputVector,
00188 vtkInformationVector* outputVector);
00190
00191 private:
00192 vtkPBGLRandomGraphSource(const vtkPBGLRandomGraphSource&);
00193 void operator=(const vtkPBGLRandomGraphSource&);
00194 };
00195
00196 #endif
00197