/usr/include/vtk-6.3/vtkStackedTreeLayoutStrategy.h is in libvtk6-dev 6.3.0+dfsg1-5.
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 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkStackedTreeLayoutStrategy.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 vtkStackedTreeLayoutStrategy - lays out tree in stacked boxes or rings
//
// .SECTION Description
// Performs a tree ring layout or "icicle" layout on a tree.
// This involves assigning a sector region to each vertex in the tree,
// and placing that information in a data array with four components per
// tuple representing (innerRadius, outerRadius, startAngle, endAngle).
//
// This class may be assigned as the layout strategy to vtkAreaLayout.
//
// .SECTION Thanks
// Thanks to Jason Shepherd from Sandia National Laboratories
// for help developing this class.
#ifndef vtkStackedTreeLayoutStrategy_h
#define vtkStackedTreeLayoutStrategy_h
#include "vtkInfovisLayoutModule.h" // For export macro
#include "vtkAreaLayoutStrategy.h"
class vtkTree;
class vtkDataArray;
class VTKINFOVISLAYOUT_EXPORT vtkStackedTreeLayoutStrategy :
public vtkAreaLayoutStrategy
{
public:
static vtkStackedTreeLayoutStrategy* New();
vtkTypeMacro(vtkStackedTreeLayoutStrategy,vtkAreaLayoutStrategy);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Perform the layout of the input tree, and store the sector
// bounds of each vertex as a tuple
// (innerRadius, outerRadius, startAngle, endAngle)
// in a data array.
virtual void Layout(vtkTree *inputTree, vtkDataArray *sectorArray,
vtkDataArray* sizeArray);
// Description:
// Fill edgeRoutingTree with points suitable for routing edges of
// an overlaid graph.
virtual void LayoutEdgePoints(vtkTree *inputTree, vtkDataArray *sectorArray,
vtkDataArray* sizeArray, vtkTree *edgeRoutingTree);
// Description:
// Define the tree ring's interior radius.
vtkSetMacro(InteriorRadius, double);
vtkGetMacro(InteriorRadius, double);
// Description:
// Define the thickness of each of the tree rings.
vtkSetMacro(RingThickness, double);
vtkGetMacro(RingThickness, double);
// Description:
// Define the start angle for the root node.
// NOTE: It is assumed that the root end angle is greater than the
// root start angle and subtends no more than 360 degrees.
vtkSetMacro(RootStartAngle, double);
vtkGetMacro(RootStartAngle, double);
// Description:
// Define the end angle for the root node.
// NOTE: It is assumed that the root end angle is greater than the
// root start angle and subtends no more than 360 degrees.
vtkSetMacro(RootEndAngle, double);
vtkGetMacro(RootEndAngle, double);
// Description:
// Define whether or not rectangular coordinates are being used
// (as opposed to polar coordinates).
vtkSetMacro(UseRectangularCoordinates, bool);
vtkGetMacro(UseRectangularCoordinates, bool);
vtkBooleanMacro(UseRectangularCoordinates, bool);
// Description:
// Define whether to reverse the order of the tree stacks from
// low to high.
vtkSetMacro(Reverse, bool);
vtkGetMacro(Reverse, bool);
vtkBooleanMacro(Reverse, bool);
// Description:
// The spacing of tree levels in the edge routing tree.
// Levels near zero give more space
// to levels near the root, while levels near one (the default)
// create evenly-spaced levels. Levels above one give more space
// to levels near the leaves.
vtkSetMacro(InteriorLogSpacingValue, double);
vtkGetMacro(InteriorLogSpacingValue, double);
// Description:
// Returns the vertex id that contains pnt (or -1 if no one contains it).
virtual vtkIdType FindVertex(vtkTree* tree, vtkDataArray* array, float pnt[2]);
protected:
vtkStackedTreeLayoutStrategy();
~vtkStackedTreeLayoutStrategy();
float InteriorRadius;
float RingThickness;
float RootStartAngle;
float RootEndAngle;
bool UseRectangularCoordinates;
bool Reverse;
double InteriorLogSpacingValue;
void ComputeEdgeRoutingPoints(
vtkTree* inputTree, vtkDataArray* coordsArray, vtkTree* outputTree);
void LayoutChildren(
vtkTree *tree, vtkDataArray *coordsArray, vtkDataArray *sizeArray,
vtkIdType nchildren, vtkIdType parent, vtkIdType begin,
float parentInnerRad, float parentOuterRad,
float parentStartAng, float parentEndAng);
private:
vtkStackedTreeLayoutStrategy(const vtkStackedTreeLayoutStrategy&); // Not implemented.
void operator=(const vtkStackedTreeLayoutStrategy&); // Not implemented.
};
#endif
|