00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkVTKImageExport_h
00018 #define __itkVTKImageExport_h
00019
00020 #include "itkVTKImageExportBase.h"
00021
00022 namespace itk
00023 {
00024
00051 template <class TInputImage>
00052 class ITK_EXPORT VTKImageExport: public VTKImageExportBase
00053 {
00054 public:
00056 typedef VTKImageExport Self;
00057 typedef ProcessObject Superclass;
00058 typedef SmartPointer<Self> Pointer;
00059 typedef SmartPointer<const Self> ConstPointer;
00060
00062 itkTypeMacro(VTKImageExport,VTKImageExportBase);
00063
00065 itkNewMacro(Self);
00066
00068 typedef TInputImage InputImageType;
00069
00071 void SetInput(const InputImageType*);
00072
00073 protected:
00074 VTKImageExport();
00075 ~VTKImageExport() {}
00076 void PrintSelf(std::ostream& os, Indent indent) const;
00077
00078 typedef typename InputImageType::Pointer InputImagePointer;
00079 typedef typename InputImageType::RegionType InputRegionType;
00080 typedef typename InputRegionType::SizeType InputSizeType;
00081 typedef typename InputRegionType::IndexType InputIndexType;
00082 itkStaticConstMacro(InputImageDimension, unsigned int,
00083 InputImageType::ImageDimension );
00084
00085 InputImageType * GetInput(void);
00086
00087 int* WholeExtentCallback();
00088 float* SpacingCallback();
00089 float* OriginCallback();
00090 const char* ScalarTypeCallback();
00091 int NumberOfComponentsCallback();
00092 void PropagateUpdateExtentCallback(int*);
00093 int* DataExtentCallback();
00094 void* BufferPointerCallback();
00095
00096 private:
00097 VTKImageExport(const Self&);
00098 void operator=(const Self&);
00099
00100 std::string m_ScalarTypeName;
00101 int m_WholeExtent[6];
00102 int m_DataExtent[6];
00103 float m_DataSpacing[3];
00104 float m_DataOrigin[3];
00105 };
00106
00107 }
00108
00109 #ifndef ITK_MANUAL_INSTANTIATION
00110 #include "itkVTKImageExport.txx"
00111 #endif
00112
00113 #endif