This file is indexed.

/usr/include/vtk-7.1/vtkImplicitSelectionLoop.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
/*=========================================================================

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

=========================================================================*/
/**
 * @class   vtkImplicitSelectionLoop
 * @brief   implicit function for a selection loop
 *
 * vtkImplicitSelectionLoop computes the implicit function value and
 * function gradient for a irregular, cylinder-like object whose cross
 * section is defined by a set of points forming a loop. The loop need
 * not be convex nor its points coplanar. However, the loop must be
 * non-self-intersecting when projected onto the plane defined by the
 * accumulated cross product around the loop (i.e., the axis of the
 * loop). (Alternatively, you can specify the normal to use.)
 *
 * The following procedure is used to compute the implicit function
 * value for a point x. Each point of the loop is first projected onto
 * the plane defined by the loop normal. This forms a polygon. Then,
 * to evaluate the implicit function value, inside/outside tests are
 * used to determine if x is inside the polygon, and the distance to
 * the loop boundary is computed (negative values are inside the
 * loop).
 *
 * One example application of this implicit function class is to draw a
 * loop on the surface of a mesh, and use the loop to clip or extract
 * cells from within the loop. Remember, the selection loop is "infinite"
 * in length, you can use a plane (in boolean combination) to cap the extent
 * of the selection loop. Another trick is to use a connectivity filter to
 * extract the closest region to a given point (i.e., one of the points used
 * to define the selection loop).
 *
 * @sa
 * vtkImplicitFunction vtkImplicitBoolean vtkExtractGeometry vtkClipPolyData
 * vtkConnectivityFilter vtkPolyDataConnectivityFilter
*/

#ifndef vtkImplicitSelectionLoop_h
#define vtkImplicitSelectionLoop_h

#include "vtkCommonDataModelModule.h" // For export macro
#include "vtkImplicitFunction.h"

class vtkPoints;
class vtkPolygon;

class VTKCOMMONDATAMODEL_EXPORT vtkImplicitSelectionLoop : public vtkImplicitFunction
{
public:
  //@{
  /**
   * Standard VTK methods for printing and type information.
   */
  vtkTypeMacro(vtkImplicitSelectionLoop,vtkImplicitFunction);
  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
  //@}

  /**
   * Instantiate object with no initial loop.
   */
  static vtkImplicitSelectionLoop *New();

  //@{
  /**
   * Evaluate selection loop returning a signed distance.
   */
  double EvaluateFunction(double x[3]) VTK_OVERRIDE;
  double EvaluateFunction(double x, double y, double z)
    {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
  //@}

  /**
   * Evaluate selection loop returning the gradient.
   */
  void EvaluateGradient(double x[3], double n[3]) VTK_OVERRIDE;

  //@{
  /**
   * Set/Get the array of point coordinates defining the loop. There must
   * be at least three points used to define a loop.
   */
  virtual void SetLoop(vtkPoints*);
  vtkGetObjectMacro(Loop,vtkPoints);
  //@}

  //@{
  /**
   * Turn on/off automatic normal generation. By default, the normal is
   * computed from the accumulated cross product of the edges. You can also
   * specify the normal to use.
   */
  vtkSetMacro(AutomaticNormalGeneration,int);
  vtkGetMacro(AutomaticNormalGeneration,int);
  vtkBooleanMacro(AutomaticNormalGeneration,int);
  //@}

  //@{
  /**
   * Set / get the normal used to determine whether a point is inside or outside
   * the selection loop.
   */
  vtkSetVector3Macro(Normal,double);
  vtkGetVectorMacro(Normal,double,3);
  //@}

  /**
   * Overload GetMTime() because we depend on the Loop
   */
  vtkMTimeType GetMTime() VTK_OVERRIDE;

protected:
  vtkImplicitSelectionLoop();
  ~vtkImplicitSelectionLoop() VTK_OVERRIDE;

  vtkPoints *Loop;
  double Normal[3];
  int AutomaticNormalGeneration;

private:
  void Initialize();
  vtkPolygon *Polygon;

  double Origin[3];
  double Bounds[6]; //bounds of the projected polyon
  double DeltaX;
  double DeltaY;
  double DeltaZ;

  vtkTimeStamp InitializationTime;

private:
  vtkImplicitSelectionLoop(const vtkImplicitSelectionLoop&) VTK_DELETE_FUNCTION;
  void operator=(const vtkImplicitSelectionLoop&) VTK_DELETE_FUNCTION;
};

#endif