This file is indexed.

/usr/include/vtk-6.3/vtkBSPIntersections.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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
/*=========================================================================

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

=========================================================================*/
/*----------------------------------------------------------------------------
 Copyright (c) Sandia Corporation
 See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
----------------------------------------------------------------------------*/

// .NAME vtkBSPIntersections - Perform calculations (mostly intersection
//   calculations) on regions of a 3D binary spatial partitioning.
//
// .SECTION Description
//    Given an axis aligned binary spatial partitioning described by a
//    vtkBSPCuts object, perform intersection queries on various
//    geometric entities with regions of the spatial partitioning.
//
// .SECTION See Also
//    vtkBSPCuts  vtkKdTree

#ifndef vtkBSPIntersections_h
#define vtkBSPIntersections_h

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

class vtkTimeStamp;
class vtkCell;
class vtkKdNode;
class vtkBSPCuts;

class VTKCOMMONDATAMODEL_EXPORT vtkBSPIntersections : public vtkObject
{
public:
  vtkTypeMacro(vtkBSPIntersections, vtkObject);
  void PrintSelf(ostream& os, vtkIndent indent);

  static vtkBSPIntersections *New();

  // Description:
  //   Define the binary spatial partitioning.

  void SetCuts(vtkBSPCuts *cuts);
  vtkGetObjectMacro(Cuts, vtkBSPCuts);

  // Description:
  //   Get the bounds of the whole space (xmin, xmax, ymin, ymax, zmin, zmax)
  //   Return 0 if OK, 1 on error.

  int GetBounds(double *bounds);

  // Description:
  //   The number of regions in the binary spatial partitioning

  int GetNumberOfRegions();

  // Description:
  //   Get the spatial bounds of a particular region
  //   Return 0 if OK, 1 on error.

  int GetRegionBounds(int regionID, double bounds[6]);

  // Description:
  //    Get the bounds of the data within the k-d tree region, possibly
  //    smaller than the bounds of the region.
  //   Return 0 if OK, 1 on error.

  int GetRegionDataBounds(int regionID, double bounds[6]);

  // Description:
  //    Determine whether a region of the spatial decomposition
  //    intersects an axis aligned box.
  int IntersectsBox(int regionId, double *x);
  int IntersectsBox(int regionId, double xmin, double xmax,
                    double ymin, double ymax,
                    double zmin, double zmax);

  // Description:
  //    Compute a list of the Ids of all regions that
  //    intersect the specified axis aligned box.
  //    Returns: the number of ids in the list.
  int IntersectsBox(int *ids, int len,  double *x);
  int IntersectsBox(int *ids, int len,  double x0, double x1,
                    double y0, double y1, double z0, double z1);

  // Description:
  //    Determine whether a region of the spatial decomposition
  //    intersects a sphere, given the center of the sphere
  //    and the square of it's radius.
  int IntersectsSphere2(int regionId,
                        double x, double y, double z, double rSquared);

  // Description:
  //    Compute a list of the Ids of all regions that
  //    intersect the specified sphere.  The sphere is given
  //    by it's center and the square of it's radius.
  //    Returns: the number of ids in the list.
  int IntersectsSphere2(int *ids, int len,
                        double x, double y, double z, double rSquared);

  // Description:
  //    Determine whether a region of the spatial decomposition
  //    intersects the given cell.  If you already
  //    know the region that the cell centroid lies in, provide
  //    that as the last argument to make the computation quicker.
  int IntersectsCell(int regionId, vtkCell *cell, int cellRegion=-1);

  // Description:
  //    Compute a list of the Ids of all regions that
  //    intersect the given cell.  If you alrady
  //    know the region that the cell centroid lies in, provide
  //    that as the last argument to make the computation quicker.
  //    Returns the number of regions the cell intersects.
  int IntersectsCell(int *ids, int len, vtkCell *cell, int cellRegion=-1);

  // Description:
  //   When computing the intersection of k-d tree regions with other
  //   objects, we use the spatial bounds of the region.  To use the
  //   tighter bound of the bounding box of the data within the region,
  //   set this variable ON.  (Specifying data bounds in the vtkBSPCuts
  //   object is optional.  If data bounds were not specified, this
  //   option has no meaning.)

  vtkGetMacro(ComputeIntersectionsUsingDataBounds, int);
  void SetComputeIntersectionsUsingDataBounds(int c);
  void ComputeIntersectionsUsingDataBoundsOn();
  void ComputeIntersectionsUsingDataBoundsOff();

protected:

  vtkBSPIntersections();
  ~vtkBSPIntersections();

  vtkGetMacro(RegionListBuildTime, unsigned long);

  int BuildRegionList();

  vtkKdNode **GetRegionList(){return this->RegionList;}

  double CellBoundsCache[6];   // to speed cell intersection queries

//BTX
  enum {
    XDIM = 0,  // don't change these values
    YDIM = 1,
    ZDIM = 2
  };
//ETX

private:

  static int NumberOfLeafNodes(vtkKdNode *kd);
  static void SetIDRanges(vtkKdNode *kd, int &min, int &max);

  int SelfRegister(vtkKdNode *kd);

  static void SetCellBounds(vtkCell *cell, double *bounds);

  int _IntersectsBox(vtkKdNode *node, int *ids, int len,
                     double x0, double x1,
                     double y0, double y1,
                     double z0, double z1);

  int _IntersectsSphere2(vtkKdNode *node, int *ids, int len,
                         double x, double y, double z, double rSquared);

  int _IntersectsCell(vtkKdNode *node, int *ids, int len,
                      vtkCell *cell, int cellRegion=-1);

  vtkBSPCuts *Cuts;

  int NumberOfRegions;
  vtkKdNode **RegionList;

  vtkTimeStamp RegionListBuildTime;

  int ComputeIntersectionsUsingDataBounds;

  vtkBSPIntersections(const vtkBSPIntersections&); // Not implemented
  void operator=(const vtkBSPIntersections&); // Not implemented
};
#endif