Files
Ascent-of-Man/qscenerenderer.h
T
2026-11-08 11:22:15 +01:00

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