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 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 //BTX 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 //ETX 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&); // Not implemented. 00182 void operator=(const vtkImageExport&); // Not implemented. 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