terrain-gen/src/window.h

66 lines
1.3 KiB
C++

#ifndef WINDOW_H
#define WINDOW_H
#include <limits>
#include <QObject>
#include <QWidget>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGroupBox>
#include <QDoubleSpinBox>
#include <QLabel>
#include <QSlider>
#include <QCheckBox>
#include "glwidget.h"
#include "config.h"
class Window : public QWidget
{
Q_OBJECT
public:
explicit Window(QWidget *parent = nullptr);
virtual ~Window();
private:
QGroupBox *m_cameraGroup;
QGroupBox *m_terrainGroup;
QGroupBox *m_skyGroup;
GLWidget *m_glWidget;
QDoubleSpinBox *m_cameraPosX;
QDoubleSpinBox *m_cameraPosY;
QDoubleSpinBox *m_cameraPosZ;
QDoubleSpinBox *m_cameraRotX;
QDoubleSpinBox *m_cameraRotY;
QCheckBox *m_terrainShowNormals;
QLabel *m_skyTimeHint;
QSlider *m_skyTimeSlider;
QSlider *m_skyInclinationSlider;
QCheckBox *m_skyAnimation;
void createCameraInputs();
void createTerrainInputs();
void createSkyInputs();
QDoubleSpinBox *createDoubleSpinBox();
QWidget *labelizeInput(QWidget* input, QString label);
void fillDefault();
void connectInputs();
signals:
public slots:
void updateTimeHint(int time);
void updateCameraPosition(QVector3D newPosition);
void skyAnimationStateChanged(int state);
void terrainShowNormalsStateChanged(int state);
};
#endif // WINDOW_H