History

Listing objects and their properties on API debugger now works

ksuprynowicz committed 3 years ago

Commit f65e72c1 parent 37cc62d7 files · +118 −8Browse files

Showing the changes to libraries/script-engine/src/ScriptValueUtils.cpp (1 of 7 files). Show all

Unified · Split

libraries/script-engine/src/ScriptValueUtils.cpp+38−0
@@ -16,6 +16,8 @@ · 15 unmodified lines
1616
1717 #include <QtCore/QVariant>
1818 #include <QtGui/QColor>
19+#include <QtGui/QVector2D>
20+#include <QtGui/QVector3D>
1921 #include <QtCore/QRect>
2022 #include <QtCore/QUrl>
2123 #include <QtCore/QUuid>
@@ -52,6 +54,9 @@ bool isListOfStrings(const ScriptValue& arg) { · 30 unmodified lines
5254 }
5355
5456 void registerMetaTypes(ScriptEngine* engine) {
57+ scriptRegisterMetaType<QVector2D, qVector2DToScriptValue, qVector2DFromScriptValue>(engine);
58+ scriptRegisterMetaType<QVector3D, qVector3DToScriptValue, qVector3DFromScriptValue>(engine);
59+
5560 scriptRegisterMetaType<glm::vec2, vec2ToScriptValue, vec2FromScriptValue>(engine);
5661 scriptRegisterMetaType<glm::vec3, vec3ToScriptValue, vec3FromScriptValue>(engine);
5762 scriptRegisterMetaType<glm::u8vec3, u8vec3ToScriptValue, u8vec3FromScriptValue>(engine);
@@ -93,6 +98,39 @@ void registerMetaTypes(ScriptEngine* engine) { · 35 unmodified lines
9398 scriptRegisterSequenceMetaType<QVector<QString>>(engine);
9499 }
95100
101+ScriptValue qVector2DToScriptValue(ScriptEngine* engine, const QVector2D& qVector2D) {
102+ glm::vec2 vec2(qVector2D.x(), qVector2D.y());
103+ return vec2ToScriptValue(engine, vec2);
104+}
105+
106+bool qVector2DFromScriptValue(const ScriptValue& object, QVector2D& qVector2D) {
107+ glm::vec2 vec2;
108+ if (vec2FromScriptValue(object, vec2)) {
109+ qVector2D.setX(vec2.x);
110+ qVector2D.setY(vec2.y);
111+ return true;
112+ } else {
113+ return false;
114+ }
115+}
116+
117+ScriptValue qVector3DToScriptValue(ScriptEngine* engine, const QVector3D& qVector3D) {
118+ glm::vec3 vec3(qVector3D.x(), qVector3D.y(), qVector3D.z());
119+ return vec3ToScriptValue(engine, vec3);
120+}
121+
122+bool qVector3DFromScriptValue(const ScriptValue& object, QVector3D& qVector3D) {
123+ glm::vec3 vec3;
124+ if (vec3FromScriptValue(object, vec3)) {
125+ qVector3D.setX(vec3.x);
126+ qVector3D.setY(vec3.y);
127+ qVector3D.setZ(vec3.z);
128+ return true;
129+ } else {
130+ return false;
131+ }
132+}
133+
96134 ScriptValue vec2ToScriptValue(ScriptEngine* engine, const glm::vec2& vec2) {
97135 auto prototype = engine->globalObject().property("__hifi_vec2__");
98136 if (!prototype.property("defined").toBool()) {