From 19c74a4d6e5dc092709e1e421b91869b1d99e4b8 Mon Sep 17 00:00:00 2001 From: LohikaarmeHAV Date: Wed, 3 Aug 2016 20:39:46 +0300 Subject: [PATCH] Part two --- apps/opencs/model/world/cellcoordinates.hpp | 3 +- .../view/render/pagedworldspacewidget.hpp | 2 +- apps/opencs/view/render/scenewidget.cpp | 2 +- apps/opencs/view/render/scenewidget.hpp | 35 ++++++++----------- 4 files changed, 17 insertions(+), 25 deletions(-) diff --git a/apps/opencs/model/world/cellcoordinates.hpp b/apps/opencs/model/world/cellcoordinates.hpp index 6ff4e4b5d..696868d00 100644 --- a/apps/opencs/model/world/cellcoordinates.hpp +++ b/apps/opencs/model/world/cellcoordinates.hpp @@ -37,10 +37,9 @@ namespace CSMWorld /// /// \note The worldspace part of \a id is ignored static std::pair fromId (const std::string& id); - + /// \return cell coordinates such that given world coordinates are in it. static std::pair coordinatesToCellIndex (float x, float y); - }; bool operator== (const CellCoordinates& left, const CellCoordinates& right); diff --git a/apps/opencs/view/render/pagedworldspacewidget.hpp b/apps/opencs/view/render/pagedworldspacewidget.hpp index c25877e02..0663d3424 100644 --- a/apps/opencs/view/render/pagedworldspacewidget.hpp +++ b/apps/opencs/view/render/pagedworldspacewidget.hpp @@ -84,7 +84,7 @@ namespace CSVRender /// hint system. virtual ~PagedWorldspaceWidget(); - + /// Decodes the the hint string to set of cell that are rendered. void useViewHint (const std::string& hint); diff --git a/apps/opencs/view/render/scenewidget.cpp b/apps/opencs/view/render/scenewidget.cpp index 5d7a296cd..db0637a24 100644 --- a/apps/opencs/view/render/scenewidget.cpp +++ b/apps/opencs/view/render/scenewidget.cpp @@ -32,7 +32,7 @@ RenderWidget::RenderWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) , mRootNode(0) { - + osgViewer::CompositeViewer& viewer = CompositeViewer::get(); osg::DisplaySettings* ds = osg::DisplaySettings::instance().get(); diff --git a/apps/opencs/view/render/scenewidget.hpp b/apps/opencs/view/render/scenewidget.hpp index 001494ab3..c5d9cdfce 100644 --- a/apps/opencs/view/render/scenewidget.hpp +++ b/apps/opencs/view/render/scenewidget.hpp @@ -7,14 +7,15 @@ #include #include +#include +#include + #include #include "lightingday.hpp" #include "lightingnight.hpp" #include "lightingbright.hpp" -#include -#include namespace Resource { @@ -53,6 +54,7 @@ namespace CSVRender RenderWidget(QWidget* parent = 0, Qt::WindowFlags f = 0); virtual ~RenderWidget(); + /// Initiates a request to redraw the view void flagAsModified(); void setVisibilityMask(int mask); @@ -62,13 +64,16 @@ namespace CSVRender protected: osg::ref_ptr mView; - - osg::Group* mRootNode; + osg::ref_ptr mRootNode; QTimer mTimer; + + protected slots: + + void toggleRenderStats(); }; - // Extension of RenderWidget to support lighting mode selection & toolbar + /// Extension of RenderWidget to support lighting mode selection & toolbar class SceneWidget : public RenderWidget { Q_OBJECT @@ -90,18 +95,8 @@ namespace CSVRender void setAmbient(const osg::Vec4f& ambient); - virtual void mousePressEvent (QMouseEvent *event); - virtual void mouseReleaseEvent (QMouseEvent *event); virtual void mouseMoveEvent (QMouseEvent *event); virtual void wheelEvent (QWheelEvent *event); - virtual void keyPressEvent (QKeyEvent *event); - virtual void keyReleaseEvent (QKeyEvent *event); - virtual void focusOutEvent (QFocusEvent *event); - - /// \return Is \a key a button mapping setting? (ignored otherwise) - virtual bool storeMappingSetting (const CSMPrefs::Setting *setting); - - std::string mapButton (QMouseEvent *event); boost::shared_ptr mResourceSystem; @@ -114,17 +109,15 @@ namespace CSVRender LightingBright mLightingBright; int mPrevMouseX, mPrevMouseY; - std::string mMouseMode; - std::auto_ptr mFreeCamControl; - std::auto_ptr mOrbitCamControl; - CameraController* mCurrentCamControl; + /// Tells update that camera isn't set bool mCamPositionSet; - std::map, std::string> mButtonMapping; + FreeCameraController* mFreeCamControl; + OrbitCameraController* mOrbitCamControl; + CameraController* mCurrentCamControl; public slots: - /// \note Remember set the camera before running void update(double dt); protected slots: