This file is indexed.

/usr/include/vtk-7.1/vtkImageAppend.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
149
150
151
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkImageAppend.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   vtkImageAppend
 * @brief   Collects data from multiple inputs into one image.
 *
 * vtkImageAppend takes the components from multiple inputs and merges
 * them into one output. The output images are append along the "AppendAxis".
 * Except for the append axis, all inputs must have the same extent.
 * All inputs must have the same number of scalar components.
 * A future extension might be to pad or clip inputs to have the same extent.
 * The output has the same origin and spacing as the first input.
 * The origin and spacing of all other inputs are ignored.  All inputs
 * must have the same scalar type.
*/

#ifndef vtkImageAppend_h
#define vtkImageAppend_h

#include "vtkFiltersCoreModule.h" // For export macro
#include "vtkThreadedImageAlgorithm.h"

class VTKFILTERSCORE_EXPORT vtkImageAppend : public vtkThreadedImageAlgorithm
{
public:
  static vtkImageAppend *New();
  vtkTypeMacro(vtkImageAppend,vtkThreadedImageAlgorithm);
  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;

  /**
   * Replace one of the input connections with a new input.  You can
   * only replace input connections that you previously created with
   * AddInputConnection() or, in the case of the first input,
   * with SetInputConnection().
   */
  virtual void ReplaceNthInputConnection(int idx, vtkAlgorithmOutput* input);

  //@{
  /**
   * Assign a data object as input. Note that this method does not
   * establish a pipeline connection. Use SetInputConnection() to
   * setup a pipeline connection.
   */
  void SetInputData(int num, vtkDataObject *input);
  void SetInputData(vtkDataObject *input) { this->SetInputData(0, input); };
  //@}

  //@{
  /**
   * Get one input to this filter. This method is only for support of
   * old-style pipeline connections.  When writing new code you should
   * use vtkAlgorithm::GetInputConnection(0, num).
   */
  vtkDataObject *GetInput(int num);
  vtkDataObject *GetInput() { return this->GetInput(0); };
  //@}

  /**
   * Get the number of inputs to this filter. This method is only for
   * support of old-style pipeline connections.  When writing new code
   * you should use vtkAlgorithm::GetNumberOfInputConnections(0).
   */
  int GetNumberOfInputs() { return this->GetNumberOfInputConnections(0); };

  //@{
  /**
   * This axis is expanded to hold the multiple images.
   * The default AppendAxis is the X axis.
   * If you want to create a volue from a series of XY images, then you should
   * set the AppendAxis to 2 (Z axis).
   */
  vtkSetMacro(AppendAxis, int);
  vtkGetMacro(AppendAxis, int);
  //@}

  //@{
  /**
   * By default "PreserveExtents" is off and the append axis is used.
   * When "PreseveExtents" is on, the extent of the inputs is used to
   * place the image in the output.  The whole extent of the output is
   * the union of the input whole extents.  Any portion of the
   * output not covered by the inputs is set to zero.  The origin and
   * spacing is taken from the first input.
   */
  vtkSetMacro(PreserveExtents, int);
  vtkGetMacro(PreserveExtents, int);
  vtkBooleanMacro(PreserveExtents, int);
  //@}

protected:
  vtkImageAppend();
  ~vtkImageAppend() VTK_OVERRIDE;

  int PreserveExtents;
  int AppendAxis;
  // Array holds the AppendAxisExtent shift for each input.
  int *Shifts;

  int RequestInformation (vtkInformation *,
                          vtkInformationVector **,
                          vtkInformationVector *) VTK_OVERRIDE;

  int RequestUpdateExtent(vtkInformation *,
                          vtkInformationVector **,
                          vtkInformationVector *) VTK_OVERRIDE;

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


  // see vtkAlgorithm for docs.
  int FillInputPortInformation(int, vtkInformation*) VTK_OVERRIDE;

  void InitOutput(int outExt[6], vtkImageData *outData);

  void InternalComputeInputUpdateExtent(
    int *inExt, int *outExt, int *inWextent, int whichInput);

  // overridden to allocate all of the output arrays, not just active scalars
  void AllocateOutputData(vtkImageData *out,
                          vtkInformation* outInfo,
                          int *uExtent) VTK_OVERRIDE;
  vtkImageData *AllocateOutputData(vtkDataObject *out,
                                   vtkInformation* outInfo) VTK_OVERRIDE;

  // overridden to prevent shallow copies across, since we have to do it elementwise
  void CopyAttributeData(vtkImageData *in, vtkImageData *out,
                         vtkInformationVector** inputVector) VTK_OVERRIDE;


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

#endif