From 163c479bd34371edc7cf76674e887eb63fca1c27 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Thu, 2 Jul 2015 10:41:57 -0700 Subject: [PATCH] bug fixes for polyline --- libraries/entities/src/EntityItemProperties.cpp | 1 + libraries/entities/src/PolyLineEntityItem.cpp | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 538175cba2..c21fe0b9d5 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -823,6 +823,7 @@ bool EntityItemProperties::encodeEntityEditPacket(PacketType command, EntityItem APPEND_ENTITY_PROPERTY(PROP_LINE_WIDTH, properties.getLineWidth()); APPEND_ENTITY_PROPERTY(PROP_LINE_POINTS, properties.getLinePoints()); APPEND_ENTITY_PROPERTY(PROP_NORMALS, properties.getNormals()); + APPEND_ENTITY_PROPERTY(PROP_STROKE_WIDTHS, properties.getStrokeWidths()); } APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, properties.getMarketplaceID()); diff --git a/libraries/entities/src/PolyLineEntityItem.cpp b/libraries/entities/src/PolyLineEntityItem.cpp index a99be1a757..f25c40012c 100644 --- a/libraries/entities/src/PolyLineEntityItem.cpp +++ b/libraries/entities/src/PolyLineEntityItem.cpp @@ -116,10 +116,16 @@ bool PolyLineEntityItem::setStrokeWidths(const QVector& strokeWidths ) { } bool PolyLineEntityItem::setNormals(const QVector& normals) { + + _normals = normals; + if( _normals.size() != _points.size()) { + qDebug() << "RETURN FALSE"; + return false; + } + if (_points.size () < 2 || _strokeWidths.size() < 2) { return false; } - _normals = normals; _vertices.clear(); //Go through and create vertices for triangle strip based on normalsa if (_normals.size() != _points.size()) { @@ -132,11 +138,9 @@ bool PolyLineEntityItem::setNormals(const QVector& normals) { tangent = _points.at(i+1) - point; glm::vec3 normal = normals.at(i); - binormal = glm::normalize(glm::cross(tangent, normal)) * _lineWidth; + binormal = glm::normalize(glm::cross(tangent, normal)) * width; - if(binormal.x != binormal.x) { - - } + assert(binormal.x == binormal.x); v1 = point + binormal; v2 = point - binormal; _vertices << v1 << v2; @@ -213,6 +217,7 @@ EntityPropertyFlags PolyLineEntityItem::getEntityProperties(EncodeBitstreamParam requestedProperties += PROP_LINE_WIDTH; requestedProperties += PROP_LINE_POINTS; requestedProperties += PROP_NORMALS; + requestedProperties += PROP_STROKE_WIDTHS; return requestedProperties; }