/usr/include/vtk-6.2/vtkConeLayoutStrategy.h is in libvtk6-dev 6.2.0+dfsg1-10build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkConeLayoutStrategy.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
//-------------------------------------------------------------------------
//Copyright 2008 Sandia Corporation.
//Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
//the U.S. Government retains certain rights in this software.
//-------------------------------------------------------------------------
// .NAME vtkConeLayoutStrategy - produce a cone-tree layout for a forest
// .SECTION Description
// vtkConeLayoutStrategy positions the nodes of a tree(forest) in 3D
// space based on the cone-tree approach first described by
// Robertson, Mackinlay and Card in Proc. CHI'91. This
// implementation incorporates refinements to the layout
// developed by Carriere and Kazman, and by Auber.
//
// The input graph must be a forest (i.e. a set of trees, or a
// single tree); in the case of a forest, the input will be
// converted to a single tree by introducing a new root node,
// and connecting each root in the input forest to the meta-root.
// The tree is then laid out, after which the meta-root is removed.
//
// The cones are positioned so that children lie in planes parallel
// to the X-Y plane, with the axis of cones parallel to Z, and
// with Z coordinate increasing with distance of nodes from the root.
//
// .SECTION Thanks
// Thanks to David Duke from the University of Leeds for providing this
// implementation.
#ifndef vtkConeLayoutStrategy_h
#define vtkConeLayoutStrategy_h
#include "vtkInfovisLayoutModule.h" // For export macro
#include "vtkGraphLayoutStrategy.h"
class vtkPoints;
class VTKINFOVISLAYOUT_EXPORT vtkConeLayoutStrategy : public vtkGraphLayoutStrategy
{
public:
static vtkConeLayoutStrategy *New();
vtkTypeMacro(vtkConeLayoutStrategy, vtkGraphLayoutStrategy);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Determine the compactness, the ratio between the
// average width of a cone in the tree, and the
// height of the cone. The default setting is 0.75
// which (empirically) seems reasonable, but this
// will need adapting depending on the data.
vtkSetMacro(Compactness, float);
vtkGetMacro(Compactness, float);
// Description:
// Determine if layout should be compressed, i.e. the
// layout puts children closer together, possibly allowing
// sub-trees to overlap. This is useful if the tree is
// actually the spanning tree of a graph. For "real" trees,
// non-compressed layout is best, and is the default.
vtkSetMacro(Compression, int);
vtkGetMacro(Compression, int);
vtkBooleanMacro(Compression, int);
// Description:
// Set the spacing parameter that affects space between
// layers of the tree. If compression is on, Spacing is the
// actual distance between layers. If compression is off,
// actual distance also includes a factor of the compactness
// and maximum cone radius.
vtkSetMacro(Spacing, float);
vtkGetMacro(Spacing, float);
// Description:
// Perform the layout.
void Layout();
protected:
vtkConeLayoutStrategy();
~vtkConeLayoutStrategy();
// Description:
// Helper operations for tree layout. Layout is performed
// in two traversals of the tree. The first traversal finds
// the position of child nodes relative to their parent. The
// second traversal positions each node absolutely, working
// from the initial position of the root node.
double LocalPlacement(vtkIdType root, vtkPoints *points);
void GlobalPlacement(
vtkIdType root,
vtkPoints *points,
double refX, // absolute x-y coordinate of
double refY, // parent node; z coordinate
double level ); // derived from level.
float Compactness; // factor used in mapping layer to Z
int Compression; // force a compact layout?
float Spacing; // Scale vertical spacing of cones.
// Values accumulated for possible statistical use
double MinRadius;
double MaxRadius;
int NrCones;
double SumOfRadii;
private:
vtkConeLayoutStrategy(const vtkConeLayoutStrategy&); // Not implemented.
void operator=(const vtkConeLayoutStrategy&); // Not implemented.
};
#endif
|