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

dox/Imaging/vtkImageImport.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImageImport.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 =========================================================================*/
00037 #ifndef __vtkImageImport_h
00038 #define __vtkImageImport_h
00039 
00040 #include "vtkImageSource.h"
00041 //#include "vtkTransform.h"
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   //BTX
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   //ETX
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   //BTX
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   //ETX
00290   
00291   virtual void ExecuteData(vtkDataObject *d);
00292 
00293 private:
00294   vtkImageImport(const vtkImageImport&);  // Not implemented.
00295   void operator=(const vtkImageImport&);  // Not implemented.
00296 };
00297 
00298 #endif