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 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00037 #ifndef __vtkImageImport_h 00038 #define __vtkImageImport_h 00039 00040 #include "vtkImageSource.h" 00041 //#include "vtkTransform.h" 00042 00043 class VTK_IMAGING_EXPORT vtkImageImport : public vtkImageSource 00044 { 00045 public: 00046 static vtkImageImport *New(); 00047 vtkTypeRevisionMacro(vtkImageImport,vtkImageSource); 00048 void PrintSelf(ostream& os, vtkIndent indent); 00049 00053 void CopyImportVoidPointer(void *ptr, int size); 00054 00056 00060 void SetImportVoidPointer(void *ptr); 00061 void *GetImportVoidPointer() {return this->ImportVoidPointer;}; 00063 00069 void SetImportVoidPointer(void *ptr, int save); 00070 00072 00074 vtkSetMacro(DataScalarType,int); 00075 void SetDataScalarTypeToDouble(){this->SetDataScalarType(VTK_DOUBLE);} 00076 void SetDataScalarTypeToFloat(){this->SetDataScalarType(VTK_FLOAT);} 00077 void SetDataScalarTypeToInt(){this->SetDataScalarType(VTK_INT);} 00078 void SetDataScalarTypeToShort(){this->SetDataScalarType(VTK_SHORT);} 00079 void SetDataScalarTypeToUnsignedShort() 00080 {this->SetDataScalarType(VTK_UNSIGNED_SHORT);} 00081 void SetDataScalarTypeToUnsignedChar() 00082 {this->SetDataScalarType(VTK_UNSIGNED_CHAR);} 00083 vtkGetMacro(DataScalarType, int); 00084 const char *GetDataScalarTypeAsString() { 00085 return vtkImageScalarTypeNameMacro(this->DataScalarType); } 00087 00089 00091 vtkSetMacro(NumberOfScalarComponents,int); 00092 vtkGetMacro(NumberOfScalarComponents,int); 00094 00096 00100 vtkSetVector6Macro(DataExtent,int); 00101 vtkGetVector6Macro(DataExtent,int); 00102 void SetDataExtentToWholeExtent() 00103 {this->SetDataExtent(this->GetWholeExtent());} 00105 00107 00109 vtkSetVector3Macro(DataSpacing,float); 00110 vtkGetVector3Macro(DataSpacing,float); 00112 00114 00116 vtkSetVector3Macro(DataOrigin,float); 00117 vtkGetVector3Macro(DataOrigin,float); 00119 00121 00124 vtkSetVector6Macro(WholeExtent,int); 00125 vtkGetVector6Macro(WholeExtent,int); 00127 00129 virtual void PropagateUpdateExtent(vtkDataObject *output); 00130 00131 //BTX 00133 00135 typedef void (*UpdateInformationCallbackType)(void*); 00136 typedef int (*PipelineModifiedCallbackType)(void*); 00137 typedef int* (*WholeExtentCallbackType)(void*); 00138 typedef float* (*SpacingCallbackType)(void*); 00139 typedef float* (*OriginCallbackType)(void*); 00140 typedef const char* (*ScalarTypeCallbackType)(void*); 00141 typedef int (*NumberOfComponentsCallbackType)(void*); 00142 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*); 00143 typedef void (*UpdateDataCallbackType)(void*); 00144 typedef int* (*DataExtentCallbackType)(void*); 00145 typedef void* (*BufferPointerCallbackType)(void*); 00147 00149 00152 vtkSetMacro(UpdateInformationCallback, UpdateInformationCallbackType); 00153 vtkGetMacro(UpdateInformationCallback, UpdateInformationCallbackType); 00155 00157 00161 vtkSetMacro(PipelineModifiedCallback, PipelineModifiedCallbackType); 00162 vtkGetMacro(PipelineModifiedCallback, PipelineModifiedCallbackType); 00164 00166 00170 vtkSetMacro(WholeExtentCallback, WholeExtentCallbackType); 00171 vtkGetMacro(WholeExtentCallback, WholeExtentCallbackType); 00173 00175 00178 vtkSetMacro(SpacingCallback, SpacingCallbackType); 00179 vtkGetMacro(SpacingCallback, SpacingCallbackType); 00181 00183 00186 vtkSetMacro(OriginCallback, OriginCallbackType); 00187 vtkGetMacro(OriginCallback, OriginCallbackType); 00189 00191 00194 vtkSetMacro(ScalarTypeCallback, ScalarTypeCallbackType); 00195 vtkGetMacro(ScalarTypeCallback, ScalarTypeCallbackType); 00197 00199 00202 vtkSetMacro(NumberOfComponentsCallback, NumberOfComponentsCallbackType); 00203 vtkGetMacro(NumberOfComponentsCallback, NumberOfComponentsCallbackType); 00205 00207 00212 vtkSetMacro(PropagateUpdateExtentCallback,PropagateUpdateExtentCallbackType); 00213 vtkGetMacro(PropagateUpdateExtentCallback,PropagateUpdateExtentCallbackType); 00215 00217 00220 vtkSetMacro(UpdateDataCallback, UpdateDataCallbackType); 00221 vtkGetMacro(UpdateDataCallback, UpdateDataCallbackType); 00223 00225 00230 vtkSetMacro(DataExtentCallback, DataExtentCallbackType); 00231 vtkGetMacro(DataExtentCallback, DataExtentCallbackType); 00233 00235 00239 vtkSetMacro(BufferPointerCallback, BufferPointerCallbackType); 00240 vtkGetMacro(BufferPointerCallback, BufferPointerCallbackType); 00242 00244 00246 vtkSetMacro(CallbackUserData, void*); 00247 vtkGetMacro(CallbackUserData, void*); 00249 00250 //ETX 00251 00252 protected: 00253 vtkImageImport(); 00254 ~vtkImageImport(); 00255 00256 virtual void UpdateInformation(); 00257 virtual void ExecuteInformation(); 00258 00259 void InvokeUpdateInformationCallbacks(); 00260 void InvokeExecuteInformationCallbacks(); 00261 void InvokeExecuteDataCallbacks(); 00262 void LegacyCheckWholeExtent(); 00263 00264 void *ImportVoidPointer; 00265 int SaveUserArray; 00266 00267 int NumberOfScalarComponents; 00268 int DataScalarType; 00269 00270 int WholeExtent[6]; 00271 int DataExtent[6]; 00272 float DataSpacing[3]; 00273 float DataOrigin[3]; 00274 00275 void* CallbackUserData; 00276 00277 //BTX 00278 UpdateInformationCallbackType UpdateInformationCallback; 00279 PipelineModifiedCallbackType PipelineModifiedCallback; 00280 WholeExtentCallbackType WholeExtentCallback; 00281 SpacingCallbackType SpacingCallback; 00282 OriginCallbackType OriginCallback; 00283 ScalarTypeCallbackType ScalarTypeCallback; 00284 NumberOfComponentsCallbackType NumberOfComponentsCallback; 00285 PropagateUpdateExtentCallbackType PropagateUpdateExtentCallback; 00286 UpdateDataCallbackType UpdateDataCallback; 00287 DataExtentCallbackType DataExtentCallback; 00288 BufferPointerCallbackType BufferPointerCallback; 00289 //ETX 00290 00291 virtual void ExecuteData(vtkDataObject *d); 00292 00293 private: 00294 vtkImageImport(const vtkImageImport&); // Not implemented. 00295 void operator=(const vtkImageImport&); // Not implemented. 00296 }; 00297 00298 #endif