units
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user