/*! * \file OxStartPointCalculatorDefault3Dims.h * \author Konrad Werys * \date 2018/08/10 */ #ifndef Tomato_OXSTARTPOINTCALCULATORDefault3Dims_H #define Tomato_OXSTARTPOINTCALCULATORDefault3Dims_H #include "OxStartPointCalculator.h" namespace Ox { /** * \class StartPointCalculatorDefault3Dims * \brief * \details * @tparam MeasureType */ template< typename MeasureType > class StartPointCalculatorDefault3Dims : public StartPointCalculator{ public: /** * the most important function of this class * @return success/failure */ virtual int calculateStartPoint(){ setStartPointToDefault(); return 0; // EXIT_SUCCESS }; int setStartPointToDefault(){ this->getCalculatedStartPoint()[0] = _DefaultStartPoint[0]; this->getCalculatedStartPoint()[1] = _DefaultStartPoint[1]; this->getCalculatedStartPoint()[2] = _DefaultStartPoint[2]; return 0; // EXIT_SUCCESS } /** * \brief constructor */ StartPointCalculatorDefault3Dims() : StartPointCalculator(){ this->_nDims = 3; _DefaultStartPoint[0] = 100; _DefaultStartPoint[1] = 200; _DefaultStartPoint[2] = 1000; } /** * \brief copy constructor */ StartPointCalculatorDefault3Dims(const StartPointCalculatorDefault3Dims &old){ this->setAllPointersToNull(); _DefaultStartPoint[0] = old._DefaultStartPoint[0]; _DefaultStartPoint[1] = old._DefaultStartPoint[1]; _DefaultStartPoint[2] = old._DefaultStartPoint[2]; this->_nSamples = old._nSamples; this->_nDims = old._nDims; }; /** * cloning * @return */ virtual StartPointCalculator *newByCloning() { return new StartPointCalculatorDefault3Dims(*this); } /** * \brief do not forget about the virtual destructor, see * https://stackoverflow.com/questions/461203/when-to-use-virtual-destructors */ virtual ~StartPointCalculatorDefault3Dims(){}; protected: MeasureType _DefaultStartPoint[3]; }; } //namespace Ox #endif //Tomato_OXStartPointCalculatorDefault3Dims_H