VTK
|
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