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 "vtkPolyDataAlgorithm.h" 00040 00041 class VTK_GRAPHICS_EXPORT vtkGraphLayoutFilter : public vtkPolyDataAlgorithm 00042 { 00043 public: 00044 static vtkGraphLayoutFilter *New(); 00045 00046 vtkTypeMacro(vtkGraphLayoutFilter,vtkPolyDataAlgorithm); 00047 void PrintSelf(ostream& os, vtkIndent indent); 00048 00050 00053 vtkSetVector6Macro(GraphBounds,double); 00054 vtkGetVectorMacro(GraphBounds,double,6); 00056 00058 00061 vtkSetMacro(AutomaticBoundsComputation, int); 00062 vtkGetMacro(AutomaticBoundsComputation, int); 00063 vtkBooleanMacro(AutomaticBoundsComputation, int); 00065 00067 00070 vtkSetClampMacro(MaxNumberOfIterations, int, 0, VTK_LARGE_INTEGER); 00071 vtkGetMacro(MaxNumberOfIterations, int); 00073 00075 00078 vtkSetClampMacro(CoolDownRate, double, 0.01, VTK_DOUBLE_MAX); 00079 vtkGetMacro(CoolDownRate, double); 00081 00082 // Turn on/off layout of graph in three dimensions. If off, graph 00083 // layout occurs in two dimensions. By default, three dimensional 00084 // layout is on. 00085 vtkSetMacro(ThreeDimensionalLayout, int); 00086 vtkGetMacro(ThreeDimensionalLayout, int); 00087 vtkBooleanMacro(ThreeDimensionalLayout, int); 00088 00089 protected: 00090 vtkGraphLayoutFilter(); 00091 ~vtkGraphLayoutFilter() {} 00092 00093 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00094 00095 double GraphBounds[6]; 00096 int AutomaticBoundsComputation; //Boolean controls automatic bounds calc. 00097 int MaxNumberOfIterations; //Maximum number of iterations. 00098 double CoolDownRate; //Cool-down rate. Note: Higher # = Slower rate. 00099 int ThreeDimensionalLayout; //Boolean for a third dimension. 00100 private: 00101 vtkGraphLayoutFilter(const vtkGraphLayoutFilter&); // Not implemented. 00102 void operator=(const vtkGraphLayoutFilter&); // Not implemented. 00103 }; 00104 00105 #endif