Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vtkImageAppend.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImageAppend.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
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   // Array holds the AppendAxisExtent shift for each input.
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   // see vtkAlgorithm for docs.
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&);  // Not implemented.
00118   void operator=(const vtkImageAppend&);  // Not implemented.
00119 };
00120 
00121 #endif
00122 
00123 
00124 
00125 

Generated on Mon Jan 21 23:07:28 2008 for VTK by  doxygen 1.4.3-20050530