This file is indexed.

/usr/include/vtk-7.1/vtkPickingManager.h is in libvtk7-dev 7.1.1+dfsg1-2.

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
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkPickingManager.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.

=========================================================================*/

/*==============================================================================

  Library: MSVTK

  Copyright (c) Kitware Inc.

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0.txt

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

==============================================================================*/

/**
 * @class   vtkPickingManager
 * Class defines API to manage the picking process.
 *
 * The Picking Manager (PM) coordinates picking across widgets simultaneously.
 * It maintains a collection of registered pickers;
 * when the manager is picked (e.g. vtkPickingManager::Pick()),
 * a pick is run on each picker but only the best picker
 * (e.g. closest to camera point) is selected.
 * It finally returns the widget/representation or picker that was
 * selected.
 * @warning
 * Every time a vtkWidget and/or a vtkWidgetRepresentation is instantiated,
 * it automatically registers its picker(s) and start being managed by
 * delegating all its pick calls to the picking manager.
 * It is possible to customize with the management in two ways:
 * * at the widget level, the "ManagesPicking" variable can be changed
 * from the widget/representation class to tell
 * whether to use the manager or not.
 * * Directly disable the picking manager itself  with the boolean variable
 * \sa Enabled using vtkPickingManager::EnabledOn(), EnabledOff(),
 * SetEnabled(bool).
 * @par Important:
 * The picking manager is not active by default as it slightly reduces the
 * performances when interacting with the scene.
 * @par Important:
 * When registering pickers, a null object is considered valid because we can
 * managed picker without any associated object.
 * It is really important to note that a null object is different from one
 * to an other !!
 * This has been done to allow adding multiple times the same picker to the manager
 * by not passing the referenced object to not force the supression of all pickers
*/

#ifndef vtkPickingManager_h
#define vtkPickingManager_h

#include "vtkObject.h"
#include "vtkRenderingCoreModule.h" // For export macro

class vtkAbstractPicker;
class vtkAbstractPropPicker;
class vtkAssemblyPath;
class vtkRenderer;
class vtkRenderWindowInteractor;

class VTKRENDERINGCORE_EXPORT vtkPickingManager : public vtkObject
{
public:
  static vtkPickingManager *New();
  vtkTypeMacro(vtkPickingManager,vtkObject);
  void PrintSelf(ostream& os, vtkIndent indent);

  //@{
  /**
   * Enable/Disable management.
   * When disabled, it redirects every pick on the picker.
   * By default the picking manager is disabled when initialized.
   */
  vtkBooleanMacro(Enabled, bool);
  vtkSetMacro(Enabled, bool);
  vtkGetMacro(Enabled, bool);
  //@}

  //@{
  /**
   * Enable/Disable optimization depending on the renderWindowInteractor events.
   * The mechanism keeps in cache the last selected picker as well as the last
   * render time to recompute the selection only if a new render event
   * occurred after the last selection; otherwise, it simply returns the last
   * picker selected.
   * By default pickingManagers does use the optimization.
   * Warning: Turning off the caching significantly decreases performance.
   */
  void SetOptimizeOnInteractorEvents(bool optimize);
  vtkGetMacro(OptimizeOnInteractorEvents, bool);
  //@}

  //@{
  /**
   * Set the window interactor associated with the manager.
   */
  void SetInteractor(vtkRenderWindowInteractor* iren);
  vtkGetMacro(Interactor, vtkRenderWindowInteractor*);
  //@}

  /**
   * Register a picker into the picking manager.
   * It can be internally associated (optional) with an \a object.
   * This allows the removal of all the pickers of the given object.
   * Note that a picker can be registered multiple times with different objects.
   * \sa RemovePicker(), RemoveObject().
   */
  void AddPicker(vtkAbstractPicker* picker, vtkObject* object = 0);

  /**
   * Unregister the \a picker from the picking manager.
   * If \a object is non null, only the pair (\a picker, \a object) is removed.
   */
  void RemovePicker(vtkAbstractPicker* picker, vtkObject* object = 0);

  /**
   * Remove all occurences of the \a object from the registered list.
   * If a picker associated with the \a object is not also associated with
   * any other object, it is removed from the list as well.
   */
  void RemoveObject(vtkObject* object);

  /**
   * Run the picking selection process and return true if the \a object
   * is associated with the given picker if it is the best one, false otherwise.
   * If OptimizeOnInteractorEvents is true, the pick can reuse cached
   * information.
   */
  bool Pick(vtkAbstractPicker* picker, vtkObject* object);

  /**
   * Run the picking selection process and return true if the \a object
   * is associated with the best picker.
   * This is an overloaded function.
   */
  bool Pick(vtkObject* object);

  /**
   * Run the picking selection process and return if \a picker is the one
   * selected.
   * This is an overloaded function.
   */
  bool Pick(vtkAbstractPicker* picker);

  /**
   * If the picking manager is enabled, it runs the picking selection process
   * and return the assembly path associated to the picker passed as
   * argument if it is the one mediated.
   * Otherwise it simply proceeds to a pick using the given renderer and
   * returns the corresponding assembly path.
   */
  vtkAssemblyPath* GetAssemblyPath(double X, double Y, double Z,
                                   vtkAbstractPropPicker* picker,
                                   vtkRenderer* renderer,
                                   vtkObject* obj);

  /**
   * Return the number of pickers registered.
   * If the same picker is added multiple times with different objects, it is
   * counted once.
   */
  int GetNumberOfPickers();

  /**
   * Return the number of objects linked with a given \a picker.
   * Note: a null object is counted as an associated object.
   */
  int GetNumberOfObjectsLinked(vtkAbstractPicker* picker);

protected:
  vtkPickingManager();
  ~vtkPickingManager();

  // Used to associate the manager with the interactor
  vtkRenderWindowInteractor* Interactor;
  bool Enabled;
  bool OptimizeOnInteractorEvents;

private:
  vtkPickingManager(const vtkPickingManager&) VTK_DELETE_FUNCTION;
  void operator=(const vtkPickingManager&) VTK_DELETE_FUNCTION;

  class vtkInternal;
  vtkInternal* Internal;
};

#endif