00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00058 #ifndef __vtkImageExport_h
00059 #define __vtkImageExport_h
00060 
00061 #include "vtkProcessObject.h"
00062 #include "vtkImageFlip.h"
00063 
00064 class VTK_EXPORT vtkImageExport : public vtkProcessObject
00065 {
00066 public:
00067   static vtkImageExport *New();
00068   vtkTypeMacro(vtkImageExport,vtkProcessObject);
00069   void PrintSelf(ostream& os, vtkIndent indent);
00070   
00072   int GetDataMemorySize();
00073 
00076   void GetDataDimensions(int *ptr);
00077   int *GetDataDimensions() { 
00078     this->GetDataDimensions(this->DataDimensions);
00079     return this->DataDimensions; }
00080 
00082   int GetDataNumberOfScalarComponents() {
00083     this->GetInput()->UpdateInformation();
00084     return this->GetInput()->GetNumberOfScalarComponents(); };
00085 
00087   int *GetDataExtent() {   
00088     this->GetInput()->UpdateInformation();
00089     return this->GetInput()->GetWholeExtent(); };
00090   void GetDataExtent(int *ptr) {   
00091     this->GetInput()->UpdateInformation();
00092     this->GetInput()->GetWholeExtent(ptr); };
00093   float *GetDataSpacing() { 
00094     this->GetInput()->UpdateInformation();
00095     return this->GetInput()->GetSpacing(); };
00096   void GetDataSpacing(float *ptr) { 
00097     this->GetInput()->UpdateInformation();
00098     this->GetInput()->GetSpacing(ptr); };
00099   float *GetDataOrigin() { 
00100     this->GetInput()->UpdateInformation();
00101     return this->GetInput()->GetOrigin(); };
00102   void GetDataOrigin(float *ptr) { 
00103     this->GetInput()->UpdateInformation();
00104     this->GetInput()->GetOrigin(ptr); };
00105   int GetDataScalarType() {
00106     this->GetInput()->UpdateInformation();
00107     return this->GetInput()->GetScalarType(); };
00108 
00110   void SetInput(vtkImageData *input);
00111   vtkImageData *GetInput();
00112 
00115   vtkBooleanMacro(ImageLowerLeft, int);
00116   vtkGetMacro(ImageLowerLeft, int);
00117   vtkSetMacro(ImageLowerLeft, int);
00118   
00120   virtual void Export(void *);
00121 
00125   void *GetPointerToData();
00126 
00127 protected:
00128   vtkImageExport();
00129   ~vtkImageExport();
00130   vtkImageExport(const vtkImageExport&) {};
00131   void operator=(const vtkImageExport&) {};
00132 
00133   vtkImageFlip *ImageFlip;
00134   int ImageLowerLeft;
00135   int DataDimensions[3];
00136 };
00137 
00138 #endif
00139 
00140