Raw File
OxFactoryOfStartPointCalculators.h
/*!
 * \file OxFactoryOfStartPointCalculators.h
 * \author Konrad Werys
 * \date 2018/08/18
 */

#ifndef Tomato_OXFACTORYOFStartPointCalculators_H
#define Tomato_OXFACTORYOFStartPointCalculators_H

#include "CmakeConfigForTomato.h"
#include "tomatolib_export.h"

#include "OxStartPointCalculator.h"

namespace Ox {

    template<typename TYPE>
    struct TomatoOptions;

    static const char *startPointCalculatorsTypeNames[] = {
            "Basic",
            "StartPointSHMOLLI",
            "NoStartPointCalculators"
    };

    enum startPointCalculatorsType_t {
        Basic = 0,
        StartPointSHMOLLI = 1,
        NoStartPointCalculators = 2,
        lastStartPointCalculatorType = NoStartPointCalculators
    };

    static int startPointCalculatorsAvailability[] = {
            1, // Basic
            1, // StartPointSHMOLLI
            1  // NoStartPointCalculators
    };

    template<typename TYPE>
    class FactoryOfStartPointCalculators {
    public:

        static StartPointCalculator<TYPE>* newByFactory(TomatoOptions<TYPE> *opts);

        static void disp(int start_point_calc_method = -1);
    };

} // namespace Ox

#ifndef TOMATOLIB_COMPILED
#include "OxFactoryOfStartPointCalculators.hxx"
#endif // TOMATOLIB_COMPILED

#endif //Tomato_OXFACTORYOFStartPointCalculators_H
back to top