Implement tile-targeted road route construction and OpenGL 3D layered road rendering

This commit is contained in:
bart
2026-11-08 22:45:12 +01:00
parent c47673575b
commit 745089df7c
6 changed files with 421 additions and 25 deletions
+20
View File
@@ -10,9 +10,13 @@
#include <QPointF>
#include <vector>
#include <memory>
#include <map>
#include "unit.h"
#include "player.h"
#include "city.h"
#include "roadconfig.h"
#include "matrix2d.h"
#include "terrain.h"
class UnitRenderer : protected QOpenGLFunctions_4_0_Core {
public:
@@ -20,6 +24,18 @@ public:
~UnitRenderer();
void initialize();
void renderRoads(
const std::map<std::pair<int, int>, TileRoad> &roads,
const RoadConfigManager &roadConfigs,
Matrix2D<TerrainPoint> *mapPoints,
int numPoints05,
const QMatrix4x4 &projection,
const QMatrix4x4 &vMatrix,
const QVector3D &lightDir,
int cityViewRadius = -1,
int cityViewTileX = -1,
int cityViewTileY = -1
);
void renderUnits(
const std::vector<std::shared_ptr<Unit>> &units,
const std::vector<City> &cities,
@@ -49,6 +65,10 @@ private:
QOpenGLVertexArrayObject m_vao;
int m_vertexCount;
bool m_initialized;
QOpenGLBuffer m_roadVbo;
QOpenGLVertexArrayObject m_roadVao;
bool m_roadBuffersInitialized;
};
#endif // UNITRENDERER_H