diff options
author | Mahmoud Badri <mahmoud.badri@qt.io> | 2019-05-13 13:48:04 +0300 |
---|---|---|
committer | Mahmoud Badri <mahmoud.badri@qt.io> | 2019-05-13 10:57:41 +0000 |
commit | eab038decfbab99d1f2bcf92c351076e496b3263 (patch) | |
tree | b329579a16c6562752677a25a626519708590bec | |
parent | 7da6bc8b295728957d548a6cfe3c78ce07bb0fb5 (diff) |
Add missing vec4 for datainput parsing
Task-number: QT3DS-3394
Change-Id: Ib99a65285b248e4efe623a8aba7d7b784b9fa611
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r-- | src/Runtime/Source/runtime/Qt3DSApplication.cpp | 2 | ||||
-rw-r--r-- | src/Runtime/Source/runtime/Qt3DSApplication.h | 1 | ||||
-rw-r--r-- | src/Runtime/Source/runtime/Qt3DSQmlEngine.cpp | 21 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/Runtime/Source/runtime/Qt3DSApplication.cpp b/src/Runtime/Source/runtime/Qt3DSApplication.cpp index 84bf83f7..830f4573 100644 --- a/src/Runtime/Source/runtime/Qt3DSApplication.cpp +++ b/src/Runtime/Source/runtime/Qt3DSApplication.cpp @@ -1197,6 +1197,8 @@ struct SApp : public IApplication diDef.type = DataInputTypeString; else if (AreEqual(type, "Float")) diDef.type = DataInputTypeFloat; + else if (AreEqual(type, "Vector4")) + diDef.type = DataInputTypeVector4; else if (AreEqual(type, "Vector3")) diDef.type = DataInputTypeVector3; else if (AreEqual(type, "Vector2")) diff --git a/src/Runtime/Source/runtime/Qt3DSApplication.h b/src/Runtime/Source/runtime/Qt3DSApplication.h index b74191f2..8bc967bf 100644 --- a/src/Runtime/Source/runtime/Qt3DSApplication.h +++ b/src/Runtime/Source/runtime/Qt3DSApplication.h @@ -98,6 +98,7 @@ enum DataInputType { DataInputTypeFloat, DataInputTypeEvaluator, DataInputTypeBoolean, + DataInputTypeVector4, DataInputTypeVector3, DataInputTypeVector2, DataInputTypeVariant diff --git a/src/Runtime/Source/runtime/Qt3DSQmlEngine.cpp b/src/Runtime/Source/runtime/Qt3DSQmlEngine.cpp index 502d7e81..e4aed96e 100644 --- a/src/Runtime/Source/runtime/Qt3DSQmlEngine.cpp +++ b/src/Runtime/Source/runtime/Qt3DSQmlEngine.cpp @@ -720,6 +720,27 @@ void CQmlEngineImpl::SetDataInputValue( reinterpret_cast<const char *>(&valueFloat)); break; } + case ATTRIBUTETYPE_FLOAT4: { + QVector4D valueVec; + if (diDef.type == qt3ds::runtime::DataInputTypeVector4) { + valueVec = value.value<QVector4D>(); + } else { + qWarning() << __FUNCTION__ << "Property type " + << ctrlElem.propertyType + << " not matching with Datainput " << name + << " data type " + << diDef.type; + break; + } + // Set the values of vector attribute components separately + for (int i = 0; i < 4; i++) { + const float val = valueVec[i]; + SetAttribute(ctrlElem.elementPath.constData(), + ctrlElem.attributeName[i].constData(), + reinterpret_cast<const char *>(&val)); + } + break; + } case ATTRIBUTETYPE_FLOAT3: { QVector3D valueVec; if (diDef.type == qt3ds::runtime::DataInputTypeVector3 |