From 4ae350da900819a784b1675e76564653da71e9be Mon Sep 17 00:00:00 2001 From: Areloch Date: Mon, 29 Jan 2018 15:20:34 -0600 Subject: [PATCH] Hides the display of the 'camera axis' gizmo in the shape editor, as well as fixing it so that when you select a animation-only shapefile, it will correctly compute the shape bounds and thus render the bones correctly. --- .../source/gui/editor/guiShapeEdPreview.cpp | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Engine/source/gui/editor/guiShapeEdPreview.cpp b/Engine/source/gui/editor/guiShapeEdPreview.cpp index 481544851..24b1e65f8 100644 --- a/Engine/source/gui/editor/guiShapeEdPreview.cpp +++ b/Engine/source/gui/editor/guiShapeEdPreview.cpp @@ -926,8 +926,8 @@ void GuiShapeEdPreview::handleMouseDown(const GuiEvent& event, GizmoMode mode) } } - if ( mode == RotateMode ) - mRenderCameraAxes = true; + //if ( mode == RotateMode ) + // mRenderCameraAxes = true; } void GuiShapeEdPreview::handleMouseUp(const GuiEvent& event, GizmoMode mode) @@ -941,8 +941,8 @@ void GuiShapeEdPreview::handleMouseUp(const GuiEvent& event, GizmoMode mode) mGizmo->on3DMouseUp( mLastEvent ); } - if ( mode == RotateMode ) - mRenderCameraAxes = false; + //if ( mode == RotateMode ) + // mRenderCameraAxes = false; } void GuiShapeEdPreview::handleMouseMove(const GuiEvent& event, GizmoMode mode) @@ -1164,6 +1164,19 @@ void GuiShapeEdPreview::computeSceneBounds(Box3F& bounds) { if ( mModel ) mModel->computeBounds( mCurrentDL, bounds ); + + if (bounds.getExtents().x < POINT_EPSILON || bounds.getExtents().y < POINT_EPSILON || bounds.getExtents().z < POINT_EPSILON) + { + bounds.set(Point3F::Zero); + + //We probably don't have any actual meshes in this model, so compute using the bones if we have them + for (S32 i = 0; i < mModel->getShape()->nodes.size(); i++) + { + Point3F nodePos = mModel->mNodeTransforms[i].getPosition(); + + bounds.extend(nodePos); + } + } } void GuiShapeEdPreview::updateDetailLevel(const SceneRenderState* state)