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