most settings are saved and restored
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include "..\Header\FreeCamera.h"
|
||||
#include "..\Header\OrbitCamera.h"
|
||||
#include "..\Header\MoveCamera.h"
|
||||
#include "..\Header\SettingsManager.h"
|
||||
#include <QMouseEvent>
|
||||
#include <QDropEvent>
|
||||
#include <QMimeData>
|
||||
@@ -24,7 +25,8 @@ OglViewerWidget::OglViewerWidget(QWidget *parent)
|
||||
setAcceptDrops(true);
|
||||
|
||||
// settings window
|
||||
m_settings = new SettingsWindow(m_backgroundColorOff.toVector3D() * 255, m_backgroundColorOn.toVector3D() * 255, m_light.intensities * 255, true, m_light.ambientCoefficient, m_light.attenuationFactor, 1, this);
|
||||
setDefaultValues();
|
||||
m_settings = new SettingsWindow(this);
|
||||
|
||||
connect(m_settings, &SettingsWindow::updateBGColorOff, this, &OglViewerWidget::setBGColorOff);
|
||||
connect(m_settings, &SettingsWindow::updateBGColorOn, this, &OglViewerWidget::setBGColorOn);
|
||||
@@ -52,6 +54,30 @@ OglViewerWidget::~OglViewerWidget()
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// functions
|
||||
|
||||
void OglViewerWidget::setDefaultValues()
|
||||
{
|
||||
SettingsManager* sm = SettingsManager::getInstance(this);
|
||||
|
||||
m_backgroundColorOn = QVector4D(sm->getBgColorOn() / 255, 1.0f);
|
||||
m_backgroundColorOff = QVector4D(sm->getBgColorOff() / 255, 1.0f);
|
||||
|
||||
m_wireframe = false;
|
||||
m_lightOn = sm->isLight();
|
||||
m_backfaceCulling = sm->isBfCulling();
|
||||
|
||||
if (sm->getLightType() == 1) // directional
|
||||
m_light.position = { 0.0,0.0,0.0,0.0 };
|
||||
else // point
|
||||
m_light.position = { 0.0,0.0,0.0,1.0 };
|
||||
m_light.intensities = sm->getLightColor() / 255;
|
||||
m_light.attenuationFactor = sm->getAttenuation();
|
||||
m_light.ambientCoefficient = sm->getAmbient();
|
||||
m_light.headlight = sm->isHeadlight();
|
||||
|
||||
connect(this, &OglViewerWidget::lightChanged, sm, &SettingsManager::setLight);
|
||||
|
||||
}
|
||||
|
||||
void OglViewerWidget::initShaders()
|
||||
{
|
||||
// Compile vertex shader
|
||||
@@ -371,6 +397,8 @@ void OglViewerWidget::toggleLight()
|
||||
m_backgroundColorOff[3] = 1.0;
|
||||
}
|
||||
|
||||
emit lightChanged(m_lightOn);
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user