VTK
dox/Infovis/vtkTreeOrbitLayoutStrategy.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkTreeOrbitLayoutStrategy.h
00005   
00006 =========================================================================*/
00007 /*----------------------------------------------------------------------------
00008  Copyright (c) Sandia Corporation
00009  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00010 ----------------------------------------------------------------------------*/
00022 #ifndef __vtkTreeOrbitLayoutStrategy_h
00023 #define __vtkTreeOrbitLayoutStrategy_h
00024 
00025 #include "vtkGraphLayoutStrategy.h"
00026 
00027 class vtkPoints;
00028 class vtkTree;
00029 
00030 
00031 class VTK_INFOVIS_EXPORT vtkTreeOrbitLayoutStrategy : public vtkGraphLayoutStrategy 
00032 {
00033 public:
00034   static vtkTreeOrbitLayoutStrategy *New();
00035 
00036   vtkTypeMacro(vtkTreeOrbitLayoutStrategy, vtkGraphLayoutStrategy);
00037   void PrintSelf(ostream& os, vtkIndent indent);
00038 
00040   void Layout();
00041 
00043 
00047   vtkSetMacro(LogSpacingValue, double);
00048   vtkGetMacro(LogSpacingValue, double);
00050 
00052 
00055   vtkSetClampMacro(LeafSpacing, double, 0.0, 1.0);
00056   vtkGetMacro(LeafSpacing, double);
00058   
00060 
00063   vtkSetMacro(ChildRadiusFactor, double);
00064   vtkGetMacro(ChildRadiusFactor, double);
00066 
00067 protected:
00068   vtkTreeOrbitLayoutStrategy();
00069   ~vtkTreeOrbitLayoutStrategy();
00070   
00071   void OrbitChildren(vtkTree *t, vtkPoints *p, vtkIdType parent, double radius);
00072 
00073   double LogSpacingValue;
00074   double LeafSpacing;
00075   double ChildRadiusFactor;
00076 
00077 private:
00078 
00079   vtkTreeOrbitLayoutStrategy(const vtkTreeOrbitLayoutStrategy&);  // Not implemented.
00080   void operator=(const vtkTreeOrbitLayoutStrategy&);  // Not implemented.
00081 };
00082 
00083 #endif
00084