VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPBGLRandomGraphSource.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 -------------------------------------------------------------------------*/ 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&); // Not implemented 00193 void operator=(const vtkPBGLRandomGraphSource&); // Not implemented 00194 }; 00195 00196 #endif 00197