From 6f6343420c2d12ead6828af4b68643a0acf9bae7 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 28 Mar 2017 10:56:33 -0700 Subject: [PATCH] don't crash if entity dimensions somehow include a zero --- .../entities-renderer/src/RenderablePolyVoxEntityItem.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp index 5127739357..419f32f897 100644 --- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp @@ -404,6 +404,9 @@ bool RenderablePolyVoxEntityItem::setSphere(glm::vec3 centerWorldCoords, float r float smallestDimensionSize = voxelSize.x; smallestDimensionSize = glm::min(smallestDimensionSize, voxelSize.y); smallestDimensionSize = glm::min(smallestDimensionSize, voxelSize.z); + if (smallestDimensionSize <= 0.0f) { + return false; + } glm::vec3 maxRadiusInVoxelCoords = glm::vec3(radiusWorldCoords / smallestDimensionSize); glm::vec3 centerInVoxelCoords = wtvMatrix * glm::vec4(centerWorldCoords, 1.0f); @@ -1310,6 +1313,7 @@ void RenderablePolyVoxEntityItem::recomputeMesh() { mesh->setVertexBuffer(vertexBufferView); + // TODO -- use 3-byte normals rather than 3-float normals mesh->addAttribute(gpu::Stream::NORMAL, gpu::BufferView(vertexBufferPtr, sizeof(float) * 3, // polyvox mesh is packed: position, normal, material