#include "../graphics/SimpleVAO.hpp"
#include <cassert>
-#include <memory>
+#include <vector>
#include <GL/glew.h>
namespace blobs {
namespace world {
-struct Tile;
+class TileSet;
/// A planet has six surfaces, numbered 0 to 5, each filled with
/// sidelength² tiles.
return 6 * TilesPerSurface();
}
- void BuildVAOs();
+ glm::dvec3 TileCenter(int surface, int x, int y) const noexcept;
+
+ void BuildVAO(const TileSet &);
void Draw(app::Assets &, graphics::Viewport &) override;
private:
int sidelength;
- std::unique_ptr<Tile []> tiles;
+ std::vector<Tile> tiles;
struct Attributes {
glm::vec3 position;
};
-void GenerateTest(Planet &);
+void GenerateEarthlike(const TileSet &, Planet &) noexcept;
+void GenerateTest(const TileSet &, Planet &) noexcept;
}
}