diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp index 01f30a4a06..d991d3193f 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp @@ -67,29 +67,28 @@ int generateColor() { } void RenderablePolyLineEntityItem::updateGeometry() { - if (_pointsChanged) { - int compactColor = generateColor(); - _numVertices = 0; - _verticesBuffer.reset(new gpu::Buffer()); - int vertexIndex = 0; - for (int i = 0; i < _normals.size(); i++) { - compactColor = generateColor(); - _verticesBuffer->append(sizeof(glm::vec3), (const gpu::Byte*)&_vertices.at(vertexIndex)); - vertexIndex++; - _verticesBuffer->append(sizeof(glm::vec3), (const gpu::Byte*)&_normals.at(i)); - _verticesBuffer->append(sizeof(int), (gpu::Byte*)&_color); - - _verticesBuffer->append(sizeof(glm::vec3), (const gpu::Byte*)&_vertices.at(vertexIndex)); - vertexIndex++; - _verticesBuffer->append(sizeof(glm::vec3), (const gpu::Byte*)&_normals.at(i)); - _verticesBuffer->append(sizeof(int), (gpu::Byte*)_color); - - _numVertices +=2; - } - _pointsChanged = false; + int compactColor = generateColor(); + _numVertices = 0; + _verticesBuffer.reset(new gpu::Buffer()); + int vertexIndex = 0; + for (int i = 0; i < _normals.size(); i++) { + compactColor = generateColor(); + _verticesBuffer->append(sizeof(glm::vec3), (const gpu::Byte*)&_vertices.at(vertexIndex)); + vertexIndex++; + _verticesBuffer->append(sizeof(glm::vec3), (const gpu::Byte*)&_normals.at(i)); + _verticesBuffer->append(sizeof(int), (gpu::Byte*)&_color); + + _verticesBuffer->append(sizeof(glm::vec3), (const gpu::Byte*)&_vertices.at(vertexIndex)); + vertexIndex++; + _verticesBuffer->append(sizeof(glm::vec3), (const gpu::Byte*)&_normals.at(i)); + _verticesBuffer->append(sizeof(int), (gpu::Byte*)_color); + + _numVertices +=2; } _pointsChanged = false; + _pointsChanged = false; + } void RenderablePolyLineEntityItem::render(RenderArgs* args) { diff --git a/libraries/entities/src/PolyLineEntityItem.cpp b/libraries/entities/src/PolyLineEntityItem.cpp index 66aa84b1a6..a99be1a757 100644 --- a/libraries/entities/src/PolyLineEntityItem.cpp +++ b/libraries/entities/src/PolyLineEntityItem.cpp @@ -129,15 +129,10 @@ bool PolyLineEntityItem::setNormals(const QVector& normals) { for (int i = 0; i < _points.size()-1; i++) { float width = _strokeWidths.at(i); point = _points.at(i); - //Get tangent tangent = _points.at(i+1) - point; glm::vec3 normal = normals.at(i); -// qDebug() << "next point" << _points.at(i+1) << "cur point" << point; binormal = glm::normalize(glm::cross(tangent, normal)) * _lineWidth; -// qDebug() << "glm cross" << glm::cross(tangent, normal); -// qDebug()<< "binormal" << binormal; -// qDebug() <<"dot " << glm::dot(tangent, normals.at(i)); if(binormal.x != binormal.x) { diff --git a/libraries/shared/src/RegisteredMetaTypes.cpp b/libraries/shared/src/RegisteredMetaTypes.cpp index 3674e09dae..f349c568bd 100644 --- a/libraries/shared/src/RegisteredMetaTypes.cpp +++ b/libraries/shared/src/RegisteredMetaTypes.cpp @@ -90,10 +90,16 @@ QScriptValue qVectorVec3ToScriptValue(QScriptEngine* engine, const QVector qVectorFloatFromScriptValue(const QScriptValue& array) { + if(!array.isArray()) { + return QVector(); + } QVector newVector; int length = array.property("length").toInteger(); + newVector.reserve(length); for (int i = 0; i < length; i++) { - newVector << array.property(i).toVariant().toFloat(); + if(array.property(i).isNumber()) { + newVector << array.property(i).toNumber(); + } } return newVector;