This commit is contained in:
bart
2026-11-08 15:42:54 +01:00
parent dfd497d728
commit 5af4581182
80 changed files with 4494 additions and 437 deletions
+51
View File
@@ -0,0 +1,51 @@
#ifndef UNITRENDERER_H
#define UNITRENDERER_H
#include <QOpenGLFunctions_4_0_Core>
#include <QOpenGLShaderProgram>
#include <QOpenGLBuffer>
#include <QOpenGLVertexArrayObject>
#include <QMatrix4x4>
#include <QVector3D>
#include <QPointF>
#include <vector>
#include <memory>
#include "unit.h"
#include "player.h"
#include "city.h"
class UnitRenderer : protected QOpenGLFunctions_4_0_Core {
public:
UnitRenderer();
~UnitRenderer();
void initialize();
void renderUnits(
const std::vector<std::shared_ptr<Unit>> &units,
const std::vector<City> &cities,
const PlayerManager &players,
const QMatrix4x4 &projection,
const QMatrix4x4 &vMatrix,
const QVector3D &lightDir,
int selectedUnitId
);
static QPointF projectToScreen(
const QVector3D &worldPoint,
const QMatrix4x4 &projection,
const QMatrix4x4 &vMatrix,
int viewportW, int viewportH,
bool &inFront
);
private:
void buildCylinderMesh();
QOpenGLShaderProgram *m_program;
QOpenGLBuffer m_vbo;
QOpenGLVertexArrayObject m_vao;
int m_vertexCount;
bool m_initialized;
};
#endif // UNITRENDERER_H