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 "vtkImageAlgorithm.h"
00037
00038
00039 class VTK_IMAGING_EXPORT vtkImageImport : public vtkImageAlgorithm
00040 {
00041 public:
00042 static vtkImageImport *New();
00043 vtkTypeRevisionMacro(vtkImageImport,vtkImageAlgorithm);
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
00126 virtual int RequestUpdateExtent( vtkInformation* request,
00127 vtkInformationVector** inputVector,
00128 vtkInformationVector* outputVector);
00130
00131
00133
00135 typedef void (*UpdateInformationCallbackType)(void*);
00136 typedef int (*PipelineModifiedCallbackType)(void*);
00137 typedef int* (*WholeExtentCallbackType)(void*);
00138 typedef double* (*SpacingCallbackType)(void*);
00139 typedef double* (*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
00253
00254 int InvokePipelineModifiedCallbacks();
00255 void InvokeUpdateInformationCallbacks();
00256 void InvokeExecuteInformationCallbacks();
00257 void InvokeExecuteDataCallbacks();
00258 void LegacyCheckWholeExtent();
00260
00261 protected:
00262 vtkImageImport();
00263 ~vtkImageImport();
00264
00265 virtual int RequestInformation (vtkInformation *, vtkInformationVector **,
00266 vtkInformationVector *);
00267
00268
00269 void *ImportVoidPointer;
00270 int SaveUserArray;
00271
00272 int NumberOfScalarComponents;
00273 int DataScalarType;
00274
00275 int WholeExtent[6];
00276 int DataExtent[6];
00277 double DataSpacing[3];
00278 double DataOrigin[3];
00279
00280 void* CallbackUserData;
00281
00282
00283 UpdateInformationCallbackType UpdateInformationCallback;
00284 PipelineModifiedCallbackType PipelineModifiedCallback;
00285 WholeExtentCallbackType WholeExtentCallback;
00286 SpacingCallbackType SpacingCallback;
00287 OriginCallbackType OriginCallback;
00288 ScalarTypeCallbackType ScalarTypeCallback;
00289 NumberOfComponentsCallbackType NumberOfComponentsCallback;
00290 PropagateUpdateExtentCallbackType PropagateUpdateExtentCallback;
00291 UpdateDataCallbackType UpdateDataCallback;
00292 DataExtentCallbackType DataExtentCallback;
00293 BufferPointerCallbackType BufferPointerCallback;
00294
00295
00296 virtual void ExecuteData(vtkDataObject *d);
00297
00298 private:
00299 vtkImageImport(const vtkImageImport&);
00300 void operator=(const vtkImageImport&);
00301 };
00302
00303 #endif