C++ (Qt)value<coord> pos; // общие ключи t (время) на 3 компоненты...value<float> x, y, z; // свои ключи у каждой компоненты
C++ (Qt) switch(interpolationType) { case QMetaType::Int: return castToInterpolator(_q_interpolateVariant<int>); case QMetaType::UInt: return castToInterpolator(_q_interpolateVariant<uint>); case QMetaType::Double: return castToInterpolator(_q_interpolateVariant<double>); case QMetaType::Float: return castToInterpolator(_q_interpolateVariant<float>); case QMetaType::QLine: return castToInterpolator(_q_interpolateVariant<QLine>); case QMetaType::QLineF: return castToInterpolator(_q_interpolateVariant<QLineF>); case QMetaType::QPoint: return castToInterpolator(_q_interpolateVariant<QPoint>); case QMetaType::QPointF: return castToInterpolator(_q_interpolateVariant<QPointF>); case QMetaType::QSize: return castToInterpolator(_q_interpolateVariant<QSize>); case QMetaType::QSizeF: return castToInterpolator(_q_interpolateVariant<QSizeF>); case QMetaType::QRect: return castToInterpolator(_q_interpolateVariant<QRect>); case QMetaType::QRectF: return castToInterpolator(_q_interpolateVariant<QRectF>); default: return 0; //this type is not handled }
C++ (Qt)struct CData { enum Type { type_Value, type_Coord, type_Color }; Type m_type; union { double m_value; double m_coord[3]; float m_color[4]; };};