This file is indexed.

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

  Program:   Visualization Toolkit
  Module:    vtkExtentSplitter.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   vtkExtentSplitter
 * @brief   Split an extent across other extents.
 *
 * vtkExtentSplitter splits each input extent into non-overlapping
 * sub-extents that are completely contained within other "source
 * extents".  A source extent corresponds to some resource providing
 * an extent.  Each source extent has an integer identifier, integer
 * priority, and an extent.  The input extents are split into
 * sub-extents according to priority, availability, and amount of
 * overlap of the source extents.  This can be used by parallel data
 * readers to read as few piece files as possible.
*/

#ifndef vtkExtentSplitter_h
#define vtkExtentSplitter_h

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

class vtkExtentSplitterInternals;

class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExtentSplitter : public vtkObject
{
public:
  vtkTypeMacro(vtkExtentSplitter,vtkObject);
  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
  static vtkExtentSplitter *New();

  //@{
  /**
   * Add/Remove a source providing the given extent.  Sources with
   * higher priority numbers are favored.  Source id numbers and
   * priorities must be non-negative.
   */
  void AddExtentSource(int id, int priority, int x0, int x1,
                       int y0, int y1, int z0, int z1);
  void AddExtentSource(int id, int priority, int* extent);
  void RemoveExtentSource(int id);
  void RemoveAllExtentSources();
  //@}

  //@{
  /**
   * Add an extent to the queue of extents to be split among the
   * available sources.
   */
  void AddExtent(int x0, int x1, int y0, int y1, int z0, int z1);
  void AddExtent(int* extent);
  //@}

  /**
   * Split the extents currently in the queue among the available
   * sources.  The queue is empty when this returns.  Returns 1 if all
   * extents could be read.  Returns 0 if any portion of any extent
   * was not available through any source.
   */
  int ComputeSubExtents();

  /**
   * Get the number of sub-extents into which the original set of
   * extents have been split across the available sources.  Valid
   * after a call to ComputeSubExtents.
   */
  int GetNumberOfSubExtents();

  //@{
  /**
   * Get the sub-extent associated with the given index.  Use
   * GetSubExtentSource to get the id of the source from which this
   * sub-extent should be read.  Valid after a call to
   * ComputeSubExtents.
   */
  int* GetSubExtent(int index);
  void GetSubExtent(int index, int* extent);
  //@}

  /**
   * Get the id of the source from which the sub-extent associated
   * with the given index should be read.  Returns -1 if no source
   * provides the sub-extent.
   */
  int GetSubExtentSource(int index);

  //@{
  /**
   * Get/Set whether "point mode" is on.  In point mode, sub-extents
   * are generated to ensure every point in the update request is
   * read, but not necessarily every cell.  This can be used when
   * point data are stored in a planar slice per piece with no cell
   * data.  The default is OFF.
   */
  vtkGetMacro(PointMode, int);
  vtkSetMacro(PointMode, int);
  vtkBooleanMacro(PointMode, int);
  //@}

protected:
  vtkExtentSplitter();
  ~vtkExtentSplitter() VTK_OVERRIDE;

  // Internal utility methods.
  void SplitExtent(int* extent, int* subextent);
  int IntersectExtents(const int* extent1, const int* extent2, int* result);
  int Min(int a, int b);
  int Max(int a, int b);

  // Internal implementation data.
  vtkExtentSplitterInternals* Internal;

  // On if reading only all points (but not always all cells) is
  // necessary.  Used for reading volumes of planar slices storing
  // only point data.
  int PointMode;

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

#endif