Imaging/vtkImageImport.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00033 #ifndef __vtkImageImport_h
00034 #define __vtkImageImport_h
00035
00036 #include "vtkImageSource.h"
00037
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
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
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
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
00286
00287 virtual void ExecuteData(vtkDataObject *d);
00288
00289 private:
00290 vtkImageImport(const vtkImageImport&);
00291 void operator=(const vtkImageImport&);
00292 };
00293
00294 #endif