History

do Model::getMeshes on the correct thread. added ModelScriptingInterface::getVertexCount and ModelScriptingInterface::getVertex

Seth Alves committed 9 years ago

Commit 72e5fec1 parent 8a0b4395 files · +45 −5Browse files

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

Unified · Split

libraries/script-engine/src/ModelScriptingInterface.cpp+35−0
@@ -138,6 +138,41 @@ QScriptValue ModelScriptingInterface::transformMesh(glm::mat4 transform, MeshPro · 137 unmodified lines
138138 return meshToScriptValue(_modelScriptEngine, resultProxy);
139139 }
140140
141+QScriptValue ModelScriptingInterface::getVertexCount(MeshProxy* meshProxy) {
142+ if (!meshProxy) {
143+ return QScriptValue(false);
144+ }
145+ MeshPointer mesh = meshProxy->getMeshPointer();
146+ if (!mesh) {
147+ return QScriptValue(false);
148+ }
149+
150+ gpu::BufferView::Index numVertices = (gpu::BufferView::Index)mesh->getNumVertices();
151+
152+ return numVertices;
153+}
154+
155+QScriptValue ModelScriptingInterface::getVertex(MeshProxy* meshProxy, int vertexIndex) {
156+ if (!meshProxy) {
157+ return QScriptValue(false);
158+ }
159+ MeshPointer mesh = meshProxy->getMeshPointer();
160+ if (!mesh) {
161+ return QScriptValue(false);
162+ }
163+
164+ const gpu::BufferView& vertexBufferView = mesh->getVertexBuffer();
165+ gpu::BufferView::Index numVertices = (gpu::BufferView::Index)mesh->getNumVertices();
166+
167+ if (vertexIndex < 0 || vertexIndex >= numVertices) {
168+ return QScriptValue(false);
169+ }
170+
171+ glm::vec3 pos = vertexBufferView.get<glm::vec3>(vertexIndex);
172+ return vec3toScriptValue(_modelScriptEngine, pos);
173+}
174+
175+
141176 QScriptValue ModelScriptingInterface::newMesh(const QVector<glm::vec3>& vertices,
142177 const QVector<glm::vec3>& normals,
143178 const QVector<MeshFace>& faces) {