From f444b70fdc6d018c2e634eaa90e06a6e9d80c123 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Wed, 15 Jun 2016 18:15:22 -0700 Subject: [PATCH] fix collision shape for scaled models --- .../src/RenderableModelEntityItem.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index 8f0c9f0a02..c01ad8b92a 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -713,7 +713,7 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& info) { ShapeInfo::TriangleIndices& triangleIndices = info.getTriangleIndices(); auto& meshes = _model->getGeometry()->getGeometry()->getMeshes(); - glm::vec3 modelOffset = _model->getOffset(); + glm::vec3 scaledModelOffset = _model->getOffset() * _model->getScale(); for (auto& mesh : meshes) { const gpu::BufferView& vertices = mesh->getVertexBuffer(); const gpu::BufferView& indices = mesh->getIndexBuffer(); @@ -730,16 +730,16 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& info) { ++vertexItr; } - // scale points and shift by modelOffset + // scale and shift glm::vec3 extentsSize = extents.size(); - glm::vec3 scale = dimensions / extents.size(); + glm::vec3 scaleToFit = dimensions / extents.size(); for (int i = 0; i < 3; ++i) { if (extentsSize[i] < 1.0e-6f) { - scale[i] = 1.0f; + scaleToFit[i] = 1.0f; } } for (int i = 0; i < points.size(); ++i) { - points[i] = (points[i] * scale) + modelOffset; + points[i] = (points[i] * scaleToFit) + scaledModelOffset; } // copy triangleIndices