/usr/include/vtk-5.8/vtkQtChartBarLocator.h is in libvtk5-dev 5.8.0-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 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkQtChartBarLocator.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.
-------------------------------------------------------------------------*/
/// \file vtkQtChartBarLocator.h
/// \date October 1, 2008
#ifndef _vtkQtChartBarLocator_h
#define _vtkQtChartBarLocator_h
#include "vtkQtChartExport.h"
#include <QLinkedList> // Needed for parameter.
#include <QList> // Needed for parameter.
class vtkQtChartBar;
class QPointF;
class QRectF;
/// \class vtkQtChartBarLocatorNode
/// \brief
/// The vtkQtChartBarLocatorNode class is used to build a tree of
/// chart bar shapes.
class VTKQTCHART_EXPORT vtkQtChartBarLocatorNode
{
public:
/// \brief
/// Constructs a chart bar locator node.
/// \param element The chart bar element to wrap.
vtkQtChartBarLocatorNode(vtkQtChartBar *element=0);
~vtkQtChartBarLocatorNode();
/// \brief
/// Gets whether or not the bounding area contains the given point.
/// \param point The position to evaluate.
/// \return
/// True if the bounding area contains the given point.
bool contains(const QPointF &point) const;
/// \brief
/// Gets whether or not the bounding area intersects the given area.
/// \param area The rectangle to evaluate.
/// \return
/// True if the bounding area intersects the given area.
bool intersects(const QRectF &area) const;
/// \brief
/// Gets the bounding rectangle.
/// \return
/// The bounding rectangle.
const QRectF &getBounds() const {return *this->Bounds;}
/// \brief
/// Sets the bounding rectangle.
/// \param bounds The new bounding rectangle.
void setBounds(const QRectF &bounds);
/// \brief
/// Gets the chart shape element.
/// \return
/// A pointer to the chart shape element.
vtkQtChartBar *getElement() const {return this->Element;}
/// \brief
/// Sets the chart shape element.
/// \param element The new chart shape element.
void setElement(vtkQtChartBar *element);
/// \brief
/// Gets the parent node.
/// \return
/// A pointer to the parent node.
vtkQtChartBarLocatorNode *getParent() const {return this->Parent;}
/// \brief
/// Sets the parent node.
/// \param parent The new parent node.
void setParent(vtkQtChartBarLocatorNode *parent) {this->Parent = parent;}
/// \brief
/// Gets whether or not the node has children.
/// \return
/// True if the node has children.
bool hasChildren() const {return this->First || this->Second;}
/// \brief
/// Gets the first child node.
/// \return
/// A pointer to the first child node.
vtkQtChartBarLocatorNode *getFirst() const {return this->First;}
/// \brief
/// Sets the first child node.
/// \param first The first child node.
void setFirst(vtkQtChartBarLocatorNode *first) {this->First = first;}
/// \brief
/// Gets the second child node.
/// \return
/// A pointer to the second child node.
vtkQtChartBarLocatorNode *getSecond() const {return this->Second;}
/// \brief
/// Sets the second child node.
/// \param second The second child node.
void setSecond(vtkQtChartBarLocatorNode *second) {this->Second = second;}
/// \brief
/// Updates the bounding rectangle.
///
/// The bounding rectangle is the bounds of the element or the
/// bounds of the child nodes.
void updateBounds();
private:
QRectF *Bounds; ///< Stores the bounding rectangle.
vtkQtChartBar *Element; ///< Stores the shape element.
vtkQtChartBarLocatorNode *Parent; ///< Stores the parent node.
vtkQtChartBarLocatorNode *First; ///< Stores the first child node.
vtkQtChartBarLocatorNode *Second; ///< Stores the second child node.
private:
vtkQtChartBarLocatorNode(const vtkQtChartBarLocatorNode &);
vtkQtChartBarLocatorNode &operator=(const vtkQtChartBarLocatorNode &);
};
/// \class vtkQtChartBarLocator
/// \brief
/// The vtkQtChartBarLocator class is used to locate bars in a tree
/// structure.
///
/// The tree is built from a list of bars. The leaf nodes store the
/// bars. The bounding rectangles can be updated if the layout
/// remains unchanged.
class VTKQTCHART_EXPORT vtkQtChartBarLocator
{
public:
vtkQtChartBarLocator();
~vtkQtChartBarLocator();
/// Removes all the tree items.
void clear();
/// \brief
/// Builds a bar tree from the ordered list of rectangles.
///
/// The bar pointers are stored by the tree and should not be
/// deleted until the tree has been cleared.
///
/// \param list The ordered list of rectangles.
void build(const QList<vtkQtChartBar *> &list);
/// \brief
/// Updates the bounding rectangles in the bar tree.
///
/// The nodes are traversed from last to first. The bounding
/// rectangle of each node is updated using the bar if it is a leaf
/// or the bounds of the children otherwise.
void update();
/// \brief
/// Gets the bar at the specified point.
/// \param point The point to search.
/// \return
/// A pointer to the bar at the given point.
vtkQtChartBar *getItemAt(const QPointF &point) const;
/// \brief
/// Gets the bars in the specified rectangle.
/// \param area The rectangle to search.
/// \return
/// The list of bars in the given rectangle.
QList<vtkQtChartBar *> getItemsIn(const QRectF &area) const;
/// \brief
/// Gets the last node in the tree.
/// \return
/// A pointer to the last node in the tree.
vtkQtChartBarLocatorNode *getLast();
/// \brief
/// Gets the previous node in the tree.
/// \param node The node to search from.
/// \return
/// A pointer to the previous node in the tree.
vtkQtChartBarLocatorNode *getPrevious(vtkQtChartBarLocatorNode *node);
private:
/// \brief
/// Builds a bar tree from the ordered list of items.
/// \param list The ordered list of items.
void buildTree(QLinkedList<vtkQtChartBarLocatorNode *> &list) const;
private:
vtkQtChartBarLocatorNode *Root; ///< Stores the tree root.
QList<vtkQtChartBarLocatorNode *> Items; ///< Stores the item list.
private:
vtkQtChartBarLocator(const vtkQtChartBarLocator &);
vtkQtChartBarLocator &operator=(const vtkQtChartBarLocator &);
};
#endif
|