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 float* (*SpacingCallbackType)(void*);
00055 typedef float* (*OriginCallbackType)(void*);
00056 typedef const char* (*ScalarTypeCallbackType)(void*);
00057 typedef int (*NumberOfComponentsCallbackType)(void*);
00058 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*);
00059 typedef void (*UpdateDataCallbackType)(void*);
00060 typedef int* (*DataExtentCallbackType)(void*);
00061 typedef void* (*BufferPointerCallbackType)(void*);
00062
00064 UpdateInformationCallbackType GetUpdateInformationCallback() const;
00065 PipelineModifiedCallbackType GetPipelineModifiedCallback() const;
00066 WholeExtentCallbackType GetWholeExtentCallback() const;
00067 SpacingCallbackType GetSpacingCallback() const;
00068 OriginCallbackType GetOriginCallback() const;
00069 ScalarTypeCallbackType GetScalarTypeCallback() const;
00070 NumberOfComponentsCallbackType GetNumberOfComponentsCallback() const;
00071 PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const;
00072 UpdateDataCallbackType GetUpdateDataCallback() const;
00073 DataExtentCallbackType GetDataExtentCallback() const;
00074 BufferPointerCallbackType GetBufferPointerCallback() const;
00075
00076 protected:
00077 VTKImageExportBase();
00078 ~VTKImageExportBase() {}
00079 void PrintSelf(std::ostream& os, Indent indent) const;
00080
00081 typedef DataObject::Pointer DataObjectPointer;
00082
00083 virtual void UpdateInformationCallback();
00084 virtual int PipelineModifiedCallback();
00085 virtual void UpdateDataCallback();
00086
00089 virtual int* WholeExtentCallback()=0;
00090 virtual float* SpacingCallback()=0;
00091 virtual float* OriginCallback()=0;
00092 virtual const char* ScalarTypeCallback()=0;
00093 virtual int NumberOfComponentsCallback()=0;
00094 virtual void PropagateUpdateExtentCallback(int*)=0;
00095 virtual int* DataExtentCallback()=0;
00096 virtual void* BufferPointerCallback()=0;
00097
00098 private:
00099 VTKImageExportBase(const Self&);
00100 void operator=(const Self&);
00101
00105 static void UpdateInformationCallbackFunction(void*);
00106 static int PipelineModifiedCallbackFunction(void*);
00107 static int* WholeExtentCallbackFunction(void*);
00108 static float* SpacingCallbackFunction(void*);
00109 static float* OriginCallbackFunction(void*);
00110 static const char* ScalarTypeCallbackFunction(void*);
00111 static int NumberOfComponentsCallbackFunction(void*);
00112 static void PropagateUpdateExtentCallbackFunction(void*, int*);
00113 static void UpdateDataCallbackFunction(void*);
00114 static int* DataExtentCallbackFunction(void*);
00115 static void* BufferPointerCallbackFunction(void*);
00116
00117 private:
00119 unsigned long m_LastPipelineMTime;
00120 };
00121
00122 }
00123
00124 #endif