History

isolate calls to the QtScript libraries to an interface we control

Heather Anderson committed 5 years ago

Commit 1e018db1 parent 713b29e260 files · +6904 −5064Browse files

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

Unified · Split

libraries/script-engine/src/ModelScriptingInterface.cpp+24−24
@@ -10,20 +10,20 @@ · 9 unmodified lines
1010 //
1111
1212 #include "ModelScriptingInterface.h"
13−#include <QtScript/QScriptEngine>
14−#include <QtScript/QScriptValueIterator>
15−#include <QtScript/QScriptValue>
1613 #include <model-networking/SimpleMeshProxy.h>
1714 #include "ScriptEngine.h"
15+#include "ScriptEngineCast.h"
1816 #include "ScriptEngineLogging.h"
17+#include "ScriptManager.h"
18+#include "ScriptValueUtils.h"
1919 #include "OBJWriter.h"
2020
2121 ModelScriptingInterface::ModelScriptingInterface(QObject* parent) : QObject(parent) {
22− _modelScriptEngine = qobject_cast<QScriptEngine*>(parent);
22+ _modelScriptEngine = qobject_cast<ScriptManager*>(parent)->engine();
2323
24− qScriptRegisterSequenceMetaType<QList<MeshProxy*>>(_modelScriptEngine);
25− qScriptRegisterMetaType(_modelScriptEngine, meshFaceToScriptValue, meshFaceFromScriptValue);
26− qScriptRegisterMetaType(_modelScriptEngine, qVectorMeshFaceToScriptValue, qVectorMeshFaceFromScriptValue);
24+ scriptRegisterSequenceMetaType<QList<MeshProxy*>>(_modelScriptEngine.get());
25+ scriptRegisterMetaType(_modelScriptEngine.get(), meshFaceToScriptValue, meshFaceFromScriptValue);
26+ scriptRegisterMetaType(_modelScriptEngine.get(), qVectorMeshFaceToScriptValue, qVectorMeshFaceFromScriptValue);
2727 }
2828
2929 QString ModelScriptingInterface::meshToOBJ(MeshProxyList in) {
@@ -35,7 +35,7 @@ QString ModelScriptingInterface::meshToOBJ(MeshProxyList in) { · 5 unmodified lines
3535 return writeOBJToString(meshes);
3636 }
3737
38−QScriptValue ModelScriptingInterface::appendMeshes(MeshProxyList in) {
38+ScriptValuePointer ModelScriptingInterface::appendMeshes(MeshProxyList in) {
3939 // figure out the size of the resulting mesh
4040 size_t totalVertexCount { 0 };
4141 size_t totalColorCount { 0 };
@@ -140,16 +140,16 @@ QScriptValue ModelScriptingInterface::appendMeshes(MeshProxyList in) { · 98 unmodified lines
140140
141141
142142 MeshProxy* resultProxy = new SimpleMeshProxy(result);
143− return meshToScriptValue(_modelScriptEngine, resultProxy);
143+ return meshToScriptValue(_modelScriptEngine.get(), resultProxy);
144144 }
145145
146−QScriptValue ModelScriptingInterface::transformMesh(glm::mat4 transform, MeshProxy* meshProxy) {
146+ScriptValuePointer ModelScriptingInterface::transformMesh(glm::mat4 transform, MeshProxy* meshProxy) {
147147 if (!meshProxy) {
148− return QScriptValue(false);
148+ return ScriptValuePointer(false);
149149 }
150150 MeshPointer mesh = meshProxy->getMeshPointer();
151151 if (!mesh) {
152− return QScriptValue(false);
152+ return ScriptValuePointer(false);
153153 }
154154
155155 const auto inverseTransposeTransform = glm::inverse(glm::transpose(transform));
@@ -158,45 +158,45 @@ QScriptValue ModelScriptingInterface::transformMesh(glm::mat4 transform, MeshPro · 2 unmodified lines
158158 [&](glm::vec3 normal){ return glm::vec3(inverseTransposeTransform * glm::vec4(normal, 0.0f)); },
159159 [&](uint32_t index){ return index; });
160160 MeshProxy* resultProxy = new SimpleMeshProxy(result);
161− return meshToScriptValue(_modelScriptEngine, resultProxy);
161+ return meshToScriptValue(_modelScriptEngine.get(), resultProxy);
162162 }
163163
164−QScriptValue ModelScriptingInterface::getVertexCount(MeshProxy* meshProxy) {
164+ScriptValuePointer ModelScriptingInterface::getVertexCount(MeshProxy* meshProxy) {
165165 if (!meshProxy) {
166− return QScriptValue(false);
166+ return ScriptValuePointer(false);
167167 }
168168 MeshPointer mesh = meshProxy->getMeshPointer();
169169 if (!mesh) {
170− return QScriptValue(false);
170+ return ScriptValuePointer(false);
171171 }
172172
173173 gpu::BufferView::Index numVertices = (gpu::BufferView::Index)mesh->getNumVertices();
174174
175− return numVertices;
175+ return _modelScriptEngine->newValue(numVertices);
176176 }
177177
178−QScriptValue ModelScriptingInterface::getVertex(MeshProxy* meshProxy, int vertexIndex) {
178+ScriptValuePointer ModelScriptingInterface::getVertex(MeshProxy* meshProxy, int vertexIndex) {
179179 if (!meshProxy) {
180− return QScriptValue(false);
180+ return ScriptValuePointer(false);
181181 }
182182 MeshPointer mesh = meshProxy->getMeshPointer();
183183 if (!mesh) {
184− return QScriptValue(false);
184+ return ScriptValuePointer(false);
185185 }
186186
187187 const gpu::BufferView& vertexBufferView = mesh->getVertexBuffer();
188188 gpu::BufferView::Index numVertices = (gpu::BufferView::Index)mesh->getNumVertices();
189189
190190 if (vertexIndex < 0 || vertexIndex >= numVertices) {
191− return QScriptValue(false);
191+ return ScriptValuePointer(false);
192192 }
193193
194194 glm::vec3 pos = vertexBufferView.get<glm::vec3>(vertexIndex);
195− return vec3ToScriptValue(_modelScriptEngine, pos);
195+ return vec3ToScriptValue(_modelScriptEngine.get(), pos);
196196 }
197197
198198
199−QScriptValue ModelScriptingInterface::newMesh(const QVector<glm::vec3>& vertices,
199+ScriptValuePointer ModelScriptingInterface::newMesh(const QVector<glm::vec3>& vertices,
200200 const QVector<glm::vec3>& normals,
201201 const QVector<MeshFace>& faces) {
202202 graphics::MeshPointer mesh(std::make_shared<graphics::Mesh>());
@@ -247,5 +247,5 @@ QScriptValue ModelScriptingInterface::newMesh(const QVector<glm::vec3>& vertices · 44 unmodified lines
247247
248248
249249 MeshProxy* meshProxy = new SimpleMeshProxy(mesh);
250− return meshToScriptValue(_modelScriptEngine, meshProxy);
250+ return meshToScriptValue(_modelScriptEngine.get(), meshProxy);
251251 }