7 #ifndef Tomato_OXSTARTPOINTCALCULATOR_H     8 #define Tomato_OXSTARTPOINTCALCULATOR_H    20     template< 
typename MeasureType >
    32         const MeasureType *getInputStartPoint()
 const {
    33             return _InputStartPoint;
    36         MeasureType *getCalculatedStartPoint()
 const {
    37             if (!_CalculatedStartPoint) 
throw std::runtime_error(
"_CalculatedStartPoint equals 0. Set _CalculatedStartPoint");
    38             return _CalculatedStartPoint;
    41         int getNDims()
 const { 
return _nDims; }
    44         virtual void setInputStartPoint(
const MeasureType *_InputStartPoint) {
    47                 delete[] this->_InputStartPoint;
    48                 this->_InputStartPoint = 
new MeasureType[this->_nDims];
    49                 _nDimsChanged = 
false;
    52             if (!_InputStartPoint) {
    53                 this->_InputStartPoint = 
new MeasureType[this->_nDims];
    56             for (
int i = 0; i < this->getNDims(); i++){
    57                 StartPointCalculator::_InputStartPoint[i] = _InputStartPoint[i];
    62         virtual void setNDims(
int _nDims) {
    63             if (StartPointCalculator::_nDims != _nDims) {
    64                 StartPointCalculator::_nDims = _nDims;
    69         virtual void setInvTimes(
const MeasureType *_InvTimes) { StartPointCalculator::_InvTimes = _InvTimes; }
    70         virtual void setEchoTimes(
const MeasureType *_EchoTimes) { StartPointCalculator::_EchoTimes = _EchoTimes; }
    71         virtual void setSigMag(
const MeasureType *_SigMag) { StartPointCalculator::_SigMag = _SigMag; }
    72         virtual void setSigns(
const MeasureType *_Signs) { StartPointCalculator::_Signs = _Signs; }
    73         virtual void setCalculatedStartPoint(MeasureType *_CalculatedStartPoint) { StartPointCalculator::_CalculatedStartPoint = _CalculatedStartPoint; }
    74         virtual void setNSamples(
int _nSamples) { StartPointCalculator::_nSamples = _nSamples; }
    78             std::cout << 
"\nYou called disp() on a StartPointCalculator object " << 
this    79                       << 
" with nSamples: " << _nSamples
    80                       << 
" nDims: " << _nDims;
    81             KWUtil::printArray(_InvTimes  != 0, _nSamples, _InvTimes,   (
char*)
"\nInvTimes:    ");
    82             KWUtil::printArray(_EchoTimes != 0, _nSamples, _InvTimes,   (
char*)
"\nEchoTimes:    ");
    83             KWUtil::printArray(_SigMag    != 0, _nSamples, _SigMag,     (
char*)
"\nSigMag:      ");
    84             KWUtil::printArray(_Signs     != 0, _nSamples, _Signs,      (
char*)
"\nSigns:       ");
    85             KWUtil::printArray(_nDims, this->getCalculatedStartPoint(), (
char*)
"\nStart point: ");
    93             _CalculatedStartPoint = 0;
   109             _nDimsChanged = 
false;
   119             _nSamples = old._nSamples;
   121             _nDimsChanged = old._nDimsChanged;
   135             delete [] this->_InputStartPoint;
   139         MeasureType* _InputStartPoint;
   140         MeasureType* _CalculatedStartPoint;
   142         const MeasureType* _InvTimes;
   143         const MeasureType* _EchoTimes;
   144         const MeasureType* _SigMag;
   145         const MeasureType* _Signs;
   155 #endif //Tomato_OXSTARTPOINTCALCULATOR_H void setAllPointersToNull()
set all the pointers to zero 
Definition: OxStartPointCalculator.h:91
 
StartPointCalculator(const StartPointCalculator &old)
copy constructor 
Definition: OxStartPointCalculator.h:115
 
virtual ~StartPointCalculator()
do not forget about the virtual destructor, see https://stackoverflow.com/questions/461203/when-to-us...
Definition: OxStartPointCalculator.h:134
 
virtual StartPointCalculator< MeasureType > * newByCloning()=0
 
Definition: OxStartPointCalculator.h:21
 
StartPointCalculator()
constructor 
Definition: OxStartPointCalculator.h:103
 
Definition: OxCalculator.h:19
 
virtual int calculateStartPoint()=0