00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkVTKImageExportBase_h
00018 #define __itkVTKImageExportBase_h
00019
00020 #include "itkProcessObject.h"
00021
00022 namespace itk
00023 {
00024
00035 class ITK_EXPORT VTKImageExportBase: public ProcessObject
00036 {
00037 public:
00039 typedef VTKImageExportBase Self;
00040 typedef ProcessObject Superclass;
00041 typedef SmartPointer<Self> Pointer;
00042 typedef SmartPointer<const Self> ConstPointer;
00043
00045 itkTypeMacro(VTKImageExportBase,ProcessObject);
00046
00048 void* GetCallbackUserData();
00049
00051 typedef void (*UpdateInformationCallbackType)(void*);
00052 typedef int (*PipelineModifiedCallbackType)(void*);
00053 typedef int* (*WholeExtentCallbackType)(void*);
00054 typedef const char* (*ScalarTypeCallbackType)(void*);
00055 typedef int (*NumberOfComponentsCallbackType)(void*);
00056 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*);
00057 typedef void (*UpdateDataCallbackType)(void*);
00058 typedef int* (*DataExtentCallbackType)(void*);
00059 typedef void* (*BufferPointerCallbackType)(void*);
00060
00062 UpdateInformationCallbackType GetUpdateInformationCallback() const;
00063 PipelineModifiedCallbackType GetPipelineModifiedCallback() const;
00064 WholeExtentCallbackType GetWholeExtentCallback() const;
00065 ScalarTypeCallbackType GetScalarTypeCallback() const;
00066 NumberOfComponentsCallbackType GetNumberOfComponentsCallback() const;
00067 PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const;
00068 UpdateDataCallbackType GetUpdateDataCallback() const;
00069 DataExtentCallbackType GetDataExtentCallback() const;
00070 BufferPointerCallbackType GetBufferPointerCallback() const;
00071
00072 protected:
00073 VTKImageExportBase();
00074 ~VTKImageExportBase() {}
00075 void PrintSelf(std::ostream& os, Indent indent) const;
00076
00077 typedef DataObject::Pointer DataObjectPointer;
00078
00079 virtual void UpdateInformationCallback();
00080 virtual int PipelineModifiedCallback();
00081 virtual void UpdateDataCallback();
00082
00085 virtual int* WholeExtentCallback()=0;
00086 virtual const char* ScalarTypeCallback()=0;
00087 virtual int NumberOfComponentsCallback()=0;
00088 virtual void PropagateUpdateExtentCallback(int*)=0;
00089 virtual int* DataExtentCallback()=0;
00090 virtual void* BufferPointerCallback()=0;
00091
00092 private:
00093 VTKImageExportBase(const Self&);
00094 void operator=(const Self&);
00095
00099 static void UpdateInformationCallbackFunction(void*);
00100 static int PipelineModifiedCallbackFunction(void*);
00101 static int* WholeExtentCallbackFunction(void*);
00102 static const char* ScalarTypeCallbackFunction(void*);
00103 static int NumberOfComponentsCallbackFunction(void*);
00104 static void PropagateUpdateExtentCallbackFunction(void*, int*);
00105 static void UpdateDataCallbackFunction(void*);
00106 static int* DataExtentCallbackFunction(void*);
00107 static void* BufferPointerCallbackFunction(void*);
00108
00109 private:
00111 unsigned long m_LastPipelineMTime;
00112 };
00113
00114 }
00115
00116 #endif