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