This file is indexed.

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

  Program:   Visualization Toolkit
  Module:    vtkBox.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   vtkBox
 * @brief   implicit function for a bounding box
 *
 * vtkBox computes the implicit function and/or gradient for a axis-aligned
 * bounding box. (The superclasses transform can be used to modify this
 * orientation.) Each side of the box is orthogonal to all other sides
 * meeting along shared edges and all faces are orthogonal to the x-y-z
 * coordinate axes.  (If you wish to orient this box differently, recall that
 * the superclass vtkImplicitFunction supports a transformation matrix.)
 * vtkCube is a concrete implementation of vtkImplicitFunction.
 *
 * @sa
 * vtkCubeSource vtkImplicitFunction
*/

#ifndef vtkBox_h
#define vtkBox_h

#include "vtkCommonDataModelModule.h" // For export macro
#include "vtkImplicitFunction.h"
class vtkBoundingBox;

class VTKCOMMONDATAMODEL_EXPORT vtkBox : public vtkImplicitFunction
{
public:
  vtkTypeMacro(vtkBox,vtkImplicitFunction);
  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;

  /**
   * Construct box with center at (0,0,0) and each side of length 1.0.
   */
  static vtkBox *New();

  /**
   * Evaluate box defined by the two points (pMin,pMax).
   */
  double EvaluateFunction(double x[3]) VTK_OVERRIDE;
  double EvaluateFunction(double x, double y, double z)
    {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); }

  /**
   * Evaluate the gradient of the box.
   */
  void EvaluateGradient(double x[3], double n[3]) VTK_OVERRIDE;

  //@{
  /**
   * Set / get the bounding box using various methods.
   */
  void SetXMin(double p[3]);
  void SetXMin(double x, double y, double z);
  void GetXMin(double p[3]);
  void GetXMin(double &x, double &y, double &z);
  //@}

  void SetXMax(double p[3]);
  void SetXMax(double x, double y, double z);
  void GetXMax(double p[3]);
  void GetXMax(double &x, double &y, double &z);

  void SetBounds(double xMin, double xMax,
                 double yMin, double yMax,
                 double zMin, double zMax);
  void SetBounds(const double bounds[6]);
  void GetBounds(double &xMin, double &xMax,
                 double &yMin, double &yMax,
                 double &zMin, double &zMax);
  void GetBounds(double bounds[6]);
  double *GetBounds();

  /**
   * A special method that allows union set operation on bounding boxes.
   * Start with a SetBounds(). Subsequent AddBounds() methods are union set
   * operations on the original bounds. Retrieve the final bounds with a
   * GetBounds() method.
   */
  void AddBounds(const double bounds[6]);

  /**
   * Bounding box intersection modified from Graphics Gems Vol I. The method
   * returns a non-zero value if the bounding box is hit. Origin[3] starts
   * the ray, dir[3] is the vector components of the ray in the x-y-z
   * directions, coord[3] is the location of hit, and t is the parametric
   * coordinate along line. (Notes: the intersection ray dir[3] is NOT
   * normalized.  Valid intersections will only occur between 0<=t<=1.)
   */
  static char IntersectBox(double bounds[6], double origin[3], double dir[3],
                           double coord[3], double& t);

  /**
   * Intersect a line with the box.  Give the endpoints of the line in
   * p1 and p2.  The parameteric distances from p1 to the entry and exit
   * points are returned in t1 and t2, where t1 and t2 are clamped to the
   * range [0,1].  The entry and exit planes are returned in plane1 and
   * plane2 where integers (0, 1, 2, 3, 4, 5) stand for the
   * (xmin, xmax, ymin, ymax, zmin, zmax) planes respectively, and a value
   * of -1 means that no intersection occurred.  The actual intersection
   * coordinates are stored in x1 and x2, which can be set to NULL of you
   * do not need them to be returned.  The function return value will be
   * zero if the line is wholly outside of the box.
   */
  static int IntersectWithLine(const double bounds[6],
                               const double p1[3], const double p2[3],
                               double &t1, double &t2,
                               double x1[3], double x2[3],
                               int &plane1, int &plane2);

protected:
  vtkBox();
  ~vtkBox() VTK_OVERRIDE;

  vtkBoundingBox *BBox;
  double Bounds[6]; //supports the GetBounds() method

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



inline void vtkBox::SetXMin(double p[3])
{
  this->SetXMin(p[0], p[1], p[2]);
}

inline void vtkBox::SetXMax(double p[3])
{
  this->SetXMax(p[0], p[1], p[2]);
}


#endif