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

itkVTKImageImport.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkVTKImageImport.h,v $ 00005 Language: C++ 00006 Date: $Date: 2004/02/18 21:58:58 $ 00007 Version: $Revision: 1.12.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 __itkVTKImageImport_h 00018 #define __itkVTKImageImport_h 00019 00020 #include "itkImageSource.h" 00021 #include "itkImage.h" 00022 #include "itkImportImageContainer.h" 00023 00024 #define itkSetMacro2(name,type) \ 00025 virtual void Set##name (type _arg) \ 00026 { \ 00027 itkDebugMacro("setting " #name " to " << _arg); \ 00028 if (this->m_##name != _arg) \ 00029 { \ 00030 this->m_##name = _arg; \ 00031 this->Modified(); \ 00032 } \ 00033 } 00034 00035 namespace itk 00036 { 00037 00054 template <typename TOutputImage> 00055 class ITK_EXPORT VTKImageImport: public ImageSource<TOutputImage> 00056 { 00057 public: 00059 typedef VTKImageImport Self; 00060 typedef ImageSource<TOutputImage> Superclass; 00061 typedef SmartPointer<Self> Pointer; 00062 00064 itkNewMacro(Self); 00065 00067 itkTypeMacro(VTKImageImport, ImageSource); 00068 00070 typedef TOutputImage OutputImageType; 00071 typedef typename OutputImageType::Pointer OutputImagePointer; 00072 typedef typename OutputImageType::PixelType OutputPixelType; 00073 typedef typename OutputImageType::SizeType OutputSizeType; 00074 typedef typename OutputImageType::IndexType OutputIndexType; 00075 typedef typename OutputImageType::RegionType OutputRegionType; 00076 00078 itkStaticConstMacro(OutputImageDimension, unsigned int, 00079 OutputImageType::ImageDimension); 00080 00083 typedef void (*UpdateInformationCallbackType)(void*); 00084 typedef int (*PipelineModifiedCallbackType)(void*); 00085 typedef int* (*WholeExtentCallbackType)(void*); 00086 typedef double* (*SpacingCallbackType)(void*); 00087 typedef double* (*OriginCallbackType)(void*); 00088 typedef const char* (*ScalarTypeCallbackType)(void*); 00089 typedef int (*NumberOfComponentsCallbackType)(void*); 00090 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*); 00091 typedef void (*UpdateDataCallbackType)(void*); 00092 typedef int* (*DataExtentCallbackType)(void*); 00093 typedef void* (*BufferPointerCallbackType)(void*); 00094 00096 typedef float* (*FloatSpacingCallbackType)(void*); 00097 typedef float* (*FloatOriginCallbackType)(void*); 00098 00100 itkSetMacro(UpdateInformationCallback, UpdateInformationCallbackType); 00101 itkGetMacro(UpdateInformationCallback, UpdateInformationCallbackType); 00102 00104 itkSetMacro(PipelineModifiedCallback, PipelineModifiedCallbackType); 00105 itkGetMacro(PipelineModifiedCallback, PipelineModifiedCallbackType); 00106 00108 itkSetMacro(WholeExtentCallback, WholeExtentCallbackType); 00109 itkGetMacro(WholeExtentCallback, WholeExtentCallbackType); 00110 00112 itkSetMacro(SpacingCallback, SpacingCallbackType); 00113 itkGetMacro(SpacingCallback, SpacingCallbackType); 00114 itkSetMacro(FloatSpacingCallback, FloatSpacingCallbackType); 00115 itkGetMacro(FloatSpacingCallback, FloatSpacingCallbackType); 00116 void SetSpacingCallback(FloatSpacingCallbackType f) 00117 { this->SetFloatSpacingCallback(f); } 00118 00120 itkSetMacro(OriginCallback, OriginCallbackType); 00121 itkGetMacro(OriginCallback, OriginCallbackType); 00122 itkSetMacro(FloatOriginCallback, FloatOriginCallbackType); 00123 itkGetMacro(FloatOriginCallback, FloatOriginCallbackType); 00124 void SetOriginCallback(FloatOriginCallbackType f) 00125 { this->SetFloatOriginCallback(f); } 00126 00128 itkSetMacro(ScalarTypeCallback, ScalarTypeCallbackType); 00129 itkGetMacro(ScalarTypeCallback, ScalarTypeCallbackType); 00130 00132 itkSetMacro(NumberOfComponentsCallback, NumberOfComponentsCallbackType); 00133 itkGetMacro(NumberOfComponentsCallback, NumberOfComponentsCallbackType); 00134 00136 itkSetMacro(PropagateUpdateExtentCallback,PropagateUpdateExtentCallbackType); 00137 itkGetMacro(PropagateUpdateExtentCallback,PropagateUpdateExtentCallbackType); 00138 00140 itkSetMacro(UpdateDataCallback, UpdateDataCallbackType); 00141 itkGetMacro(UpdateDataCallback, UpdateDataCallbackType); 00142 00144 itkSetMacro(DataExtentCallback, DataExtentCallbackType); 00145 itkGetMacro(DataExtentCallback, DataExtentCallbackType); 00146 00148 itkSetMacro(BufferPointerCallback, BufferPointerCallbackType); 00149 itkGetMacro(BufferPointerCallback, BufferPointerCallbackType); 00150 00152 itkSetMacro2(CallbackUserData, void*); 00153 itkGetMacro(CallbackUserData, void*); 00154 00155 protected: 00156 VTKImageImport(); 00157 ~VTKImageImport() {} 00158 void PrintSelf(std::ostream& os, Indent indent) const; 00159 00160 virtual void PropagateRequestedRegion(DataObject*); 00161 virtual void UpdateOutputInformation(); 00162 virtual void GenerateData(); 00163 virtual void GenerateOutputInformation(); 00164 00165 private: 00166 VTKImageImport(const Self&); //purposely not implemented 00167 void operator= (const Self&); //purposely not implemented 00168 00169 void* m_CallbackUserData; 00170 UpdateInformationCallbackType m_UpdateInformationCallback; 00171 PipelineModifiedCallbackType m_PipelineModifiedCallback; 00172 WholeExtentCallbackType m_WholeExtentCallback; 00173 SpacingCallbackType m_SpacingCallback; 00174 FloatSpacingCallbackType m_FloatSpacingCallback; 00175 OriginCallbackType m_OriginCallback; 00176 FloatOriginCallbackType m_FloatOriginCallback; 00177 ScalarTypeCallbackType m_ScalarTypeCallback; 00178 NumberOfComponentsCallbackType m_NumberOfComponentsCallback; 00179 PropagateUpdateExtentCallbackType m_PropagateUpdateExtentCallback; 00180 UpdateDataCallbackType m_UpdateDataCallback; 00181 DataExtentCallbackType m_DataExtentCallback; 00182 BufferPointerCallbackType m_BufferPointerCallback; 00183 00184 std::string m_ScalarTypeName; 00185 }; 00186 00187 } // namespace itk 00188 00189 #ifndef ITK_MANUAL_INSTANTIATION 00190 #include "itkVTKImageImport.txx" 00191 #endif 00192 00193 #endif // __itkVTKImageImport_h

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