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
138 return meshToScriptValue(_modelScriptEngine, resultProxy);138 return meshToScriptValue(_modelScriptEngine, resultProxy);
139}139}
140 140
141QScriptValue 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
155QScriptValue 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
141QScriptValue ModelScriptingInterface::newMesh(const QVector<glm::vec3>& vertices,176QScriptValue ModelScriptingInterface::newMesh(const QVector<glm::vec3>& vertices,
142 const QVector<glm::vec3>& normals,177 const QVector<glm::vec3>& normals,
143 const QVector<MeshFace>& faces) {178 const QVector<MeshFace>& faces) {