diff options
Diffstat (limited to 'src/quick3d/quick3d')
-rw-r--r-- | src/quick3d/quick3d/qt3dquick_global.cpp | 5 | ||||
-rw-r--r-- | src/quick3d/quick3d/qt3dquickvaluetypes.cpp | 74 | ||||
-rw-r--r-- | src/quick3d/quick3d/qt3dquickvaluetypes_p.h | 18 |
3 files changed, 95 insertions, 2 deletions
diff --git a/src/quick3d/quick3d/qt3dquick_global.cpp b/src/quick3d/quick3d/qt3dquick_global.cpp index aa2a94860..8c88feef1 100644 --- a/src/quick3d/quick3d/qt3dquick_global.cpp +++ b/src/quick3d/quick3d/qt3dquick_global.cpp @@ -98,6 +98,11 @@ public: return QVariant(QColor::fromHslF(h, s, l, a)); } + QVariant fromHsvF(double h, double s, double v, double a) override + { + return QVariant(QColor::fromHsvF(h, s, v, a)); + } + QVariant lighter(const QVariant &var, qreal factor) { QColor color = var.value<QColor>(); diff --git a/src/quick3d/quick3d/qt3dquickvaluetypes.cpp b/src/quick3d/quick3d/qt3dquickvaluetypes.cpp index 1cdc3844b..7cc1a4a0c 100644 --- a/src/quick3d/quick3d/qt3dquickvaluetypes.cpp +++ b/src/quick3d/quick3d/qt3dquickvaluetypes.cpp @@ -54,8 +54,7 @@ namespace Quick3DValueTypes { QString Quick3DColorValueType::toString() const { - // to maintain behaviour with QtQuick 1.0, we just output normal toString() value. - return QVariant(v).toString(); + return v.name(v.alpha() != 255 ? QColor::HexArgb : QColor::HexRgb); } qreal Quick3DColorValueType::r() const @@ -78,6 +77,36 @@ qreal Quick3DColorValueType::a() const return v.alphaF(); } +qreal Quick3DColorValueType::hsvHue() const +{ + return v.hsvHueF(); +} + +qreal Quick3DColorValueType::hsvSaturation() const +{ + return v.hsvSaturationF(); +} + +qreal Quick3DColorValueType::hsvValue() const +{ + return v.valueF(); +} + +qreal Quick3DColorValueType::hslHue() const +{ + return v.hslHueF(); +} + +qreal Quick3DColorValueType::hslSaturation() const +{ + return v.hslSaturationF(); +} + +qreal Quick3DColorValueType::hslLightness() const +{ + return v.lightnessF(); +} + void Quick3DColorValueType::setR(qreal r) { v.setRedF(r); @@ -98,6 +127,47 @@ void Quick3DColorValueType::setA(qreal a) v.setAlphaF(a); } +void Quick3DColorValueType::setHsvHue(qreal hsvHue) +{ + qreal hue, saturation, value, alpha; + v.getHsvF(&hue, &saturation, &value, &alpha); + v.setHsvF(hsvHue, saturation, value, alpha); +} + +void Quick3DColorValueType::setHsvSaturation(qreal hsvSaturation) +{ + qreal hue, saturation, value, alpha; + v.getHsvF(&hue, &saturation, &value, &alpha); + v.setHsvF(hue, hsvSaturation, value, alpha); +} + +void Quick3DColorValueType::setHsvValue(qreal hsvValue) +{ + qreal hue, saturation, value, alpha; + v.getHsvF(&hue, &saturation, &value, &alpha); + v.setHsvF(hue, saturation, hsvValue, alpha); +} + +void Quick3DColorValueType::setHslHue(qreal hslHue) +{ + qreal hue, saturation, lightness, alpha; + v.getHslF(&hue, &saturation, &lightness, &alpha); + v.setHslF(hslHue, saturation, lightness, alpha); +} + +void Quick3DColorValueType::setHslSaturation(qreal hslSaturation) +{ + qreal hue, saturation, lightness, alpha; + v.getHslF(&hue, &saturation, &lightness, &alpha); + v.setHslF(hue, hslSaturation, lightness, alpha); +} + +void Quick3DColorValueType::setHslLightness(qreal hslLightness) +{ + qreal hue, saturation, lightness, alpha; + v.getHslF(&hue, &saturation, &lightness, &alpha); + v.setHslF(hue, saturation, hslLightness, alpha); +} QString Quick3DVector2DValueType::toString() const { diff --git a/src/quick3d/quick3d/qt3dquickvaluetypes_p.h b/src/quick3d/quick3d/qt3dquickvaluetypes_p.h index 46500b935..d1b4a4d5d 100644 --- a/src/quick3d/quick3d/qt3dquickvaluetypes_p.h +++ b/src/quick3d/quick3d/qt3dquickvaluetypes_p.h @@ -79,6 +79,12 @@ class QT3DQUICKSHARED_PRIVATE_EXPORT Quick3DColorValueType Q_PROPERTY(qreal g READ g WRITE setG FINAL) Q_PROPERTY(qreal b READ b WRITE setB FINAL) Q_PROPERTY(qreal a READ a WRITE setA FINAL) + Q_PROPERTY(qreal hsvHue READ hsvHue WRITE setHsvHue FINAL) + Q_PROPERTY(qreal hsvSaturation READ hsvSaturation WRITE setHsvSaturation FINAL) + Q_PROPERTY(qreal hsvValue READ hsvValue WRITE setHsvValue FINAL) + Q_PROPERTY(qreal hslHue READ hslHue WRITE setHslHue FINAL) + Q_PROPERTY(qreal hslSaturation READ hslSaturation WRITE setHslSaturation FINAL) + Q_PROPERTY(qreal hslLightness READ hslLightness WRITE setHslLightness FINAL) Q_GADGET public: Q_INVOKABLE QString toString() const; @@ -87,10 +93,22 @@ public: qreal g() const; qreal b() const; qreal a() const; + qreal hsvHue() const; + qreal hsvSaturation() const; + qreal hsvValue() const; + qreal hslHue() const; + qreal hslSaturation() const; + qreal hslLightness() const; void setR(qreal); void setG(qreal); void setB(qreal); void setA(qreal); + void setHsvHue(qreal); + void setHsvSaturation(qreal); + void setHsvValue(qreal); + void setHslHue(qreal); + void setHslSaturation(qreal); + void setHslLightness(qreal); }; class QT3DQUICKSHARED_PRIVATE_EXPORT Quick3DVector2DValueType |