VTK
vtkConeLayoutStrategy.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkConeLayoutStrategy.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 //-------------------------------------------------------------------------
16 //Copyright 2008 Sandia Corporation.
17 //Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18 //the U.S. Government retains certain rights in this software.
19 //-------------------------------------------------------------------------
20 
48 #ifndef __vtkConeLayoutStrategy_h
49 #define __vtkConeLayoutStrategy_h
50 
51 #include "vtkGraphLayoutStrategy.h"
52 
53 class vtkPoints;
54 
56 {
57 public:
58  static vtkConeLayoutStrategy *New();
59 
61  void PrintSelf(ostream& os, vtkIndent indent);
62 
64 
68  vtkSetMacro(Compactness, float);
69  vtkGetMacro(Compactness, float);
71 
73 
77  vtkSetMacro(Compression, int);
78  vtkGetMacro(Compression, int);
79  vtkBooleanMacro(Compression, int);
81 
83 
87  vtkSetMacro(Spacing, float);
88  vtkGetMacro(Spacing, float);
90 
91 
93  void Layout();
94 
95 protected:
98 
105  double LocalPlacement(vtkIdType root, vtkPoints *points);
106 
107  void GlobalPlacement(
108  vtkIdType root,
109  vtkPoints *points,
110  double refX, // absolute x-y coordinate of
111  double refY, // parent node; z coordinate
112  double level ); // derived from level.
113 
114  float Compactness; // factor used in mapping layer to Z
115  int Compression; // force a compact layout?
116  float Spacing; // Scale vertical spacing of cones.
117 
118  // Values accumulated for possible statistical use
119  double MinRadius;
120  double MaxRadius;
121  int NrCones;
122  double SumOfRadii;
123 
124 private:
125  vtkConeLayoutStrategy(const vtkConeLayoutStrategy&); // Not implemented.
126  void operator=(const vtkConeLayoutStrategy&); // Not implemented.
127 };
128 
129 #endif
130