Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Imaging/vtkImageImport.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageImport.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00033 #ifndef __vtkImageImport_h 00034 #define __vtkImageImport_h 00035 00036 #include "vtkImageSource.h" 00037 //#include "vtkTransform.h" 00038 00039 class VTK_IMAGING_EXPORT vtkImageImport : public vtkImageSource 00040 { 00041 public: 00042 static vtkImageImport *New(); 00043 vtkTypeRevisionMacro(vtkImageImport,vtkImageSource); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00049 void CopyImportVoidPointer(void *ptr, int size); 00050 00052 00056 void SetImportVoidPointer(void *ptr); 00057 void *GetImportVoidPointer() {return this->ImportVoidPointer;}; 00059 00065 void SetImportVoidPointer(void *ptr, int save); 00066 00068 00070 vtkSetMacro(DataScalarType,int); 00071 void SetDataScalarTypeToDouble(){this->SetDataScalarType(VTK_DOUBLE);} 00072 void SetDataScalarTypeToFloat(){this->SetDataScalarType(VTK_FLOAT);} 00073 void SetDataScalarTypeToInt(){this->SetDataScalarType(VTK_INT);} 00074 void SetDataScalarTypeToShort(){this->SetDataScalarType(VTK_SHORT);} 00075 void SetDataScalarTypeToUnsignedShort() 00076 {this->SetDataScalarType(VTK_UNSIGNED_SHORT);} 00077 void SetDataScalarTypeToUnsignedChar() 00078 {this->SetDataScalarType(VTK_UNSIGNED_CHAR);} 00079 vtkGetMacro(DataScalarType, int); 00080 const char *GetDataScalarTypeAsString() { 00081 return vtkImageScalarTypeNameMacro(this->DataScalarType); } 00083 00085 00087 vtkSetMacro(NumberOfScalarComponents,int); 00088 vtkGetMacro(NumberOfScalarComponents,int); 00090 00092 00096 vtkSetVector6Macro(DataExtent,int); 00097 vtkGetVector6Macro(DataExtent,int); 00098 void SetDataExtentToWholeExtent() 00099 {this->SetDataExtent(this->GetWholeExtent());} 00101 00103 00105 vtkSetVector3Macro(DataSpacing,double); 00106 vtkGetVector3Macro(DataSpacing,double); 00108 00110 00112 vtkSetVector3Macro(DataOrigin,double); 00113 vtkGetVector3Macro(DataOrigin,double); 00115 00117 00120 vtkSetVector6Macro(WholeExtent,int); 00121 vtkGetVector6Macro(WholeExtent,int); 00123 00125 virtual void PropagateUpdateExtent(vtkDataObject *output); 00126 00127 //BTX 00129 00131 typedef void (*UpdateInformationCallbackType)(void*); 00132 typedef int (*PipelineModifiedCallbackType)(void*); 00133 typedef int* (*WholeExtentCallbackType)(void*); 00134 typedef double* (*SpacingCallbackType)(void*); 00135 typedef double* (*OriginCallbackType)(void*); 00136 typedef const char* (*ScalarTypeCallbackType)(void*); 00137 typedef int (*NumberOfComponentsCallbackType)(void*); 00138 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*); 00139 typedef void (*UpdateDataCallbackType)(void*); 00140 typedef int* (*DataExtentCallbackType)(void*); 00141 typedef void* (*BufferPointerCallbackType)(void*); 00143 00145 00148 vtkSetMacro(UpdateInformationCallback, UpdateInformationCallbackType); 00149 vtkGetMacro(UpdateInformationCallback, UpdateInformationCallbackType); 00151 00153 00157 vtkSetMacro(PipelineModifiedCallback, PipelineModifiedCallbackType); 00158 vtkGetMacro(PipelineModifiedCallback, PipelineModifiedCallbackType); 00160 00162 00166 vtkSetMacro(WholeExtentCallback, WholeExtentCallbackType); 00167 vtkGetMacro(WholeExtentCallback, WholeExtentCallbackType); 00169 00171 00174 vtkSetMacro(SpacingCallback, SpacingCallbackType); 00175 vtkGetMacro(SpacingCallback, SpacingCallbackType); 00177 00179 00182 vtkSetMacro(OriginCallback, OriginCallbackType); 00183 vtkGetMacro(OriginCallback, OriginCallbackType); 00185 00187 00190 vtkSetMacro(ScalarTypeCallback, ScalarTypeCallbackType); 00191 vtkGetMacro(ScalarTypeCallback, ScalarTypeCallbackType); 00193 00195 00198 vtkSetMacro(NumberOfComponentsCallback, NumberOfComponentsCallbackType); 00199 vtkGetMacro(NumberOfComponentsCallback, NumberOfComponentsCallbackType); 00201 00203 00208 vtkSetMacro(PropagateUpdateExtentCallback,PropagateUpdateExtentCallbackType); 00209 vtkGetMacro(PropagateUpdateExtentCallback,PropagateUpdateExtentCallbackType); 00211 00213 00216 vtkSetMacro(UpdateDataCallback, UpdateDataCallbackType); 00217 vtkGetMacro(UpdateDataCallback, UpdateDataCallbackType); 00219 00221 00226 vtkSetMacro(DataExtentCallback, DataExtentCallbackType); 00227 vtkGetMacro(DataExtentCallback, DataExtentCallbackType); 00229 00231 00235 vtkSetMacro(BufferPointerCallback, BufferPointerCallbackType); 00236 vtkGetMacro(BufferPointerCallback, BufferPointerCallbackType); 00238 00240 00242 vtkSetMacro(CallbackUserData, void*); 00243 vtkGetMacro(CallbackUserData, void*); 00245 00246 //ETX 00247 00248 protected: 00249 vtkImageImport(); 00250 ~vtkImageImport(); 00251 00252 virtual void UpdateInformation(); 00253 virtual void ExecuteInformation(); 00254 00255 void InvokeUpdateInformationCallbacks(); 00256 void InvokeExecuteInformationCallbacks(); 00257 void InvokeExecuteDataCallbacks(); 00258 void LegacyCheckWholeExtent(); 00259 00260 void *ImportVoidPointer; 00261 int SaveUserArray; 00262 00263 int NumberOfScalarComponents; 00264 int DataScalarType; 00265 00266 int WholeExtent[6]; 00267 int DataExtent[6]; 00268 double DataSpacing[3]; 00269 double DataOrigin[3]; 00270 00271 void* CallbackUserData; 00272 00273 //BTX 00274 UpdateInformationCallbackType UpdateInformationCallback; 00275 PipelineModifiedCallbackType PipelineModifiedCallback; 00276 WholeExtentCallbackType WholeExtentCallback; 00277 SpacingCallbackType SpacingCallback; 00278 OriginCallbackType OriginCallback; 00279 ScalarTypeCallbackType ScalarTypeCallback; 00280 NumberOfComponentsCallbackType NumberOfComponentsCallback; 00281 PropagateUpdateExtentCallbackType PropagateUpdateExtentCallback; 00282 UpdateDataCallbackType UpdateDataCallback; 00283 DataExtentCallbackType DataExtentCallback; 00284 BufferPointerCallbackType BufferPointerCallback; 00285 //ETX 00286 00287 virtual void ExecuteData(vtkDataObject *d); 00288 00289 private: 00290 vtkImageImport(const vtkImageImport&); // Not implemented. 00291 void operator=(const vtkImageImport&); // Not implemented. 00292 }; 00293 00294 #endif