dox/IO/vtkBruker2DSEQReader.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   vtkCNMRRLibrary
00004   Module:    $RCSfile: vtkBruker2DSEQReader.h,v $
00005 
00006   Copyright  2005  The Pennsylvania State University
00007   
00008           Notice
00009  
00010   The contents of this file are subject to The Pennsylvania State University 
00011   Open Source License (the "License"); you may not use this file except in 
00012   compliance with the License. You may obtain a copy of the License at H066 
00013   Radiology, NMR Building, 500 University Drive, Hershey, PA, 
00014   tel. (717) 531-6069 or via email at dcb210@psu.edu.
00015  
00016   Software distributed under the License is distributed on an "AS IS" basis, 
00017   WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
00018   for the specific language governing rights and limitations under the 
00019   License.
00020  
00021   The Original Code is listed under Exhibit A of the license.
00022  
00023   The Initial Developer of the Original Code is Don Bigler.
00024  
00025   Contributor(s):
00026   
00027 =========================================================================*/
00038 #ifndef __vtkBruker2DSEQReader_h
00039 #define __vtkBruker2DSEQReader_h
00040 
00041 // Values used to determine image type.
00042 typedef enum
00043 {
00044    MAGNITUDE_IMAGE=1,
00045    REAL_IMAGE,
00046    IMAGINARY_IMAGE,
00047    COMPLEX_IMAGE,
00048    PHASE_IMAGE,
00049    IR_IMAGE,
00050    UNKNOWN
00051 } RECO_TYPE;
00052 
00053 #include "vtkMedicalImageReader2.h"
00054 #include "vtkCNMRRIOWin32Header.h"
00055 
00056 class VTK_CNMRR_IO_EXPORT vtkBruker2DSEQReader : public vtkMedicalImageReader2
00057 {
00058    public:
00059       static vtkBruker2DSEQReader *New();
00060       vtkTypeRevisionMacro(vtkBruker2DSEQReader,vtkMedicalImageReader2);
00061       virtual void PrintSelf(ostream& os, vtkIndent indent);
00062 
00063       virtual int CanReadFile(const char* fname);
00064 
00066 
00067       virtual const char* GetDescriptiveName()
00068       {
00069          return "Bruker image";
00070       }
00072       
00074 
00075       vtkGetMacro(NumSlices, int);
00077 
00079 
00080       vtkGetMacro(Nechoes, int);
00082       
00084 
00085       vtkGetMacro(ACQ_n_echo_images, int);
00087 
00089 
00090       vtkGetMacro(NumRepetitions, int);
00092       
00094 
00095       vtkGetVectorMacro(Nucleus,char,9);
00097       
00099 
00100       vtkGetVector3Macro(RECO_fov, double);
00102       
00104 
00105       vtkGetVector3Macro(RECO_size, int);
00107       
00109 
00110       vtkGetMacro(RECO_image_type, RECO_TYPE);
00112       
00114 
00115       vtkGetVector3Macro(ACQ_grad_matrixX, double);
00117       
00119 
00120       vtkGetVector3Macro(ACQ_grad_matrixY, double);
00122       
00124 
00125       vtkGetVector3Macro(ACQ_grad_matrixZ, double);
00127       
00129 
00130       vtkGetMacro(ACQ_echo_timeArraySize, int);
00132       
00134       double *GetACQ_echo_time() {return this->ACQ_echo_time;};
00135       
00137 
00138       vtkGetMacro(ACQ_repetition_timeArraySize, int);
00140 
00142       double *GetACQ_repetition_time() {return this->ACQ_repetition_time;};
00143       
00145 
00146       vtkGetMacro(ACQ_inversion_timeArraySize, int);
00148 
00150       double *GetACQ_inversion_time() {return this->ACQ_inversion_time;};
00151       
00153 
00154       vtkGetMacro(ACQ_slice_thick, double);
00156       
00158 
00160       vtkSetMacro(SortByBlock, int);
00161       vtkGetMacro(SortByBlock, int);
00162       vtkBooleanMacro(SortByBlock, int);
00164       
00167       int *GetImageBlockSliceIndex(){return this->SliceIndex;};
00168 
00169    protected:
00170       vtkBruker2DSEQReader();
00171       ~vtkBruker2DSEQReader();
00172 
00173       virtual void ExecuteInformation();
00174       virtual void ExecuteData(vtkDataObject *out);
00175       virtual void ComputeDataIncrements();
00176    
00177       int NumRepetitions;
00178       int NumSlices;
00179       int Nechoes;
00180       int ACQ_n_echo_images;
00181       char Nucleus[9];
00182       double *ACQ_echo_time;
00183       int ACQ_echo_timeArraySize;
00184       double *ACQ_repetition_time;
00185       int ACQ_repetition_timeArraySize;
00186       double *ACQ_inversion_time;
00187       int ACQ_inversion_timeArraySize;
00188       double ACQ_slice_thick;
00189       double *ACQ_slice_sepn;
00190       int ACQ_slice_sepnArraySize;
00191       double RECO_fov[3];
00192       int RECO_size[3];
00193       RECO_TYPE RECO_image_type;
00194       double ACQ_grad_matrixX[3];
00195       double ACQ_grad_matrixY[3];
00196       double ACQ_grad_matrixZ[3];
00197       int SortByBlock;
00198       int *SliceIndex;
00199 
00200    private:
00201       vtkBruker2DSEQReader(const vtkBruker2DSEQReader&);  // Not implemented.
00202       void operator=(const vtkBruker2DSEQReader&);  // Not implemented.
00203 };
00204 #endif

Generated on Tue May 12 14:53:03 2009 for vtkCNMRRLibrary by  doxygen 1.4.7