mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-11 15:40:39 +00:00
Moved selectNavigationMode to SceneWidget class, centralized camera selection.
This commit is contained in:
parent
9afb0e0f90
commit
ebdc212886
@ -6,8 +6,6 @@
|
|||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
#include <osgGA/TrackballManipulator>
|
|
||||||
|
|
||||||
#include <components/esm/loadland.hpp>
|
#include <components/esm/loadland.hpp>
|
||||||
|
|
||||||
#include "../../model/world/tablemimedata.hpp"
|
#include "../../model/world/tablemimedata.hpp"
|
||||||
@ -117,7 +115,7 @@ bool CSVRender::PagedWorldspaceWidget::adjustCells()
|
|||||||
/// \todo do not overwrite manipulator object
|
/// \todo do not overwrite manipulator object
|
||||||
/// \todo move code to useViewHint function
|
/// \todo move code to useViewHint function
|
||||||
if (modified && wasEmpty)
|
if (modified && wasEmpty)
|
||||||
mView->setCameraManipulator(new osgGA::TrackballManipulator);
|
selectNavigationMode("trackball");
|
||||||
|
|
||||||
return modified;
|
return modified;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
#include "previewwidget.hpp"
|
#include "previewwidget.hpp"
|
||||||
|
|
||||||
#include <osgGA/TrackballManipulator>
|
|
||||||
|
|
||||||
#include "../../model/world/data.hpp"
|
#include "../../model/world/data.hpp"
|
||||||
#include "../../model/world/idtable.hpp"
|
#include "../../model/world/idtable.hpp"
|
||||||
|
|
||||||
@ -9,7 +7,7 @@ CSVRender::PreviewWidget::PreviewWidget (CSMWorld::Data& data,
|
|||||||
const std::string& id, bool referenceable, QWidget *parent)
|
const std::string& id, bool referenceable, QWidget *parent)
|
||||||
: SceneWidget (data.getResourceSystem(), parent), mData (data), mObject(data, mRootNode, id, referenceable)
|
: SceneWidget (data.getResourceSystem(), parent), mData (data), mObject(data, mRootNode, id, referenceable)
|
||||||
{
|
{
|
||||||
mView->setCameraManipulator(new osgGA::TrackballManipulator);
|
selectNavigationMode("trackball");
|
||||||
|
|
||||||
QAbstractItemModel *referenceables =
|
QAbstractItemModel *referenceables =
|
||||||
mData.getTableModel (CSMWorld::UniversalId::Type_Referenceables);
|
mData.getTableModel (CSMWorld::UniversalId::Type_Referenceables);
|
||||||
|
@ -12,6 +12,9 @@
|
|||||||
#include <osgViewer/ViewerEventHandlers>
|
#include <osgViewer/ViewerEventHandlers>
|
||||||
#include <osg/LightModel>
|
#include <osg/LightModel>
|
||||||
|
|
||||||
|
#include <osgGA/TrackballManipulator>
|
||||||
|
#include <osgGA/FirstPersonManipulator>
|
||||||
|
|
||||||
#include <components/resource/scenemanager.hpp>
|
#include <components/resource/scenemanager.hpp>
|
||||||
#include <components/resource/resourcesystem.hpp>
|
#include <components/resource/resourcesystem.hpp>
|
||||||
#include <components/sceneutil/lightmanager.hpp>
|
#include <components/sceneutil/lightmanager.hpp>
|
||||||
@ -282,6 +285,18 @@ void SceneWidget::settingChanged (const CSMPrefs::Setting *setting)
|
|||||||
storeMappingSetting(setting);
|
storeMappingSetting(setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SceneWidget::selectNavigationMode (const std::string& mode)
|
||||||
|
{
|
||||||
|
if (mode=="1st")
|
||||||
|
mView->setCameraManipulator(new osgGA::FirstPersonManipulator);
|
||||||
|
else if (mode=="free")
|
||||||
|
mView->setCameraManipulator(new osgGA::FirstPersonManipulator);
|
||||||
|
else if (mode=="orbit")
|
||||||
|
mView->setCameraManipulator(new osgGA::OrbitManipulator);
|
||||||
|
else if (mode=="trackball")
|
||||||
|
mView->setCameraManipulator(new osgGA::TrackballManipulator);
|
||||||
|
}
|
||||||
|
|
||||||
bool SceneWidget::storeMappingSetting (const CSMPrefs::Setting *setting)
|
bool SceneWidget::storeMappingSetting (const CSMPrefs::Setting *setting)
|
||||||
{
|
{
|
||||||
if (setting->getParent()->getKey()!="3D Scene Input")
|
if (setting->getParent()->getKey()!="3D Scene Input")
|
||||||
|
@ -110,6 +110,8 @@ namespace CSVRender
|
|||||||
|
|
||||||
virtual void settingChanged (const CSMPrefs::Setting *setting);
|
virtual void settingChanged (const CSMPrefs::Setting *setting);
|
||||||
|
|
||||||
|
void selectNavigationMode (const std::string& mode);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void selectLightingMode (const std::string& mode);
|
void selectLightingMode (const std::string& mode);
|
||||||
|
@ -51,7 +51,7 @@ CSVRender::UnpagedWorldspaceWidget::UnpagedWorldspaceWidget (const std::string&
|
|||||||
|
|
||||||
mCell.reset (new Cell (document.getData(), mRootNode, mCellId));
|
mCell.reset (new Cell (document.getData(), mRootNode, mCellId));
|
||||||
|
|
||||||
mView->setCameraManipulator(new osgGA::TrackballManipulator);
|
selectNavigationMode("trackball");
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVRender::UnpagedWorldspaceWidget::cellDataChanged (const QModelIndex& topLeft,
|
void CSVRender::UnpagedWorldspaceWidget::cellDataChanged (const QModelIndex& topLeft,
|
||||||
|
@ -12,9 +12,6 @@
|
|||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QToolTip>
|
#include <QToolTip>
|
||||||
|
|
||||||
#include <osgGA/TrackballManipulator>
|
|
||||||
#include <osgGA/FirstPersonManipulator>
|
|
||||||
|
|
||||||
#include <osgUtil/LineSegmentIntersector>
|
#include <osgUtil/LineSegmentIntersector>
|
||||||
|
|
||||||
#include "../../model/world/universalid.hpp"
|
#include "../../model/world/universalid.hpp"
|
||||||
@ -94,21 +91,12 @@ void CSVRender::WorldspaceWidget::settingChanged (const CSMPrefs::Setting *setti
|
|||||||
SceneWidget::settingChanged(setting);
|
SceneWidget::settingChanged(setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVRender::WorldspaceWidget::selectNavigationMode (const std::string& mode)
|
|
||||||
{
|
|
||||||
if (mode=="1st")
|
|
||||||
mView->setCameraManipulator(new osgGA::FirstPersonManipulator);
|
|
||||||
else if (mode=="free")
|
|
||||||
mView->setCameraManipulator(new osgGA::FirstPersonManipulator);
|
|
||||||
else if (mode=="orbit")
|
|
||||||
mView->setCameraManipulator(new osgGA::OrbitManipulator);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSVRender::WorldspaceWidget::useViewHint (const std::string& hint) {}
|
void CSVRender::WorldspaceWidget::useViewHint (const std::string& hint) {}
|
||||||
|
|
||||||
void CSVRender::WorldspaceWidget::selectDefaultNavigationMode()
|
void CSVRender::WorldspaceWidget::selectDefaultNavigationMode()
|
||||||
{
|
{
|
||||||
mView->setCameraManipulator(new osgGA::FirstPersonManipulator);
|
selectNavigationMode("1st");
|
||||||
}
|
}
|
||||||
|
|
||||||
CSVWidget::SceneToolMode *CSVRender::WorldspaceWidget::makeNavigationSelector (
|
CSVWidget::SceneToolMode *CSVRender::WorldspaceWidget::makeNavigationSelector (
|
||||||
|
@ -213,8 +213,6 @@ namespace CSVRender
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void selectNavigationMode (const std::string& mode);
|
|
||||||
|
|
||||||
virtual void referenceableDataChanged (const QModelIndex& topLeft,
|
virtual void referenceableDataChanged (const QModelIndex& topLeft,
|
||||||
const QModelIndex& bottomRight) = 0;
|
const QModelIndex& bottomRight) = 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user