diff options
author | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2019-08-09 09:05:20 +0300 |
---|---|---|
committer | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2019-08-09 13:16:39 +0300 |
commit | bb6fff1b707c15853f137b5a7b8797fa9415d33f (patch) | |
tree | 853537d752e460d6e8f683867b2f79141995397c | |
parent | 67ec73aaa7ea8ce053c2ecb1b183b67d645966da (diff) |
Add support for Float3 and Float4 property types
Float3 is an alternative naming for Vector, Rotation and Scale types
inline with the Float2 naming.
Float4 is an alternative to the Color type, but allows the editor to
show each channel as an input box.
Task-number: QT3DS-3824
Change-Id: I3f37712631015884d222743af32779b08c24fee8
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r-- | src/dm/systems/Qt3DSDMMetaData.cpp | 2 | ||||
-rw-r--r-- | src/dm/systems/Qt3DSDMMetaDataTypes.h | 2 | ||||
-rw-r--r-- | src/dm/systems/Qt3DSDMValue.cpp | 15 |
3 files changed, 13 insertions, 6 deletions
diff --git a/src/dm/systems/Qt3DSDMMetaData.cpp b/src/dm/systems/Qt3DSDMMetaData.cpp index 996d18c..e74fb30 100644 --- a/src/dm/systems/Qt3DSDMMetaData.cpp +++ b/src/dm/systems/Qt3DSDMMetaData.cpp @@ -197,6 +197,8 @@ bool WStrOps<HandlerArgumentType::Value>::StrTo(const wchar_t *buffer, HandlerAr HANDLE_QT3DSDM_COMPLETE_TYPE(Float, None, DataModelDataType::Float) \ HANDLE_QT3DSDM_COMPLETE_TYPE(Long, None, DataModelDataType::Long) \ HANDLE_QT3DSDM_COMPLETE_TYPE(Float2, None, DataModelDataType::Float2) \ + HANDLE_QT3DSDM_COMPLETE_TYPE(Float3, None, DataModelDataType::Float3) \ + HANDLE_QT3DSDM_COMPLETE_TYPE(Float4, None, DataModelDataType::Float4) \ HANDLE_QT3DSDM_COMPLETE_TYPE(Vector, None, DataModelDataType::Float3) \ HANDLE_QT3DSDM_COMPLETE_TYPE(Scale, None, DataModelDataType::Float3) \ HANDLE_QT3DSDM_COMPLETE_TYPE(Rotation, Rotation, DataModelDataType::Float3) \ diff --git a/src/dm/systems/Qt3DSDMMetaDataTypes.h b/src/dm/systems/Qt3DSDMMetaDataTypes.h index 5532e0a..1c4fe3b 100644 --- a/src/dm/systems/Qt3DSDMMetaDataTypes.h +++ b/src/dm/systems/Qt3DSDMMetaDataTypes.h @@ -70,6 +70,8 @@ struct CompleteMetaDataType Float, Long, Float2, + Float3, + Float4, Vector, Scale, Rotation, diff --git a/src/dm/systems/Qt3DSDMValue.cpp b/src/dm/systems/Qt3DSDMValue.cpp index 94c5a59..32a389c 100644 --- a/src/dm/systems/Qt3DSDMValue.cpp +++ b/src/dm/systems/Qt3DSDMValue.cpp @@ -29,9 +29,10 @@ #include "Qt3DSDMPrefix.h" #include "Qt3DSDMValue.h" -#include <QColor> -#include <QDebug> -#include <QVariant> +#include <QtGui/qcolor.h> +#include <QtCore/qdebug.h> +#include <QtCore/qvariant.h> +#include <QtGui/qvector4d.h> using namespace qt3dsdm; @@ -74,19 +75,21 @@ SValue::SValue(const QVariant &inData) *this = inData.toFloat(); break; } - case QVariant::Vector2D: { const auto v = inData.value<QVector2D>(); *this = qt3dsdm::SFloat2(v.x(), v.y()); break; } - case QVariant::Vector3D: { const auto v = inData.value<QVector3D>(); *this = qt3dsdm::SFloat3(v.x(), v.y(), v.z()); break; } - + case QVariant::Vector4D: { + const auto v = inData.value<QVector4D>(); + *this = qt3dsdm::SFloat4(v.x(), v.y(), v.z(), v.w()); + break; + } default: qDebug() << "Add a handler for QVariant::type" << inData.type(); throw std::runtime_error("Cannot transform this QVariant into SValue"); |