VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkRandomLayoutStrategy.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 -------------------------------------------------------------------------*/ 00034 #ifndef vtkRandomLayoutStrategy_h 00035 #define vtkRandomLayoutStrategy_h 00036 00037 #include "vtkInfovisLayoutModule.h" // For export macro 00038 #include "vtkGraphLayoutStrategy.h" 00039 00040 class VTKINFOVISLAYOUT_EXPORT vtkRandomLayoutStrategy : public vtkGraphLayoutStrategy 00041 { 00042 public: 00043 static vtkRandomLayoutStrategy *New(); 00044 00045 vtkTypeMacro(vtkRandomLayoutStrategy, vtkGraphLayoutStrategy); 00046 void PrintSelf(ostream& os, vtkIndent indent); 00047 00049 00052 vtkSetClampMacro(RandomSeed, int, 0, VTK_INT_MAX); 00053 vtkGetMacro(RandomSeed, int); 00055 00057 00060 vtkSetVector6Macro(GraphBounds,double); 00061 vtkGetVectorMacro(GraphBounds,double,6); 00063 00065 00068 vtkSetMacro(AutomaticBoundsComputation, int); 00069 vtkGetMacro(AutomaticBoundsComputation, int); 00070 vtkBooleanMacro(AutomaticBoundsComputation, int); 00072 00074 00076 vtkSetMacro(ThreeDimensionalLayout, int); 00077 vtkGetMacro(ThreeDimensionalLayout, int); 00078 vtkBooleanMacro(ThreeDimensionalLayout, int); 00080 00082 void SetGraph(vtkGraph *graph); 00083 00085 void Layout(); 00086 00087 protected: 00088 vtkRandomLayoutStrategy(); 00089 ~vtkRandomLayoutStrategy(); 00090 00091 int RandomSeed; 00092 double GraphBounds[6]; 00093 int AutomaticBoundsComputation; 00094 int ThreeDimensionalLayout; //Boolean for a third dimension. 00095 private: 00096 00097 vtkRandomLayoutStrategy(const vtkRandomLayoutStrategy&); // Not implemented. 00098 void operator=(const vtkRandomLayoutStrategy&); // Not implemented. 00099 }; 00100 00101 #endif 00102