Skip to content
Snippets Groups Projects
Commit 7b739ab8 authored by Anakin's avatar Anakin
Browse files

use OutputDevice to set fileinfo,

use new connect function,
parent 98302664
Branches
No related tags found
No related merge requests found
...@@ -37,16 +37,11 @@ private: ...@@ -37,16 +37,11 @@ private:
public: public:
void drawGeometry(QOpenGLShaderProgram *program, bool wireframe); void drawGeometry(QOpenGLShaderProgram *program, bool wireframe);
// slots
public slots:
void loadFile(QString filePath); void loadFile(QString filePath);
// signals // signals
signals: signals:
void requestResetView(); void requestResetView();
void requestUpdate(); void requestUpdate();
void sendFileInfo(QString name, QVector<Material>* materials, int vertices, int triangle);
}; };
...@@ -58,7 +58,6 @@ private: ...@@ -58,7 +58,6 @@ private:
// functions // functions
private: private:
void initShaders(); void initShaders();
void setConnections();
void resetView(); void resetView();
void updateLightPosition(); void updateLightPosition();
...@@ -89,8 +88,5 @@ public slots: ...@@ -89,8 +88,5 @@ public slots:
void setAttFac(double value); void setAttFac(double value);
void setAmbCoef(double value); void setAmbCoef(double value);
// signals
signals:
void loadFile(QString);
}; };
#pragma once #pragma once
#include <QObject> #include <QObject>
struct Material;
class OutputDevice : public QObject class OutputDevice : public QObject
{ {
Q_OBJECT Q_OBJECT
...@@ -20,8 +22,11 @@ public: ...@@ -20,8 +22,11 @@ public:
}; };
void print(QString message, int severity) { emit sendMessage(message, severity); }; void print(QString message, int severity) { emit sendMessage(message, severity); };
void setFileInfo(QString name, QVector<Material>* materials, int vertices, int triangle) {
emit sendFileInfo(name, materials, vertices, triangle);
};
signals: signals:
void sendMessage(QString message, int severity); void sendMessage(QString message, int severity);
void sendFileInfo(QString name, QVector<Material>* materials, int vertices, int triangle);
}; };
\ No newline at end of file
...@@ -142,10 +142,6 @@ void GeometryEngine::drawGeometry(QOpenGLShaderProgram *program, bool wireframe) ...@@ -142,10 +142,6 @@ void GeometryEngine::drawGeometry(QOpenGLShaderProgram *program, bool wireframe)
} }
} }
/////////////////////////////////////////////////////////////////////////
// slots
void GeometryEngine::loadFile(QString filePath) void GeometryEngine::loadFile(QString filePath)
{ {
// cleanup old stuff and recreate buffers // cleanup old stuff and recreate buffers
...@@ -215,7 +211,7 @@ void GeometryEngine::loadFile(QString filePath) ...@@ -215,7 +211,7 @@ void GeometryEngine::loadFile(QString filePath)
emit requestUpdate(); emit requestUpdate();
OutputDevice::getInstance()->print("done..", 0); OutputDevice::getInstance()->print("done..", 0);
emit sendFileInfo(filePath.right(filePath.size() - filePath.lastIndexOf(QRegExp("/|\\\\")) - 1), m_materials, vertexData.size(), indexData.size() / 3); OutputDevice::getInstance()->setFileInfo(filePath.right(filePath.size() - filePath.lastIndexOf(QRegExp("/|\\\\")) - 1), m_materials, vertexData.size(), indexData.size() / 3);
} }
catch (std::invalid_argument e) catch (std::invalid_argument e)
{ {
......
...@@ -31,6 +31,7 @@ MainWindow::MainWindow(QWidget *parent) ...@@ -31,6 +31,7 @@ MainWindow::MainWindow(QWidget *parent)
setWindowIcon(QIcon(":/images/icon.ico")); setWindowIcon(QIcon(":/images/icon.ico"));
connect(OutputDevice::getInstance(this), &OutputDevice::sendMessage, this, &MainWindow::printMessage); connect(OutputDevice::getInstance(this), &OutputDevice::sendMessage, this, &MainWindow::printMessage);
connect(OutputDevice::getInstance(this), &OutputDevice::sendFileInfo, this, &MainWindow::setFileInfo);
// setup opengl things // setup opengl things
QSurfaceFormat format; QSurfaceFormat format;
......
#include "..\Header\OglViewerWidget.h" #include "..\Header\OglViewerWidget.h"
#include "..\Header\OutputDevice.h" #include "..\Header\OutputDevice.h"
#include "..\Header\MainWindow.h"
#include <QMouseEvent> #include <QMouseEvent>
#include <QDropEvent> #include <QDropEvent>
#include <QMimeData> #include <QMimeData>
...@@ -17,6 +18,7 @@ OglViewerWidget::OglViewerWidget(QWidget *parent) ...@@ -17,6 +18,7 @@ OglViewerWidget::OglViewerWidget(QWidget *parent)
setFocus(); setFocus();
setAcceptDrops(true); 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); 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);
connect(m_settings, &SettingsWindow::updateBGColorOff, this, &OglViewerWidget::setBGColorOff); connect(m_settings, &SettingsWindow::updateBGColorOff, this, &OglViewerWidget::setBGColorOff);
...@@ -60,15 +62,6 @@ void OglViewerWidget::initShaders() ...@@ -60,15 +62,6 @@ void OglViewerWidget::initShaders()
close(); close();
} }
void OglViewerWidget::setConnections()
{
connect(m_dataEngine, &GeometryEngine::requestResetView, this, &OglViewerWidget::resetView);
connect(parentWidget(), SIGNAL(loadFile(QString)), m_dataEngine, SLOT(loadFile(QString)));
connect(this, SIGNAL(loadFile(QString)), m_dataEngine, SLOT(loadFile(QString)));
connect(m_dataEngine, SIGNAL(requestUpdate()), this, SLOT(update()));
connect(m_dataEngine, SIGNAL(sendFileInfo(QString, QVector<Material>*, int, int)), parentWidget(), SLOT(setFileInfo(QString, QVector<Material>*, int, int)));
}
void OglViewerWidget::resetView() void OglViewerWidget::resetView()
{ {
m_rotation = QQuaternion(); m_rotation = QQuaternion();
...@@ -107,7 +100,14 @@ void OglViewerWidget::initializeGL() ...@@ -107,7 +100,14 @@ void OglViewerWidget::initializeGL()
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
m_dataEngine = new GeometryEngine(this); m_dataEngine = new GeometryEngine(this);
setConnections(); connect(m_dataEngine, &GeometryEngine::requestResetView, this, &OglViewerWidget::resetView);
connect(m_dataEngine, &GeometryEngine::requestUpdate, this, static_cast<void(OglViewerWidget::*)(void)>(&OglViewerWidget::update));
//TODO: better solution
MainWindow* parent = dynamic_cast<MainWindow*>(parentWidget());
if (parent != NULL)
connect(parent, &MainWindow::loadFile, [this](QString value) {m_dataEngine->loadFile(value); });
} }
void OglViewerWidget::resizeGL(int w, int h) void OglViewerWidget::resizeGL(int w, int h)
...@@ -327,7 +327,7 @@ void OglViewerWidget::dragEnterEvent(QDragEnterEvent *e) ...@@ -327,7 +327,7 @@ void OglViewerWidget::dragEnterEvent(QDragEnterEvent *e)
void OglViewerWidget::dropEvent(QDropEvent * e) void OglViewerWidget::dropEvent(QDropEvent * e)
{ {
emit loadFile(e->mimeData()->urls().first().toLocalFile()); m_dataEngine->loadFile(e->mimeData()->urls().first().toLocalFile());
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment