Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Imaging/vtkImageExport.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageExport.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 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 //BTX 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 //ETX 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&); // Not implemented. 00186 void operator=(const vtkImageExport&); // Not implemented. 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