/* Stanley Designer Copyright (C) 2012 Ivan Pelipenko peri4ko@gmail.com This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include "ui_mainwindow.h" #include "loader_3ds.h" #include "loader_ase.h" #include "renderer_simple.h" #include "renderer_deferred_shading.h" #include "water_system.h" #include "rope_system.h" class MainWindow: public QMainWindow, public Ui::MainWindow { Q_OBJECT public: MainWindow(QWidget * parent = 0); ~MainWindow(); private: // Qt`s overloaded void changeEvent(QEvent * e); void timerEvent(QTimerEvent * ); void loadFile(const QString & path); QTranslator translator; QString prev_path, dstyle; bool isChanged; GLObjectBase * obj, * sel_obj; GLPrimitiveCube * box; GLParticlesSystem * ps; WaterSystem * ws; RopeSystem * rs; Material m; private slots: void glInit(); void on_actionExit_triggered() {close();} void on_spinFOV_valueChanged(double val) {view->setFOV(val);} void on_spinAccom_valueChanged(double val) {view->setAccomodationTime(val);} void on_spinAccomMS_valueChanged(double val) {view->setAccomodationMaxSpeed(val);} void on_spinCubemapSize_valueChanged(double val) {view->setDynamicReflectionsMapSize(val);} void on_spinShadowmapSize_valueChanged(double val) {view->setShadowMapSize(val);} void on_spinHaloFillAlpha_valueChanged(double val) {view->setSelectionHaloFillAlpha(val);} //void on_spinSliderShine_valueChanged(double val) {obj->material().shine_strength = val; obj->setMaterial(obj->material(), true);} //void on_spinSliderRough_valueChanged(double val) {obj->material().shine = val; obj->setMaterial(obj->material(), true);} void on_pushButton_clicked() {view->removeLight(view->lightsCount() - 1); setWindowTitle(QString::number(view->lightsCount()));} void on_pushButton_2_clicked() {view->reloadShaders();} void on_pushButton_3_clicked(); void on_comboBox_currentIndexChanged(int val); void on_comboViewRenderMode_currentIndexChanged(int val) {static int modes[] = {GL_POINT, GL_LINE, GL_FILL}; view->setRenderMode((GLObjectBase::RenderMode)modes[val]);} //void on_comboLight_currentIndexChanged(int val) {obj->material().light_model = (Material::LightModel)val; obj->setMaterial(obj->material(), true);} void on_checkSelectionHalo_toggled(bool val) {view->setSelectionHaloEnabled(val);} void on_checkDynamicReflections_toggled(bool val) {view->setDynamicReflectionsEnabled(val);} void on_checkHDR_toggled(bool val) {view->setHDREnabled(val);} void on_checkAccomodation_toggled(bool val) {view->setAccomodationEnabled(val);} void on_checkBloom_toggled(bool val) {view->setBloomEnabled(val);} void on_checkFXAA_toggled(bool val) {view->setFXAAEnabled(val);} void on_checkMSAA_toggled(bool val) {view->setMultisamplingEnabled(val);} void on_checkShadows_toggled(bool val) {view->setShadowsEnabled(val);} void on_checkSoftShadows_toggled(bool val) {view->setSoftShadowsEnabled(val);} void on_checkCameraOrbit_toggled(bool val) {view->setCameraOrbit(val);} void on_colorAmbient_colorChanged(QColor color) {view->setAmbientColor(color);} void on_colorHalo_colorChanged(QColor color) {view->setSelectionHaloColor(color);} void on_view_glKeyPressEvent(QKeyEvent * e); void on_view_keyEvent(Qt::Key k, Qt::KeyboardModifiers m); void hoverChanged(GLObjectBase * cur, GLObjectBase * prev) {/*qDebug() << "hovered" << (cur != 0 ? cur->name() : "0") << ", previous" << (prev != 0 ? prev->name() : "0");*/} void selectionChanged(GLObjectBase * cur, GLObjectBase * prev); /*{qDebug() << "selected" << (cur != 0 ? cur->name() : "0") << ", previous" << (prev != 0 ? prev->name() : "0");}*/ void materialChanged(); public slots: signals: }; #endif // MAINWINDOW_H