52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
#ifndef QSCENERENDERER_H
|
|
#define QSCENERENDERER_H
|
|
|
|
#include <cmath>
|
|
#include <qopenglwidget.h>
|
|
#include <QOpenGLFunctions_4_0_Core>
|
|
#include "terrain.h"
|
|
#include "tile.h"
|
|
#include <QMouseEvent>
|
|
#include <vector>
|
|
#include "matrix2d.h"
|
|
|
|
|
|
class QSceneRenderer : public QOpenGLWidget
|
|
{
|
|
public:
|
|
QSceneRenderer(QWidget* parent = Q_NULLPTR) ;
|
|
inline Matrix2D<TerrainPoint> * getMapPoints() {return m_point;}
|
|
inline int getNumPointsWidth() const {return m_numPointsWidth;}
|
|
inline int getNumPointsHeight() const {return m_numPointsHeight;}
|
|
inline int getNumPoints05() const {return m_numPoints05;}
|
|
|
|
Tile * getTile(int x, int y);
|
|
protected:
|
|
void mousePressEvent(QMouseEvent *event);
|
|
void mouseMoveEvent(QMouseEvent *event);
|
|
void keyPressEvent(QKeyEvent * e);
|
|
void wheelEvent(QWheelEvent * e);
|
|
void initializeGL();
|
|
void resizeGL(int w, int h);
|
|
void paintGL();
|
|
|
|
float m_camera_x =10.0;
|
|
float m_camera_y=0.0;
|
|
QMatrix4x4 Projection;
|
|
QMatrix4x4 cameraTransformation;
|
|
QVector3D cameraPosition;
|
|
QVector3D cameraUpDirection;
|
|
|
|
|
|
Matrix2D<TerrainPoint> * m_point;
|
|
Matrix2D<Tile> * tiles;
|
|
QPoint lastPos;
|
|
float zRot=0;
|
|
float m_numPointsWidth;
|
|
float m_numPointsHeight;
|
|
int m_numPoints05;
|
|
float m_zoom;
|
|
};
|
|
|
|
#endif // QSCENERENDERER_H
|