This file is indexed.

/usr/include/vtk-5.8/vtkScenePicker.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
/*=========================================================================

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

=========================================================================*/
// .NAME vtkScenePicker - Picks an entire viewport at one shot. 
// .SECTION Description
// The Scene picker, unline conventional pickers picks an entire viewport at
// one shot and caches the result, which can be retrieved later. 
//    The utility of the class arises during <b>Actor Selection</b>. Let's 
// say you have a couple of polygonal objects in your scene and you wish to 
// have a status bar that indicates the object your mouse is over. Picking
// repeatedly every time your mouse moves would be very slow. The 
// scene picker automatically picks your viewport every time the camera is
// changed and caches the information. Additionally, it observes the 
// vtkRenderWindowInteractor to avoid picking during interaction, so that
// you still maintain your interactivity. In effect, the picker does an
// additional pick-render of your scene every time you stop interacting with
// your scene. As an example, see Rendering/TestScenePicker.
// 
// .SECTION Caveats
// - Unlike a vtkHoverWidget, this class is not timer based. The hover widget
//   picks a scene when the mouse is over an actor for a specified duration.
// - This class uses a vtkHardwareSelector under the hood. Hence, it will
//   work only for actors that have opaque geomerty and are rendered by a 
//   vtkPolyDataMapper.
// 
// .SECTION See Also
// vtkHoverWidget vtkHardwareSelector

#ifndef __vtkScenePicker_h
#define __vtkScenePicker_h

#include "vtkObject.h"

class vtkRenderer;
class vtkProp;
class vtkHardwareSelector;
class vtkRenderWindowInteractor;
class vtkScenePickerSelectionRenderCommand;

class VTK_RENDERING_EXPORT vtkScenePicker : public vtkObject
{
  //BTX
  friend class vtkRenderer;
  friend class vtkScenePickerSelectionRenderCommand;
  //ETX
public:
  static vtkScenePicker * New();
  vtkTypeMacro(vtkScenePicker,vtkObject);
  void PrintSelf(ostream& os, vtkIndent indent);

  // Description:
  // Set the renderer. Scene picks are restricted to the viewport.
  virtual void SetRenderer( vtkRenderer* );
  vtkGetObjectMacro(Renderer,vtkRenderer);

  // Description:
  // Get cell id at the pick position. 
  // Returns -1 if no cell was picked. 
  // Makes sense only after Pick has been called.
  vtkIdType GetCellId( int displayPos[2] );

  // Description:
  // Get cell id at the pick position. 
  // Returns -1 if no cell was picked. 
  // Makes sense only after Pick has been called.
  vtkIdType GetVertexId( int displayPos[2] );

  // Description:
  // Get actor at the pick position. 
  // Returns NULL if none. 
  // Makes sense only after Pick has been called.
  vtkProp * GetViewProp( int displayPos[2] );
  
  // Description:
  // Vertex picking (using the method GetVertexId()), required 
  // additional resources and can slow down still render time by
  // 5-10%. Enabled by default.
  vtkSetMacro( EnableVertexPicking, int );
  vtkGetMacro( EnableVertexPicking, int );
  vtkBooleanMacro( EnableVertexPicking, int );

protected:
  vtkScenePicker();
  ~vtkScenePicker();

  // Pick render entire viewport
  // Automatically invoked from vtkRenderer at the end of a still render.
  void PickRender();

  // Pick render a region of the renderwindow
  void PickRender( int x0, int y0, int x1, int y1 );

  // Internal update method retrieves info from the Selector
  void Update( int displayPos[2] );

  // The RenderWindowInteractor must be set, so that avoid scene picks (which
  // involve extra renders) during interaction. This is done by observing the
  // RenderWindowInteractor for start and end interaction events. 
  void SetInteractor( vtkRenderWindowInteractor * );
  
  int                                     EnableVertexPicking;
  vtkHardwareSelector                   * Selector;
  vtkRenderer                           * Renderer;
  vtkRenderWindowInteractor             * Interactor;
  vtkIdType                               VertId;
  vtkIdType                               CellId;
  vtkProp                               * Prop;
  bool                                    NeedToUpdate;
  int                                     LastQueriedDisplayPos[2];
  vtkScenePickerSelectionRenderCommand  * SelectionRenderCommand;

  vtkTimeStamp PickRenderTime;
private:
  vtkScenePicker(
                 const vtkScenePicker&); // Not implemented.
  void operator=(const vtkScenePicker&); // Not implemented.
};

#endif