summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJere Tuliniemi <jere.tuliniemi@qt.io>2019-08-09 09:05:20 +0300
committerJere Tuliniemi <jere.tuliniemi@qt.io>2019-08-09 13:16:39 +0300
commitbb6fff1b707c15853f137b5a7b8797fa9415d33f (patch)
tree853537d752e460d6e8f683867b2f79141995397c
parent67ec73aaa7ea8ce053c2ecb1b183b67d645966da (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.cpp2
-rw-r--r--src/dm/systems/Qt3DSDMMetaDataTypes.h2
-rw-r--r--src/dm/systems/Qt3DSDMValue.cpp15
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");