Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkVTKImageExportBase.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkVTKImageExportBase.h,v $ 00005 Language: C++ 00006 Date: $Date: 2004/02/18 21:58:58 $ 00007 Version: $Revision: 1.10.2.1 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 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 double* (*SpacingCallbackType)(void*); 00055 typedef double* (*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 typedef float* (*FloatSpacingCallbackType)(void*); 00065 typedef float* (*FloatOriginCallbackType)(void*); 00066 00068 class CallbackTypeProxy 00069 { 00070 public: 00071 typedef double* (*DoubleCallbackType)(void*); 00072 typedef float* (*FloatCallbackType)(void*); 00073 operator DoubleCallbackType() 00074 { 00075 return m_DoubleCallback; 00076 } 00077 operator FloatCallbackType() 00078 { 00079 return m_FloatCallback; 00080 } 00081 CallbackTypeProxy(DoubleCallbackType d, FloatCallbackType f): 00082 m_DoubleCallback(d), m_FloatCallback(f) {} 00083 private: 00084 DoubleCallbackType m_DoubleCallback; 00085 FloatCallbackType m_FloatCallback; 00086 }; 00087 00089 UpdateInformationCallbackType GetUpdateInformationCallback() const; 00090 PipelineModifiedCallbackType GetPipelineModifiedCallback() const; 00091 WholeExtentCallbackType GetWholeExtentCallback() const; 00092 CallbackTypeProxy GetSpacingCallback() const; 00093 CallbackTypeProxy GetOriginCallback() const; 00094 ScalarTypeCallbackType GetScalarTypeCallback() const; 00095 NumberOfComponentsCallbackType GetNumberOfComponentsCallback() const; 00096 PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const; 00097 UpdateDataCallbackType GetUpdateDataCallback() const; 00098 DataExtentCallbackType GetDataExtentCallback() const; 00099 BufferPointerCallbackType GetBufferPointerCallback() const; 00100 00101 protected: 00102 VTKImageExportBase(); 00103 ~VTKImageExportBase() {} 00104 void PrintSelf(std::ostream& os, Indent indent) const; 00105 00106 typedef DataObject::Pointer DataObjectPointer; 00107 00108 virtual void UpdateInformationCallback(); 00109 virtual int PipelineModifiedCallback(); 00110 virtual void UpdateDataCallback(); 00111 00114 virtual int* WholeExtentCallback()=0; 00115 virtual double* SpacingCallback()=0; 00116 virtual double* OriginCallback()=0; 00117 virtual float* FloatSpacingCallback()=0; 00118 virtual float* FloatOriginCallback()=0; 00119 virtual const char* ScalarTypeCallback()=0; 00120 virtual int NumberOfComponentsCallback()=0; 00121 virtual void PropagateUpdateExtentCallback(int*)=0; 00122 virtual int* DataExtentCallback()=0; 00123 virtual void* BufferPointerCallback()=0; 00124 00125 private: 00126 VTKImageExportBase(const Self&); //purposely not implemented 00127 void operator=(const Self&); //purposely not implemented 00128 00132 static void UpdateInformationCallbackFunction(void*); 00133 static int PipelineModifiedCallbackFunction(void*); 00134 static int* WholeExtentCallbackFunction(void*); 00135 static double* SpacingCallbackFunction(void*); 00136 static double* OriginCallbackFunction(void*); 00137 static float* FloatSpacingCallbackFunction(void*); 00138 static float* FloatOriginCallbackFunction(void*); 00139 static const char* ScalarTypeCallbackFunction(void*); 00140 static int NumberOfComponentsCallbackFunction(void*); 00141 static void PropagateUpdateExtentCallbackFunction(void*, int*); 00142 static void UpdateDataCallbackFunction(void*); 00143 static int* DataExtentCallbackFunction(void*); 00144 static void* BufferPointerCallbackFunction(void*); 00145 00146 private: 00148 unsigned long m_LastPipelineMTime; 00149 }; 00150 00151 } // end namespace itk 00152 00153 #endif

Generated at Sun Apr 1 02:47:42 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000