This file is indexed.

/usr/include/vtkQtChartContentsSpace.h is in libvtk5-qt4-dev 5.8.0-17.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
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkQtChartContentsSpace.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 vtkQtChartContentsSpace.h
/// \date 2/7/2008

#ifndef _vtkQtChartContentsSpace_h
#define _vtkQtChartContentsSpace_h


#include "vtkQtChartExport.h"
#include <QObject>

class vtkQtChartContentsSpaceInternal;
class QPoint;
class QPointF;
class QRectF;


/// \class vtkQtChartContentsSpace
/// \brief
///   The vtkQtChartContentsSpace class defines the contents space
///   for a chart.
class VTKQTCHART_EXPORT vtkQtChartContentsSpace : public QObject
{
  Q_OBJECT

public:
  /// \brief
  ///   Creates a chart contents space instance.
  /// \param parent The parent object.
  vtkQtChartContentsSpace(QObject *parent=0);
  virtual ~vtkQtChartContentsSpace();

  /// \name Contents Methods
  //@{
  /// \brief
  ///   Gets the x offset.
  /// \return
  ///   The x offset.
  float getXOffset() const {return this->OffsetX;}

  /// \brief
  ///   Gets the y offset.
  /// \return
  ///   The y offset.
  float getYOffset() const {return this->OffsetY;}

  /// \brief
  ///   Gets the maximum x offset.
  /// \return
  ///   The maximum x offset.
  float getMaximumXOffset() const {return this->MaximumX;}

  /// \brief
  ///   Gets the maximum y offset.
  /// \return
  ///   The maximum y offset.
  float getMaximumYOffset() const {return this->MaximumY;}

  /// \brief
  ///   Gets the contents width.
  /// \return
  ///   The contents width.
  float getContentsWidth() const;

  /// \brief
  ///   Gets the contents height.
  /// \return
  ///   The contents height.
  float getContentsHeight() const;

  /// \brief
  ///   Translates a point to layer contents coordinates.
  ///
  /// The point is adjusted from widget origin to layer bounds origin.
  /// The point is also translated to account for panning offset.
  ///
  /// \param point The point to translate.
  void translateToLayerContents(QPointF &point) const;

  /// \brief
  ///   Translates a point to layer contents coordinates.
  ///
  /// The rectangle is adjusted from widget origin to layer bounds
  /// origin. The rectangle is also translated to account for panning
  /// offset.
  ///
  /// \param area The rectangle to translate.
  void translateToLayerContents(QRectF &area) const;
  //@}

  /// \name Size Methods
  //@{
  /// \brief
  ///   Gets the width of the chart.
  /// \return
  ///   The width of the chart.
  float getChartWidth() const {return this->Width;}

  /// \brief
  ///   Gets the height of the chart.
  /// \return
  ///   The height of the chart.
  float getChartHeight() const {return this->Height;}

  /// \brief
  ///   Sets the size of the chart.
  ///
  /// The chart size must be set in order to zoom in or out. The
  /// contents size methods are only valid when the chart size is set.
  ///
  /// \param width The chart width.
  /// \param height The chart height.
  void setChartSize(float width, float height);

  /// \brief
  ///   Gets the chart layer bounds.
  /// \param bounds Used to return the chart layer bounds.
  void getChartLayerBounds(QRectF &bounds) const;

  /// \brief
  ///   Sets the chart layer bounds.
  /// \param bounds The chart layer bounds.
  void setChartLayerBounds(const QRectF &bounds);
  //@}

  /// \name Zoom Methods
  //@{
  /// \brief
  ///   Gets the x-axis zoom factor.
  /// \return
  ///   The x-axis zoom factor.
  float getXZoomFactor() const {return this->ZoomFactorX;}

  /// \brief
  ///   Gets the y-axis zoom factor.
  /// \return
  ///   The y-axis zoom factor.
  float getYZoomFactor() const {return this->ZoomFactorY;}

  /// \brief
  ///   Zooms the chart to the given factor.
  /// \param factor The new zoom factor for both axes.
  /// \sa vtkQtChartContentsSpace::zoomToFactor(float, float)
  void zoomToFactor(float factor);

  /// \brief
  ///   Zooms the chart to the given factors.
  ///
  /// The zoom factors of the chart are independent of each other. In
  /// other words, the x-axis can be zoomed to a different factor
  /// than the y-axis.
  ///
  /// When the zoom factors are changed, the new zoom viewport will
  /// be added to the zoom history. The zoom history can be navigated
  /// using the \c historyNext and \c historyPrevious methods. The
  /// user can also navigate through the history using the keyboard
  /// shortcuts.
  ///
  /// \param xFactor The x-axis zoom factor.
  /// \param yFactor The y-axis zoom factor.
  void zoomToFactor(float xFactor, float yFactor);

  /// \brief
  ///   Zooms only the x-axis to a given factor.
  /// \param factor The x-axis zoom factor.
  /// \sa vtkQtChartContentsSpace::zoomToFactor(float, float)
  void zoomToFactorX(float factor);

  /// \brief
  ///   Zooms only the y-axis to a given factor.
  /// \param factor The y-axis zoom factor.
  /// \sa vtkQtChartContentsSpace::zoomToFactor(float, float)
  void zoomToFactorY(float factor);
  //@}

  /// \name Mouse Interactions
  //@{
  /// \brief
  ///   Signals the start of a mouse move interaction.
  ///
  /// While an interaction is in progress, the zoom history will not
  /// be updated. When \c finishInteraction is called, the history is
  /// updated if the zoom factors have changed.
  ///
  /// \sa vtkQtChartContentsSpace::finishInteraction()
  void startInteraction();

  /// \brief
  ///   Gets whether or not an interaction is currently in progress.
  /// \return
  ///   True if an interaction is currently in progress.
  /// \sa vtkQtChartContentsSpace::startInteraction(),
  ///     vtkQtChartContentsSpace::finishInteraction()
  bool isInInteraction() const;

  /// \brief
  ///   Signals the end of a mouse move interaction.
  /// \sa vtkQtChartContentsSpace::startInteraction()
  void finishInteraction();
  //@}

  /// \name History Methods
  //@{
  /// \brief
  ///   Gets whether or not a previous zoom viewport is available.
  /// \return
  ///   True if a previous zoom viewport is available.
  bool isHistoryPreviousAvailable() const;

  /// \brief
  ///   Gets whether or not a forward zoom viewport is available.
  /// \return
  ///   True if a forward zoom viewport is available.
  bool isHistoryNextAvailable() const;
  //@}

public slots:
  /// \brief
  ///   Sets the x offset.
  /// \param offset The new x offset.
  void setXOffset(float offset);

  /// \brief
  ///   Sets the y offset.
  /// \param offset The new y offset.
  void setYOffset(float offset);

  /// \brief
  ///   Sets the maximum x offset.
  /// \param maximum The maximum x offset.
  void setMaximumXOffset(float maximum);

  /// \brief
  ///   Sets the maximum y offset.
  /// \param maximum The maximum y offset.
  void setMaximumYOffset(float maximum);

  /// Pans up by a predetermined amount.
  void panUp();

  /// Pans down by a predetermined amount.
  void panDown();

  /// Pans left by a predetermined amount.
  void panLeft();

  /// Pans right by a predetermined amount.
  void panRight();

  /// Resets the zoom factors to 1.
  void resetZoom();

  /// Changes the view to the next one in the history.
  void historyNext();

  /// Changes the view to the previous one in the history.
  void historyPrevious();

public:
  /// \brief
  ///   Gets the zoom factor step.
  /// \return
  ///   The zoom factor step.
  static float getZoomFactorStep();

  /// \brief
  ///   Sets the zoom factor step.
  /// \param step The new zoom factor step.
  static void setZoomFactorStep(float step);

  /// \brief
  ///   Gets the pan step.
  /// \return
  ///   The pan step.
  /// \sa vtkQtChartContentsSpace::panUp(),
  ///     vtkQtChartContentsSpace::panDown(),
  ///     vtkQtChartContentsSpace::panLeft(),
  ///     vtkQtChartContentsSpace::panRight(),
  static float getPanStep();

  /// \brief
  ///   Sets the pan step.
  /// \param step The new pan step.
  static void setPanStep(float step);

signals:
  /// \brief
  ///   Emitted when the x offset has changed.
  /// \param offset The new x offset.
  void xOffsetChanged(float offset);

  /// \brief
  ///   Emitted when the y offset has changed.
  /// \param offset The new y offset.
  void yOffsetChanged(float offset);

  /// \brief
  ///   Emitted when the maximum offsets have changed.
  ///
  /// This signal is sent when either or both of the offsets have
  /// changed. Sending the changes as one improves the chart layout.
  ///
  /// \param xMaximum The maximum x offset.
  /// \param yMaximum The maximum y offset.
  void maximumChanged(float xMaximum, float yMaximum);

  /// \brief
  ///   Emitted when the view history availability changes.
  /// \param available True if there is a history item available
  ///   before the current one.
  void historyPreviousAvailabilityChanged(bool available);

  /// \brief
  ///   Emitted when the view history availability changes.
  /// \param available True if there is a history item available
  ///   after the current one.
  void historyNextAvailabilityChanged(bool available);

private:
  /// Adds the current zoom viewport to the history.
  void addHistory();

private:
  /// Keeps track of mouse position and history.
  vtkQtChartContentsSpaceInternal *Internal;
  float OffsetX;     ///< Stores the x offset.
  float OffsetY;     ///< Stores the y offset.
  float MaximumX;    ///< Stores the maximum x offset.
  float MaximumY;    ///< Stores the maximum y offset.
  float Width;       ///< Stores the chart width.
  float Height;      ///< Stores the chart height.
  float ZoomFactorX; ///< Stores the x-axis zoom factor.
  float ZoomFactorY; ///< Stores the y-axis zoom factor.

  static float ZoomFactorStep; ///< Stores the zoom factor step.
  static float PanStep;        ///< Stores the pan step.
};

#endif