Imaging/vtkImageExport.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00034 #ifndef __vtkImageExport_h
00035 #define __vtkImageExport_h
00036
00037 #include "vtkProcessObject.h"
00038
00039 class vtkImageData;
00040
00041 class VTK_IMAGING_EXPORT vtkImageExport : public vtkProcessObject
00042 {
00043 public:
00044 static vtkImageExport *New();
00045 vtkTypeRevisionMacro(vtkImageExport,vtkProcessObject);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00049 int GetDataMemorySize();
00050
00052
00054 void GetDataDimensions(int *ptr);
00055 int *GetDataDimensions() {
00056 this->GetDataDimensions(this->DataDimensions);
00057 return this->DataDimensions; }
00059
00063 int GetDataNumberOfScalarComponents();
00064
00066
00068 int GetDataScalarType();
00069 const char *GetDataScalarTypeAsString() {
00070 return vtkImageScalarTypeNameMacro(this->GetDataScalarType()); }
00072
00074
00075 int *GetDataExtent();
00076 void GetDataExtent(int *ptr);
00077 double *GetDataSpacing();
00078 void GetDataSpacing(double *ptr);
00079 double *GetDataOrigin();
00080 void GetDataOrigin(double *ptr);
00082
00084
00085 void SetInput(vtkImageData *input);
00086 vtkImageData *GetInput();
00088
00090
00095 vtkBooleanMacro(ImageLowerLeft, int);
00096 vtkGetMacro(ImageLowerLeft, int);
00097 vtkSetMacro(ImageLowerLeft, int);
00099
00101
00104 void SetExportVoidPointer(void *);
00105 void *GetExportVoidPointer() { return this->ExportVoidPointer; };
00107
00109
00112 void Export() { this->Export(this->ExportVoidPointer); };
00113 virtual void Export(void *);
00115
00120 void *GetPointerToData();
00121
00123 void* GetCallbackUserData();
00124
00125
00127
00129 typedef void (*UpdateInformationCallbackType)(void*);
00130 typedef int (*PipelineModifiedCallbackType)(void*);
00131 typedef int* (*WholeExtentCallbackType)(void*);
00132 typedef double* (*SpacingCallbackType)(void*);
00133 typedef double* (*OriginCallbackType)(void*);
00134 typedef const char* (*ScalarTypeCallbackType)(void*);
00135 typedef int (*NumberOfComponentsCallbackType)(void*);
00136 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*);
00137 typedef void (*UpdateDataCallbackType)(void*);
00138 typedef int* (*DataExtentCallbackType)(void*);
00139 typedef void* (*BufferPointerCallbackType)(void*);
00141
00143
00144 UpdateInformationCallbackType GetUpdateInformationCallback() const;
00145 PipelineModifiedCallbackType GetPipelineModifiedCallback() const;
00146 WholeExtentCallbackType GetWholeExtentCallback() const;
00147 SpacingCallbackType GetSpacingCallback() const;
00148 OriginCallbackType GetOriginCallback() const;
00149 ScalarTypeCallbackType GetScalarTypeCallback() const;
00150 NumberOfComponentsCallbackType GetNumberOfComponentsCallback() const;
00151 PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const;
00152 UpdateDataCallbackType GetUpdateDataCallback() const;
00153 DataExtentCallbackType GetDataExtentCallback() const;
00154 BufferPointerCallbackType GetBufferPointerCallback() const;
00155
00157
00158 protected:
00159 vtkImageExport();
00160 ~vtkImageExport();
00161
00162 virtual void UpdateInformationCallback();
00163 virtual int PipelineModifiedCallback();
00164 virtual void UpdateDataCallback();
00165 virtual int* WholeExtentCallback();
00166 virtual double* SpacingCallback();
00167 virtual double* OriginCallback();
00168 virtual const char* ScalarTypeCallback();
00169 virtual int NumberOfComponentsCallback();
00170 virtual void PropagateUpdateExtentCallback(int*);
00171 virtual int* DataExtentCallback();
00172 virtual void* BufferPointerCallback();
00173
00174 int ImageLowerLeft;
00175 int DataDimensions[3];
00176 void *ExportVoidPointer;
00177
00178 unsigned long LastPipelineMTime;
00179
00180 private:
00181 vtkImageExport(const vtkImageExport&);
00182 void operator=(const vtkImageExport&);
00183
00184 static void UpdateInformationCallbackFunction(void*);
00185 static int PipelineModifiedCallbackFunction(void*);
00186 static int* WholeExtentCallbackFunction(void*);
00187 static double* SpacingCallbackFunction(void*);
00188 static double* OriginCallbackFunction(void*);
00189 static const char* ScalarTypeCallbackFunction(void*);
00190 static int NumberOfComponentsCallbackFunction(void*);
00191 static void PropagateUpdateExtentCallbackFunction(void*, int*);
00192 static void UpdateDataCallbackFunction(void*);
00193 static int* DataExtentCallbackFunction(void*);
00194 static void* BufferPointerCallbackFunction(void*);
00195 };
00196
00197 #endif
00198
00199