VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGraphLayoutFilter.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 =========================================================================*/ 00036 #ifndef vtkGraphLayoutFilter_h 00037 #define vtkGraphLayoutFilter_h 00038 00039 #include "vtkFiltersGeneralModule.h" // For export macro 00040 #include "vtkPolyDataAlgorithm.h" 00041 00042 class VTKFILTERSGENERAL_EXPORT vtkGraphLayoutFilter : public vtkPolyDataAlgorithm 00043 { 00044 public: 00045 static vtkGraphLayoutFilter *New(); 00046 00047 vtkTypeMacro(vtkGraphLayoutFilter,vtkPolyDataAlgorithm); 00048 void PrintSelf(ostream& os, vtkIndent indent); 00049 00051 00054 vtkSetVector6Macro(GraphBounds,double); 00055 vtkGetVectorMacro(GraphBounds,double,6); 00057 00059 00062 vtkSetMacro(AutomaticBoundsComputation, int); 00063 vtkGetMacro(AutomaticBoundsComputation, int); 00064 vtkBooleanMacro(AutomaticBoundsComputation, int); 00066 00068 00071 vtkSetClampMacro(MaxNumberOfIterations, int, 0, VTK_INT_MAX); 00072 vtkGetMacro(MaxNumberOfIterations, int); 00074 00076 00079 vtkSetClampMacro(CoolDownRate, double, 0.01, VTK_DOUBLE_MAX); 00080 vtkGetMacro(CoolDownRate, double); 00082 00083 // Turn on/off layout of graph in three dimensions. If off, graph 00084 // layout occurs in two dimensions. By default, three dimensional 00085 // layout is on. 00086 vtkSetMacro(ThreeDimensionalLayout, int); 00087 vtkGetMacro(ThreeDimensionalLayout, int); 00088 vtkBooleanMacro(ThreeDimensionalLayout, int); 00089 00090 protected: 00091 vtkGraphLayoutFilter(); 00092 ~vtkGraphLayoutFilter() {} 00093 00094 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00095 00096 double GraphBounds[6]; 00097 int AutomaticBoundsComputation; //Boolean controls automatic bounds calc. 00098 int MaxNumberOfIterations; //Maximum number of iterations. 00099 double CoolDownRate; //Cool-down rate. Note: Higher # = Slower rate. 00100 int ThreeDimensionalLayout; //Boolean for a third dimension. 00101 private: 00102 vtkGraphLayoutFilter(const vtkGraphLayoutFilter&); // Not implemented. 00103 void operator=(const vtkGraphLayoutFilter&); // Not implemented. 00104 }; 00105 00106 #endif