From 5404460fcef27ebbb52084d8f3a4e2bebdd3465b Mon Sep 17 00:00:00 2001 From: sorket Date: Sat, 15 Jul 2023 22:24:53 -0400 Subject: [PATCH] Camera zoom to bounding box fix --- Projects/Client/Common/Source/OgreWidget.cpp | 7 ++++--- Projects/Client/Studio/Source/MainWindow.cpp | 2 ++ Projects/Engine/Header/Helpers/XML.hpp | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Projects/Client/Common/Source/OgreWidget.cpp b/Projects/Client/Common/Source/OgreWidget.cpp index 43f5ea7..877f8db 100644 --- a/Projects/Client/Common/Source/OgreWidget.cpp +++ b/Projects/Client/Common/Source/OgreWidget.cpp @@ -103,10 +103,11 @@ namespace RNR this->render_time += ogreRoot->getTimer()->getMilliseconds() / 1000.0; ogreRoot->getTimer()->reset(); - if(!world->getWorkspace()->getBoundingBox().isInfinite()) + Ogre::AxisAlignedBox boundingBox = world->getWorkspace()->getBoundingBox(); + if(!boundingBox.isNull() && !boundingBox.isInfinite()) { - ogreCamera->getParentSceneNode()->setPosition(world->getWorkspace()->getBoundingBox().getCorner(Ogre::AxisAlignedBox::CornerEnum::NEAR_LEFT_TOP)); - ogreCamera->getParentSceneNode()->lookAt(world->getWorkspace()->getBoundingBox().getCenter(), Ogre::Node::TS_WORLD); + ogreCamera->getParentSceneNode()->setPosition(boundingBox.getCorner(Ogre::AxisAlignedBox::CornerEnum::NEAR_LEFT_TOP)); + ogreCamera->getParentSceneNode()->lookAt(boundingBox.getCenter(), Ogre::Node::TS_WORLD); } ogreRoot->renderOneFrame(this->delta); diff --git a/Projects/Client/Studio/Source/MainWindow.cpp b/Projects/Client/Studio/Source/MainWindow.cpp index 8a3b115..2ef364e 100644 --- a/Projects/Client/Studio/Source/MainWindow.cpp +++ b/Projects/Client/Studio/Source/MainWindow.cpp @@ -83,6 +83,8 @@ void MainWindow::updateTree(RNR::Instance* root_instance) void MainWindow::loadDatamodel() { this->ogreWidget->world->load(QFileDialog::getOpenFileName(this, tr("Open RBXL"), tr(""), tr("RBXLs (*.rbxl)")).toLocal8Bit().data()); + + updateTree(ogreWidget->world->getDatamodel()); } void MainWindow::createToolbar() diff --git a/Projects/Engine/Header/Helpers/XML.hpp b/Projects/Engine/Header/Helpers/XML.hpp index 3ac0607..4ca425a 100644 --- a/Projects/Engine/Header/Helpers/XML.hpp +++ b/Projects/Engine/Header/Helpers/XML.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include namespace RNR