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