swh:1:snp:e6d42e6731ce66e3c09de07ac49964c03139e990
Tip revision: 9ee6be436b4cbf61c6badcba756dd3a286de28d7 authored by Konrad Werys on 28 May 2019, 13:12:50 UTC
feat: optional SD maps calculation
feat: optional SD maps calculation
Tip revision: 9ee6be4
OxFactoryOfStartPointCalculators.h
/*!
* \file OxFactoryOfStartPointCalculators.h
* \author Konrad Werys
* \date 2018/08/18
*/
#ifndef Tomato_OXFACTORYOFStartPointCalculators_H
#define Tomato_OXFACTORYOFStartPointCalculators_H
#include "CmakeConfigForTomato.h"
#include "OxStartPointCalculatorDefault3Dims.h"
#ifdef USE_PRIVATE_NR2
#include "OxStartPointCalculatorShmolli.h"
#endif
namespace Ox {
template<typename TYPE>
struct TomatoOptions;
#ifdef USE_PRIVATE_NR2
static const char *startPointCalculatorsTypeNames[] = {
"Default",
"StartPointSHMOLLI"
};
enum startPointCalculatorsType_t {
Default = 0,
StartPointSHMOLLI = 1,
lastStartPointCalculatorType = StartPointSHMOLLI
};
#else
static const char *startPointCalculatorsTypeNames[] = {
"Default",
};
enum startPointCalculatorsType_t {
Default = 0,
lastStartPointCalculatorType = Default
};
#endif
template<typename TYPE>
class FactoryOfStartPointCalculators {
public:
static StartPointCalculator<TYPE>* newByFactory(TomatoOptions<TYPE> *opts){
switch (opts->start_point_calc_method){
case Default: {
return new StartPointCalculatorDefault3Dims<TYPE>();
}
#ifdef USE_PRIVATE_NR2
case StartPointSHMOLLI: {
return new StartPointCalculatorShmolli<TYPE>();
}
#endif
default:
return 0;
}
}
};
} // namespace Ox
#endif //Tomato_OXFACTORYOFStartPointCalculators_H