This file is indexed.

/usr/include/vtkDICOMCTRectifier.h is in libvtk-dicom-dev 0.7.10-1+b2.

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
/*=========================================================================

  Program: DICOM for VTK

  Copyright (c) 2012-2016 David Gobbi
  All rights reserved.
  See Copyright.txt or http://dgobbi.github.io/bsd3.txt 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 vtkDICOMCTRectifier
 *  \brief Prepare a CT for 3D processing
 *
 *  This class will identify gantry-tilted CT images and resample them
 *  into a rectangular volume.  This is often a necessary step prior to
 *  volume rendering or other forms of 3D rendering.
 */

#ifndef vtkDICOMCTRectifier_h
#define vtkDICOMCTRectifier_h

#include "vtkDICOMAlgorithm.h"
#include "vtkDICOMModule.h" // For export macro

class vtkMatrix4x4;

//----------------------------------------------------------------------------
class VTKDICOM_EXPORT vtkDICOMCTRectifier : public vtkDICOMAlgorithm
{
public:
  //! Static method for construction.
  static vtkDICOMCTRectifier *New();
  vtkTypeMacro(vtkDICOMCTRectifier, vtkDICOMAlgorithm);

  //! Print information about this object.
  virtual void PrintSelf(ostream& os, vtkIndent indent);

  //@{
  //! Reverse the default operation.
  /*!
   *  When this option is set, the filter takes a rectangular volume
   *  as input, and produces a volume whose geometry matches the
   *  VolumeMatrix.
   */
  void SetReverse(int v);
  void ReverseOn() { this->SetReverse(1); }
  void ReverseOff() { this->SetReverse(0); }
  int GetReverse() { return this->Reverse; }
  //@}

  //@{
  //! Set the matrix that describes the CT volume geometry.
  /*!
   *  This should be set to the PatientMatrix that comes from the
   *  vtkDICOMReader.
   */
  void SetVolumeMatrix(vtkMatrix4x4 *matrix);
  vtkMatrix4x4 *GetVolumeMatrix() { return this->VolumeMatrix; }
  //@}

  //@{
  //! Get the matrix that describes the rectified geometry.
  /*!
   *  This matrix is generated when any of these methods is called:
   *  Update(), UpdateInformation(), or UpdateMatrix().
   */
  vtkMatrix4x4 *GetRectifiedMatrix() { return this->RectifiedMatrix; }
  //@}

  //@{
  //! Update the RectifiedMatrix without updating the output data.
  /*!
   *  The input data must be set before this is called.
   */
  void UpdateMatrix();
  //@}

  //@{
  //! A static method to measure the tilt from a matrix.
  /*!
   *  This can be used to see whether it is necessary to rectify the
   *  volume.  It returns the Gantry Detector Tilt angle, in degrees,
   *  as computed from the shear in the volume matrix.
   */
  static double GetGantryDetectorTilt(vtkMatrix4x4 *volumeMatrix);
  //@}

protected:
  vtkDICOMCTRectifier();
  ~vtkDICOMCTRectifier();

  //! Compute the rectified matrix from the given volume matrix.
  /*!
   *  The extent, spacing, and origin of the image must also be given,
   *  and they will be adjusted as necessary.
   */
  void ComputeMatrix(
    const double matrix[16], const int extent[6], double spacing[3],
    double origin[3]);

  virtual int RequestInformation(
    vtkInformation* request, vtkInformationVector** inputVector,
    vtkInformationVector* outputVector);

  virtual int RequestUpdateExtent(
    vtkInformation* request, vtkInformationVector** inputVector,
    vtkInformationVector* outputVector);

  virtual int RequestData(
    vtkInformation* request, vtkInformationVector** inputVector,
    vtkInformationVector* outputVector);

  virtual void ThreadedRequestData(
    vtkInformation *request, vtkInformationVector **inputVector,
    vtkInformationVector *outputVector, vtkImageData ***inData,
    vtkImageData **outData, int ext[6], int id);

  vtkMatrix4x4 *VolumeMatrix;
  vtkMatrix4x4 *RectifiedMatrix;
  vtkMatrix4x4 *Matrix;
  int Reverse;

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

#endif // vtkDICOMCTRectifier_h