VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/IO/Image/vtkNIFTIImageWriter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkNIFTIImageWriter.h
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 =========================================================================*/
00035 #ifndef vtkNIFTIImageWriter_h
00036 #define vtkNIFTIImageWriter_h
00037 
00038 #include "vtkIOImageModule.h" // For export macro
00039 #include "vtkImageWriter.h"
00040 
00041 class vtkMatrix4x4;
00042 class vtkNIFTIImageHeader;
00043 
00044 class VTKIOIMAGE_EXPORT vtkNIFTIImageWriter : public vtkImageWriter
00045 {
00046 public:
00048 
00049   static vtkNIFTIImageWriter *New();
00050   vtkTypeMacro(vtkNIFTIImageWriter, vtkImageWriter);
00052 
00054   virtual void PrintSelf(ostream& os, vtkIndent indent);
00055 
00057 
00061   vtkSetMacro(NIFTIVersion, int);
00062   vtkGetMacro(NIFTIVersion, int);
00064 
00066 
00068   vtkSetStringMacro(Description);
00069   vtkGetStringMacro(Description);
00071 
00073 
00078   vtkGetMacro(TimeDimension, int);
00079   vtkSetMacro(TimeDimension, int);
00080   vtkGetMacro(TimeSpacing, double);
00081   vtkSetMacro(TimeSpacing, double);
00083 
00085 
00091    vtkSetMacro(RescaleSlope, double);
00092    vtkGetMacro(RescaleSlope, double);
00093    vtkSetMacro(RescaleIntercept, double);
00094    vtkGetMacro(RescaleIntercept, double);
00096 
00098 
00101   vtkSetMacro(QFac, double);
00102   vtkGetMacro(QFac, double);
00104 
00106 
00111   void SetQFormMatrix(vtkMatrix4x4 *);
00112   vtkMatrix4x4 *GetQFormMatrix() { return this->QFormMatrix; }
00114 
00116 
00121   void SetSFormMatrix(vtkMatrix4x4 *);
00122   vtkMatrix4x4 *GetSFormMatrix() { return this->SFormMatrix; }
00124 
00126 
00131   void SetNIFTIHeader(vtkNIFTIImageHeader *hdr);
00132   vtkNIFTIImageHeader *GetNIFTIHeader();
00134 
00135 protected:
00136   vtkNIFTIImageWriter();
00137   ~vtkNIFTIImageWriter();
00138 
00140   int GenerateHeader(vtkInformation *info, bool singleFile);
00141 
00143 
00144   virtual int RequestData(vtkInformation *request,
00145                           vtkInformationVector** inputVector,
00146                           vtkInformationVector* outputVector);
00148 
00150 
00154   static char *ReplaceExtension(
00155     const char *fname, const char *ext1, const char *ext2);
00157 
00159 
00160   int TimeDimension;
00161   double TimeSpacing;
00163 
00165 
00166   double RescaleIntercept;
00167   double RescaleSlope;
00169 
00172   double QFac;
00173 
00175 
00176   vtkMatrix4x4 *QFormMatrix;
00177   vtkMatrix4x4 *SFormMatrix;
00179 
00181   char *Description;
00182 
00184 
00185   vtkNIFTIImageHeader *NIFTIHeader;
00186   vtkNIFTIImageHeader *OwnHeader;
00187   int NIFTIVersion;
00189 
00190 private:
00191   vtkNIFTIImageWriter(const vtkNIFTIImageWriter&);  // Not implemented.
00192   void operator=(const vtkNIFTIImageWriter&);  // Not implemented.
00193 };
00194 
00195 #endif // vtkNIFTIImageWriter_h