/usr/include/vtk-5.8/vtkQtChartAxisLayer.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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkQtChartAxisLayer.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 vtkQtChartAxisLayer.h
/// \date February 1, 2008
#ifndef _vtkQtChartAxisLayer_h
#define _vtkQtChartAxisLayer_h
#include "vtkQtChartExport.h"
#include "vtkQtChartLayer.h"
#include "vtkQtChartAxis.h" // Needed for enum
class vtkQtChartAxisDomain;
class vtkQtChartAxisDomainPriority;
class vtkQtChartAxisLayerItem;
class QFont;
class QGraphicsRectItem;
/// \class vtkQtChartAxisLayer
/// \brief
/// The vtkQtChartAxisLayer class is used to display the chart axes.
class VTKQTCHART_EXPORT vtkQtChartAxisLayer : public vtkQtChartLayer
{
Q_OBJECT
public:
enum AxisBehavior
{
ChartSelect = 0, ///< The axis labels are determined by the charts.
BestFit, ///< The axis labels are determined by space.
FixedInterval ///< The axis labels are fixed.
};
enum {Type = vtkQtChart_AxisLayerType};
public:
vtkQtChartAxisLayer();
virtual ~vtkQtChartAxisLayer();
/// \name Axis Methods
//@{
/// \brief
/// Gets the axis in the specified location.
/// \param location The location of the axis.
/// \return
/// A pointer to the specified axis.
vtkQtChartAxis *getAxis(vtkQtChartAxis::AxisLocation location) const;
/// \brief
/// Gets the horizontal axis in the specified pair.
/// \param axes The pair of chart axes.
/// \return
/// A pointer to the specified axis.
vtkQtChartAxis *getHorizontalAxis(vtkQtChartLayer::AxesCorner axes) const;
/// \brief
/// Gets the vertical axis in the specified pair.
/// \param axes The pair of chart axes.
/// \return
/// A pointer to the specified axis.
vtkQtChartAxis *getVerticalAxis(vtkQtChartLayer::AxesCorner axes) const;
/// \brief
/// Gets the layout behavior for the specified axis.
/// \param location The location of the axis.
/// \return
/// The layout behavior for the specified axis.
AxisBehavior getAxisBehavior(vtkQtChartAxis::AxisLocation location) const;
/// \brief
/// Sets the layout behavior for the specified axis.
/// \param location The location of the axis.
/// \param behavior The new layout behavior.
void setAxisBehavior(vtkQtChartAxis::AxisLocation location,
AxisBehavior behavior);
/// \brief
/// Gets the domain priority order for the given axis.
/// \param location The location of the axis.
/// \return
/// A reference to the domain priority order.
const vtkQtChartAxisDomainPriority &getAxisDomainPriority(
vtkQtChartAxis::AxisLocation location) const;
/// \brief
/// Sets the domain priority order for the given axis.
/// \param location The location of the axis.
/// \param priority The new domain priority order.
void setAxisDomainPriority(vtkQtChartAxis::AxisLocation location,
const vtkQtChartAxisDomainPriority &priority);
//@}
/// \brief
/// Used to layout the chart axes.
///
/// The \c area passed to this method is the total chart area. The
/// axis layer uses the whole area to layout the axes. Once the
/// layout is complete, the space inside the axes is passed to the
/// other chart layers.
///
/// \param area The area the axes should occupy.
/// \sa
/// vtkQtChartAxisLayer::getLayerBounds()
virtual void layoutChart(const QRectF &area);
/// \brief
/// Sets the chart area that contains this layer.
///
/// The contents space object for the axes is set to the one used
/// by the chart area.
///
/// \param area The new chart area.
virtual void setChartArea(vtkQtChartArea *area);
/// \brief
/// Gets the area inside the chart axes.
/// \return
/// The area inside the chart axes.
QRectF getLayerBounds() const {return this->LayerBounds;}
virtual QRectF boundingRect() const;
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget=0);
public slots:
/// Sets a flag to gather the chart domains during layout.
void handleChartRangeChange();
/// Clears the flag to gather the chart domains during layout.
void cancelChartRangeChange();
private:
/// Sets up the axis objects for the chart.
void setupAxesCorner();
/// \brief
/// Gets the domain type for the given axis.
/// \param location The location of the axis.
/// \return
/// The axis domain type.
vtkQtChartAxis::AxisDomain getAxisDomain(
vtkQtChartAxis::AxisLocation location) const;
/// \brief
/// Gets the corner for the given set of axes.
/// \param first The location of the first axis.
/// \param second The location of the second axis.
/// \return
/// The corner for the given set of axes.
vtkQtChartLayer::AxesCorner getCorner(vtkQtChartAxis::AxisLocation first,
vtkQtChartAxis::AxisLocation second) const;
/// \brief
/// Finds the domain for the axis based on the chart domains.
/// \param axis The location of the axis.
/// \param neighbor The location of the neighboring axis.
/// \param neighborDomain The domain type of the neighboring axis.
/// \param layerDomain The chart layer domains.
/// \param axisDomain Used to return the axis domain.
void findAxisDomain(vtkQtChartAxis::AxisLocation axis,
vtkQtChartAxis::AxisLocation neighbor,
vtkQtChartAxis::AxisDomain neighborDomain,
const vtkQtChartLayerDomain &layerDomain,
vtkQtChartAxisDomain &axisDomain) const;
private:
QRectF LayerBounds; ///< Stores the layer bounds.
QGraphicsRectItem *Border; ///< Draws the layer boundary.
vtkQtChartAxis *Axis[4]; ///< Stores the axis objects.
vtkQtChartAxisLayerItem *Option[4]; ///< Stores the axis behaviors.
bool RangeChanged; ///< True if the range has changed.
private:
vtkQtChartAxisLayer(const vtkQtChartAxisLayer &);
vtkQtChartAxisLayer &operator=(const vtkQtChartAxisLayer &);
};
#endif
|