dox/Imaging/vtkImageT1Map.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   vtkCNMRRLibrary
00004   Module:    $RCSfile: vtkImageT1Map.h,v $
00005 
00006   Copyright  2007  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   Alternatively, the contents of this file may be used under the terms of 
00028   the GNU general public license (the "GPL"), in which case the provisions 
00029   of GPL are applicable instead of those above. If you wish to allow use of 
00030   your version of this file only under the terms of the GPL and not to allow 
00031   others to use your version of this file under the License, indicate your 
00032   decision by deleting the provisions above and replace them with the notice 
00033   and other provisions required by the GPL. If you do not delete the 
00034   provisions above, a recipient may use your version of this file under 
00035   either the License or the GNU General Public License.
00036 
00037 =========================================================================*/
00038  
00079 #ifndef __vtkImageT1Map_h
00080 #define __vtkImageT1Map_h
00081 
00082 // Options for selecting T1 fitting type.
00083 #define VTK_LINEAR_LEAST_SQUARES_SATURATION_RECOVERY 0
00084 #define VTK_LINEAR_GRADIENT_ESTIMATION_SATURATION_RECOVERY 1
00085 #define VTK_NON_LINEAR_SATURATION_RECOVERY 2
00086 
00087 #include "vtkImageMultipleInputFilter.h"
00088 #include "vtkDoubleArray.h"
00089 #include "vtkCNMRRImagingWin32Header.h"
00090 
00091 class VTK_CNMRR_IMAGING_EXPORT vtkImageT1Map : public vtkImageMultipleInputFilter
00092 {
00093    public:
00094       static vtkImageT1Map *New();
00095       vtkTypeRevisionMacro(vtkImageT1Map,vtkImageMultipleInputFilter);
00096       void PrintSelf(ostream& os, vtkIndent indent);
00097             
00099       void SetRepetitionTimes(vtkDoubleArray * _arg);
00100    
00102       vtkDoubleArray *GetRepetitionTimes();
00103       
00105 
00106       vtkSetMacro(T1FitType,int);
00107       vtkGetMacro(T1FitType,int);
00108       void SetT1FitTypeToLinearLeastSquaresSaturationRecovery() 
00109          {this->SetT1FitType(VTK_LINEAR_LEAST_SQUARES_SATURATION_RECOVERY);};
00110       void SetT1FitTypeToLinearGradientEstimationSaturationRecovery() 
00111          {this->SetT1FitType(VTK_LINEAR_GRADIENT_ESTIMATION_SATURATION_RECOVERY);};
00112       void SetT1FitTypeToNonLinearSaturationRecovery();
00114       
00116 
00117       vtkSetMacro(SmartT1Filtering, int);
00118       vtkGetMacro(SmartT1Filtering, int);
00119       vtkBooleanMacro(SmartT1Filtering, int);
00121       
00123       void SetMaxT1Time(double _arg);
00124       
00126       double GetMaxT1Time();
00127       
00129 
00130       vtkSetMacro(PerformR1Mapping, int);
00131       vtkGetMacro(PerformR1Mapping, int);
00132       vtkBooleanMacro(PerformR1Mapping, int);
00134    
00135    protected:
00136 
00137       vtkImageT1Map();
00138       ~vtkImageT1Map();
00139 
00140       void ExecuteInformation(vtkImageData **inputs, vtkImageData *output);
00141       void ExecuteInformation(){this->vtkImageMultipleInputFilter::ExecuteInformation();};
00142       
00143       void ThreadedExecute(vtkImageData **inDatas, vtkImageData *outData,
00144                      int extent[6], int id);
00145       
00146       void InitOutput(int outExt[6], vtkImageData *outData);
00147       
00148       vtkDoubleArray *RepetitionTimes;
00149       int T1FitType;
00150       int SmartT1Filtering;
00151       double MaxT1Time;
00152       int PerformR1Mapping;
00153          
00154    private:
00155       vtkImageT1Map(const vtkImageT1Map&);  // Not implemented.
00156       void operator=(const vtkImageT1Map&);  // Not implemented.
00157 };
00158 
00159 #endif

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