C++ (Qt)QVariant Interpolate( const MyData & c1, const MyData & c2. double t );
C++ (Qt)QVariant Interpolate( const Variant & c1, const Variant & c2, double t );
class LinearInterpolator : public AbstractInterpolator{ LinearInterpolator(QVector4D start, ... /*тут */) QVector4D interpolate(double time) override { // тут считаем кривую в 4d в зависимости от опорных параметров, прееданных в конструктор }}class ColorConverter : public AbstractConverter{ ColorConverter(AbstractInterpolator *interpolator) {...} Variant interpolate(double time) override { auto v = _interpolator()->interpolate(double); return Color(v.x(), v.y(), v.z()); }}
C++ (Qt)class LinearInterpolator : public AbstractInterpolator{ LinearInterpolator(QVector4D start, ... /*тут */) QVector4D interpolate(double time) override...