vtkImageImport.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00037 #ifndef __vtkImageImport_h
00038 #define __vtkImageImport_h
00039
00040 #include "vtkImageSource.h"
00041
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
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
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
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
00290
00291 virtual void ExecuteData(vtkDataObject *d);
00292
00293 private:
00294 vtkImageImport(const vtkImageImport&);
00295 void operator=(const vtkImageImport&);
00296 };
00297
00298 #endif