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