#ifndef IOPTIMIZABLE_H
#define IOPTIMIZABLE_H

#include <vector>
#include "IUnique.h"

namespace mdd {
	class IOptimizable : public IUnique
	{
	public:
		virtual const std::vector<double>& getValue() = 0;
		virtual std::vector<double>& setValue() = 0;
		virtual state setValue(const std::vector<double>& val) = 0;
		virtual bool isOptimizable() = 0;
		virtual void setOptimizability(bool state) = 0;
		virtual ~IOptimizable() = default;
	};
}

#endif // !IOPTIMIZABLE_H
