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
16 16
17#include <QtCore/QVariant>17#include <QtCore/QVariant>
18#include <QtGui/QColor>18#include <QtGui/QColor>
19#include <QtGui/QVector2D>
20#include <QtGui/QVector3D>
19#include <QtCore/QRect>21#include <QtCore/QRect>
20#include <QtCore/QUrl>22#include <QtCore/QUrl>
21#include <QtCore/QUuid>23#include <QtCore/QUuid>
@@ -52,6 +54,9 @@ bool isListOfStrings(const ScriptValue& arg) { · 30 unmodified lines
52}54}
53 55
54void registerMetaTypes(ScriptEngine* engine) {56void registerMetaTypes(ScriptEngine* engine) {
57 scriptRegisterMetaType<QVector2D, qVector2DToScriptValue, qVector2DFromScriptValue>(engine);
58 scriptRegisterMetaType<QVector3D, qVector3DToScriptValue, qVector3DFromScriptValue>(engine);
59
55 scriptRegisterMetaType<glm::vec2, vec2ToScriptValue, vec2FromScriptValue>(engine);60 scriptRegisterMetaType<glm::vec2, vec2ToScriptValue, vec2FromScriptValue>(engine);
56 scriptRegisterMetaType<glm::vec3, vec3ToScriptValue, vec3FromScriptValue>(engine);61 scriptRegisterMetaType<glm::vec3, vec3ToScriptValue, vec3FromScriptValue>(engine);
57 scriptRegisterMetaType<glm::u8vec3, u8vec3ToScriptValue, u8vec3FromScriptValue>(engine);62 scriptRegisterMetaType<glm::u8vec3, u8vec3ToScriptValue, u8vec3FromScriptValue>(engine);
@@ -93,6 +98,39 @@ void registerMetaTypes(ScriptEngine* engine) { · 35 unmodified lines
93 scriptRegisterSequenceMetaType<QVector<QString>>(engine);98 scriptRegisterSequenceMetaType<QVector<QString>>(engine);
94}99}
95 100
101ScriptValue qVector2DToScriptValue(ScriptEngine* engine, const QVector2D& qVector2D) {
102 glm::vec2 vec2(qVector2D.x(), qVector2D.y());
103 return vec2ToScriptValue(engine, vec2);
104}
105
106bool 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
117ScriptValue qVector3DToScriptValue(ScriptEngine* engine, const QVector3D& qVector3D) {
118 glm::vec3 vec3(qVector3D.x(), qVector3D.y(), qVector3D.z());
119 return vec3ToScriptValue(engine, vec3);
120}
121
122bool 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
96ScriptValue vec2ToScriptValue(ScriptEngine* engine, const glm::vec2& vec2) {134ScriptValue vec2ToScriptValue(ScriptEngine* engine, const glm::vec2& vec2) {
97 auto prototype = engine->globalObject().property("__hifi_vec2__");135 auto prototype = engine->globalObject().property("__hifi_vec2__");
98 if (!prototype.property("defined").toBool()) {136 if (!prototype.property("defined").toBool()) {