00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00048 #ifndef __vtkConeLayoutStrategy_h
00049 #define __vtkConeLayoutStrategy_h
00050 
00051 #include "vtkGraphLayoutStrategy.h"
00052 
00053 class vtkPoints;
00054 
00055 class VTK_INFOVIS_EXPORT vtkConeLayoutStrategy : public vtkGraphLayoutStrategy 
00056 {
00057 public:
00058   static vtkConeLayoutStrategy *New();
00059 
00060   vtkTypeMacro(vtkConeLayoutStrategy, vtkGraphLayoutStrategy);
00061   void PrintSelf(ostream& os, vtkIndent indent);
00062 
00064 
00068   vtkSetMacro(Compactness, float);
00069   vtkGetMacro(Compactness, float);
00071 
00073 
00077   vtkSetMacro(Compression, int);
00078   vtkGetMacro(Compression, int);
00079   vtkBooleanMacro(Compression, int);
00081 
00083 
00087   vtkSetMacro(Spacing, float);
00088   vtkGetMacro(Spacing, float);
00090 
00091 
00093   void Layout();
00094   
00095 protected:
00096   vtkConeLayoutStrategy();
00097   ~vtkConeLayoutStrategy();
00098 
00105   double LocalPlacement(vtkIdType root, vtkPoints *points);
00106             
00107   void GlobalPlacement(
00108     vtkIdType root,
00109     vtkPoints *points,
00110     double refX,         
00111     double refY,         
00112     double level );      
00113 
00114   float Compactness;     
00115   int   Compression;     
00116   float Spacing;         
00117 
00118   
00119   double MinRadius;
00120   double MaxRadius;
00121   int   NrCones;
00122   double SumOfRadii;
00123   
00124 private:
00125   vtkConeLayoutStrategy(const vtkConeLayoutStrategy&);  
00126   void operator=(const vtkConeLayoutStrategy&);  
00127 };
00128 
00129 #endif
00130