From 6497ac6c8270a7528cd7efa536e4195d1488089b Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Wed, 10 Jun 2015 14:24:00 -0700 Subject: [PATCH] renderBoundingBox() for sim-ownership debug --- .../src/RenderableBoxEntityItem.cpp | 40 ++----------------- .../src/RenderableBoxEntityItem.h | 1 - .../src/RenderableDebugableEntityItem.cpp | 13 +++--- .../src/RenderableSphereEntityItem.cpp | 6 ++- 4 files changed, 15 insertions(+), 45 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableBoxEntityItem.cpp b/libraries/entities-renderer/src/RenderableBoxEntityItem.cpp index 2d72897faf..6ddf44b82d 100644 --- a/libraries/entities-renderer/src/RenderableBoxEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableBoxEntityItem.cpp @@ -9,6 +9,8 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // +#include "RenderableBoxEntityItem.h" + #include #include @@ -18,7 +20,7 @@ #include #include -#include "RenderableBoxEntityItem.h" +#include "RenderableDebugableEntityItem.h" EntityItemPointer RenderableBoxEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) { return EntityItemPointer(new RenderableBoxEntityItem(entityID, properties)); @@ -34,39 +36,5 @@ void RenderableBoxEntityItem::render(RenderArgs* args) { batch.setModelTransform(getTransformToCenter()); DependencyManager::get()->renderSolidCube(batch, 1.0f, cubeColor); - // TODO: use RenderableDebugableEntityItem::render (instead of the hack below) - // when we fix the scaling bug that breaks RenderableDebugableEntityItem for boxes. - if (args->_debugFlags & RenderArgs::RENDER_DEBUG_SIMULATION_OWNERSHIP) { - Q_ASSERT(args->_batch); - gpu::Batch& batch = *args->_batch; - Transform transform = getTransformToCenter(); - //transform.postScale(entity->getDimensions()); // HACK: this line breaks for BoxEntityItem - batch.setModelTransform(transform); - - auto nodeList = DependencyManager::get(); - const QUuid& myNodeID = nodeList->getSessionUUID(); - bool highlightSimulationOwnership = (getSimulatorID() == myNodeID); - if (highlightSimulationOwnership) { - glm::vec4 greenColor(0.0f, 1.0f, 0.2f, 1.0f); - DependencyManager::get()->renderWireCube(batch, 1.08f, greenColor); - } - - quint64 now = usecTimestampNow(); - if (now - getLastEditedFromRemote() < 0.1f * USECS_PER_SECOND) { - glm::vec4 redColor(1.0f, 0.0f, 0.0f, 1.0f); - DependencyManager::get()->renderWireCube(batch, 1.16f, redColor); - } - - if (now - getLastBroadcast() < 0.2f * USECS_PER_SECOND) { - glm::vec4 yellowColor(1.0f, 1.0f, 0.2f, 1.0f); - DependencyManager::get()->renderWireCube(batch, 1.24f, yellowColor); - } - - ObjectMotionState* motionState = static_cast(getPhysicsInfo()); - if (motionState && motionState->isActive()) { - glm::vec4 blueColor(0.0f, 0.0f, 1.0f, 1.0f); - DependencyManager::get()->renderWireCube(batch, 1.32f, blueColor); - } - } - //RenderableDebugableEntityItem::render(this, args); // TODO: use this instead of the hack above + RenderableDebugableEntityItem::render(this, args); }; diff --git a/libraries/entities-renderer/src/RenderableBoxEntityItem.h b/libraries/entities-renderer/src/RenderableBoxEntityItem.h index 06a62706b9..b14da9ee22 100644 --- a/libraries/entities-renderer/src/RenderableBoxEntityItem.h +++ b/libraries/entities-renderer/src/RenderableBoxEntityItem.h @@ -13,7 +13,6 @@ #define hifi_RenderableBoxEntityItem_h #include -#include "RenderableDebugableEntityItem.h" #include "RenderableEntityItem.h" class RenderableBoxEntityItem : public BoxEntityItem { diff --git a/libraries/entities-renderer/src/RenderableDebugableEntityItem.cpp b/libraries/entities-renderer/src/RenderableDebugableEntityItem.cpp index 53213eae51..fecc574af2 100644 --- a/libraries/entities-renderer/src/RenderableDebugableEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableDebugableEntityItem.cpp @@ -10,6 +10,7 @@ // +#include "RenderableDebugableEntityItem.h" #include @@ -18,15 +19,13 @@ #include #include -#include "RenderableDebugableEntityItem.h" - void RenderableDebugableEntityItem::renderBoundingBox(EntityItem* entity, RenderArgs* args, float puffedOut, glm::vec4& color) { Q_ASSERT(args->_batch); gpu::Batch& batch = *args->_batch; Transform transform = entity->getTransformToCenter(); - transform.postScale(entity->getDimensions()); + //transform.postScale(entity->getDimensions()); batch.setModelTransform(transform); DependencyManager::get()->renderWireCube(batch, 1.0f + puffedOut, color); } @@ -44,24 +43,24 @@ void RenderableDebugableEntityItem::render(EntityItem* entity, RenderArgs* args) bool highlightSimulationOwnership = (entity->getSimulatorID() == myNodeID); if (highlightSimulationOwnership) { glm::vec4 greenColor(0.0f, 1.0f, 0.2f, 1.0f); - DependencyManager::get()->renderWireCube(batch, 1.08f, greenColor); + renderBoundingBox(entity, args, 0.08f, greenColor); } quint64 now = usecTimestampNow(); if (now - entity->getLastEditedFromRemote() < 0.1f * USECS_PER_SECOND) { glm::vec4 redColor(1.0f, 0.0f, 0.0f, 1.0f); - DependencyManager::get()->renderWireCube(batch, 1.16f, redColor); + renderBoundingBox(entity, args, 0.16f, redColor); } if (now - entity->getLastBroadcast() < 0.2f * USECS_PER_SECOND) { glm::vec4 yellowColor(1.0f, 1.0f, 0.2f, 1.0f); - DependencyManager::get()->renderWireCube(batch, 1.24f, yellowColor); + renderBoundingBox(entity, args, 0.24f, yellowColor); } ObjectMotionState* motionState = static_cast(entity->getPhysicsInfo()); if (motionState && motionState->isActive()) { glm::vec4 blueColor(0.0f, 0.0f, 1.0f, 1.0f); - DependencyManager::get()->renderWireCube(batch, 1.32f, blueColor); + renderBoundingBox(entity, args, 0.32f, blueColor); } } } diff --git a/libraries/entities-renderer/src/RenderableSphereEntityItem.cpp b/libraries/entities-renderer/src/RenderableSphereEntityItem.cpp index d5cb7d11b8..b0aaebb2c8 100644 --- a/libraries/entities-renderer/src/RenderableSphereEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableSphereEntityItem.cpp @@ -9,6 +9,8 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // +#include "RenderableSphereEntityItem.h" + #include #include @@ -18,7 +20,7 @@ #include #include -#include "RenderableSphereEntityItem.h" +#include "RenderableDebugableEntityItem.h" EntityItemPointer RenderableSphereEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) { return EntityItemPointer(new RenderableSphereEntityItem(entityID, properties)); @@ -39,4 +41,6 @@ void RenderableSphereEntityItem::render(RenderArgs* args) { gpu::Batch& batch = *args->_batch; batch.setModelTransform(getTransformToCenter()); DependencyManager::get()->renderSolidSphere(batch, 0.5f, SLICES, STACKS, sphereColor); + + RenderableDebugableEntityItem::render(this, args); };