00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00031 #ifndef __vtkImageAppend_h
00032 #define __vtkImageAppend_h
00033
00034 #include "vtkThreadedImageAlgorithm.h"
00035
00036 class VTK_IMAGING_EXPORT vtkImageAppend : public vtkThreadedImageAlgorithm
00037 {
00038 public:
00039 static vtkImageAppend *New();
00040 vtkTypeRevisionMacro(vtkImageAppend,vtkThreadedImageAlgorithm);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00047 virtual void ReplaceNthInputConnection(int idx, vtkAlgorithmOutput* input);
00048
00050
00054 void SetInput(int num, vtkDataObject *input);
00055 void SetInput(vtkDataObject *input) { this->SetInput(0, input); };
00057
00059
00062 vtkDataObject *GetInput(int num);
00063 vtkDataObject *GetInput() { return this->GetInput(0); };
00065
00069 int GetNumberOfInputs() { return this->GetNumberOfInputConnections(0); };
00070
00072
00075 vtkSetMacro(AppendAxis, int);
00076 vtkGetMacro(AppendAxis, int);
00078
00080
00086 vtkSetMacro(PreserveExtents, int);
00087 vtkGetMacro(PreserveExtents, int);
00088 vtkBooleanMacro(PreserveExtents, int);
00090
00091 protected:
00092 vtkImageAppend();
00093 ~vtkImageAppend();
00094
00095 int PreserveExtents;
00096 int AppendAxis;
00097
00098 int *Shifts;
00099
00100 virtual int RequestInformation (vtkInformation *,
00101 vtkInformationVector **,
00102 vtkInformationVector *);
00103
00104 virtual int RequestUpdateExtent(vtkInformation *,
00105 vtkInformationVector **,
00106 vtkInformationVector *);
00107
00108 void ThreadedRequestData (vtkInformation* request,
00109 vtkInformationVector** inputVector,
00110 vtkInformationVector* outputVector,
00111 vtkImageData ***inData, vtkImageData **outData,
00112 int ext[6], int id);
00113
00114
00115 virtual int FillInputPortInformation(int, vtkInformation*);
00116
00117 void InitOutput(int outExt[6], vtkImageData *outData);
00118
00119 void InternalComputeInputUpdateExtent(
00120 int *inExt, int *outExt, int *inWextent, int whichInput);
00121
00122 private:
00123 vtkImageAppend(const vtkImageAppend&);
00124 void operator=(const vtkImageAppend&);
00125 };
00126
00127 #endif
00128
00129
00130
00131