From 385c9be75f0bf23a8da9ed0887b4a49046be81db Mon Sep 17 00:00:00 2001 From: Eric Levin Date: Wed, 27 May 2015 15:35:06 -0700 Subject: [PATCH] using vec of points --- .../src/RenderableLineEntityItem.cpp | 12 ++---------- libraries/entities/src/LineEntityItem.cpp | 8 +++++++- libraries/entities/src/LineEntityItem.h | 5 +++++ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableLineEntityItem.cpp b/libraries/entities-renderer/src/RenderableLineEntityItem.cpp index 48c88f3894..6fa71712c4 100644 --- a/libraries/entities-renderer/src/RenderableLineEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableLineEntityItem.cpp @@ -41,16 +41,8 @@ void RenderableLineEntityItem::render(RenderArgs* args) { glTranslatef(position.x, position.y, position.z); glm::vec3 axis = glm::axis(rotation); glRotatef(glm::degrees(glm::angle(rotation)), axis.x, axis.y, axis.z); - - bool geometryChanged = true; - if(geometryChanged){ - QVector points; - glm::vec3 p1 = {0.0f, 0.0f, 0.0f}; - glm::vec3 p2 = dimensions; - points << p1; - points << p2; - geometryCache->updateVertices(_lineVerticesID, points, lineColor); - } + geometryCache->updateVertices(_lineVerticesID, getPoints(), lineColor); + geometryCache->renderVertices(gpu::LINES, _lineVerticesID); glPopMatrix(); RenderableDebugableEntityItem::render(this, args); diff --git a/libraries/entities/src/LineEntityItem.cpp b/libraries/entities/src/LineEntityItem.cpp index 0c6ee0ba3a..34fffba8fb 100644 --- a/libraries/entities/src/LineEntityItem.cpp +++ b/libraries/entities/src/LineEntityItem.cpp @@ -22,6 +22,7 @@ const float LineEntityItem::DEFAULT_LINE_WIDTH = 2.0f; + EntityItem* LineEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) { EntityItem* result = new LineEntityItem(entityID, properties); return result; @@ -29,11 +30,16 @@ EntityItem* LineEntityItem::factory(const EntityItemID& entityID, const EntityIt LineEntityItem::LineEntityItem(const EntityItemID& entityItemID, const EntityItemProperties& properties) : EntityItem(entityItemID) , - _lineWidth(DEFAULT_LINE_WIDTH) + _lineWidth(DEFAULT_LINE_WIDTH), + _points(QVector(100)) { _type = EntityTypes::Line; _created = properties.getCreated(); setProperties(properties); + glm::vec3 p1 = {0.0f, 0.0f, 0.0f}; + glm::vec3 p2 = {1.0f, 1.0f, 0.0f}; + _points << p1; + _points << p2; } EntityItemProperties LineEntityItem::getProperties() const { diff --git a/libraries/entities/src/LineEntityItem.h b/libraries/entities/src/LineEntityItem.h index cb21b4b76c..a42c0397c2 100644 --- a/libraries/entities/src/LineEntityItem.h +++ b/libraries/entities/src/LineEntityItem.h @@ -60,6 +60,10 @@ class LineEntityItem : public EntityItem { return _lineWidth; } + QVector getPoints() const{ + return _points; + } + virtual ShapeType getShapeType() const { return SHAPE_TYPE_LINE; } // never have a ray intersection pick a LineEntityItem. @@ -74,6 +78,7 @@ class LineEntityItem : public EntityItem { protected: rgbColor _color; float _lineWidth; + QVector _points; }; #endif // hifi_LineEntityItem_h