This file is indexed.

/usr/include/vtk-6.3/vtkPolygonalSurfacePointPlacer.h is in libvtk6-dev 6.3.0+dfsg1-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
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkPolygonalSurfacePointPlacer.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 - Place points on the surface of polygonal data.
//
// .SECTION Description
// vtkPolygonalSurfacePointPlacer places points on polygonal data and is
// meant to be used in conjunction with
// vtkPolygonalSurfaceContourLineInterpolator.
//
// .SECTION Usage
//
// .SECTION Caveats
// You should have computed cell normals for the input polydata if you are
// specifying a distance offset.
//
// .SECTION See Also
// vtkPointPlacer vtkPolyDataNormals

#ifndef vtkPolygonalSurfacePointPlacer_h
#define vtkPolygonalSurfacePointPlacer_h

#include "vtkInteractionWidgetsModule.h" // For export macro
#include "vtkPolyDataPointPlacer.h"

class  vtkPolyDataCollection;
class  vtkCellPicker;
class  vtkPolygonalSurfacePointPlacerInternals;
class  vtkPolyData;

//BTX
// The Node stores information about the point. This information is used by
// the interpolator. Reusing this information avoids the need for a second
// pick operation to regenerate it. (Cellpickers are slow).
struct vtkPolygonalSurfacePointPlacerNode
{
  double       WorldPosition[3];
  double       SurfaceWorldPosition[3];
  vtkIdType    CellId;
  vtkIdType    PointId;
  double       ParametricCoords[3]; // parametric coords within cell
  vtkPolyData  *PolyData;
};
//ETX

class VTKINTERACTIONWIDGETS_EXPORT vtkPolygonalSurfacePointPlacer
                                  : public vtkPolyDataPointPlacer
{
public:
  // Description:
  // Instantiate this class.
  static vtkPolygonalSurfacePointPlacer *New();

  // Description:
  // Standard methods for instances of this class.
  vtkTypeMacro(vtkPolygonalSurfacePointPlacer,vtkPolyDataPointPlacer);
  void PrintSelf(ostream& os, vtkIndent indent);

  // Descuription:
  // Add /remove a prop, to place points on
  virtual void AddProp( vtkProp * );
  virtual void RemoveViewProp(vtkProp *prop);
  virtual void RemoveAllProps();

  // Description:
  // Given a renderer and a display position in pixel coordinates,
  // compute the world position and orientation where this point
  // will be placed. This method is typically used by the
  // representation to place the point initially.
  // For the Terrain point placer this computes world points that
  // lie at the specified height above the terrain.
  virtual int ComputeWorldPosition( vtkRenderer *ren,
                                    double displayPos[2],
                                    double worldPos[3],
                                    double worldOrient[9] );

  // Description:
  // Given a renderer, a display position, and a reference world
  // position, compute the new world position and orientation
  // of this point. This method is typically used by the
  // representation to move the point.
  virtual int ComputeWorldPosition( vtkRenderer *ren,
                                    double displayPos[2],
                                    double refWorldPos[3],
                                    double worldPos[3],
                                    double worldOrient[9] );

  // Description:
  // Given a world position check the validity of this
  // position according to the constraints of the placer
  virtual int ValidateWorldPosition( double worldPos[3] );

  // Description:
  // Give the node a chance to update its auxiliary point id.
  virtual int UpdateNodeWorldPosition( double worldPos[3],
                                       vtkIdType nodePointId );

  // Description:
  // Given a display position, check the validity of this position.
  virtual int ValidateDisplayPosition( vtkRenderer *, double displayPos[2] );

  // Description:
  // Given a world position and a world orientation,
  // validate it according to the constraints of the placer.
  virtual int ValidateWorldPosition( double worldPos[3],
                                     double worldOrient[9] );

  // Description:
  // Get the Prop picker.
  vtkGetObjectMacro( CellPicker, vtkCellPicker );

  // Description:
  // Be sure to add polydata on which you wish to place points to this list
  // or they will not be considered for placement.
  vtkGetObjectMacro( Polys, vtkPolyDataCollection );

  // Description:
  // Height offset at which points may be placed on the polygonal surface.
  // If you specify a non-zero value here, be sure to compute cell normals
  // on your input polygonal data (easily done with vtkPolyDataNormals).
  vtkSetMacro( DistanceOffset, double );
  vtkGetMacro( DistanceOffset, double );

  // Description:
  // Snap to the closest point on the surface ?
  // This is useful for the vtkPolygonalSurfaceContourLineInterpolator, when
  // drawing contours along the edges of a surface mesh.
  // OFF by default.
  vtkSetMacro( SnapToClosestPoint, int );
  vtkGetMacro( SnapToClosestPoint, int );
  vtkBooleanMacro( SnapToClosestPoint, int );

//BTX
  // Description:
  // Internally used by the interpolator.
  typedef vtkPolygonalSurfacePointPlacerNode Node;
  Node *GetNodeAtWorldPosition( double worldPos[3] );
//ETX

protected:
  vtkPolygonalSurfacePointPlacer();
  ~vtkPolygonalSurfacePointPlacer();

  // The props that represents the terrain data (one or more) in a rendered
  // scene
  vtkCellPicker                           *CellPicker;
  vtkPolyDataCollection                   *Polys;
  vtkPolygonalSurfacePointPlacerInternals *Internals;
  double                                   DistanceOffset;
  int                                      SnapToClosestPoint;

private:
  vtkPolygonalSurfacePointPlacer(const vtkPolygonalSurfacePointPlacer&);  //Not implemented
  void operator=(const vtkPolygonalSurfacePointPlacer&);  //Not implemented
};

#endif