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 "vtkInfovisLayoutModule.h" // For export macro
52 #include "vtkGraphLayoutStrategy.h"
53 
54 class vtkPoints;
55 
57 {
58 public:
59  static vtkConeLayoutStrategy *New();
60 
62  void PrintSelf(ostream& os, vtkIndent indent);
63 
65 
69  vtkSetMacro(Compactness, float);
70  vtkGetMacro(Compactness, float);
72 
74 
78  vtkSetMacro(Compression, int);
79  vtkGetMacro(Compression, int);
80  vtkBooleanMacro(Compression, int);
82 
84 
88  vtkSetMacro(Spacing, float);
89  vtkGetMacro(Spacing, float);
91 
92 
94  void Layout();
95 
96 protected:
99 
106  double LocalPlacement(vtkIdType root, vtkPoints *points);
107 
108  void GlobalPlacement(
109  vtkIdType root,
110  vtkPoints *points,
111  double refX, // absolute x-y coordinate of
112  double refY, // parent node; z coordinate
113  double level ); // derived from level.
114 
115  float Compactness; // factor used in mapping layer to Z
116  int Compression; // force a compact layout?
117  float Spacing; // Scale vertical spacing of cones.
118 
119  // Values accumulated for possible statistical use
120  double MinRadius;
121  double MaxRadius;
122  int NrCones;
123  double SumOfRadii;
124 
125 private:
126  vtkConeLayoutStrategy(const vtkConeLayoutStrategy&); // Not implemented.
127  void operator=(const vtkConeLayoutStrategy&); // Not implemented.
128 };
129 
130 #endif
131 
#define VTKINFOVISLAYOUT_EXPORT
int vtkIdType
Definition: vtkType.h:247
abstract superclass for all graph layout strategies
a simple class to control print indentation
Definition: vtkIndent.h:38
produce a cone-tree layout for a forest
static vtkObject * New()
represent and manipulate 3D points
Definition: vtkPoints.h:38
virtual void Layout()=0
void PrintSelf(ostream &os, vtkIndent indent)