Skip to content

Commit 11f60e1

Browse files
committed
terrain: Change chunk offsets to scene coordinate types.
1 parent 6addee0 commit 11f60e1

18 files changed

+38
-27
lines changed

libopenage/gamestate/game.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "util/path.h"
2020
#include "util/strings.h"
2121

22+
#include "coord/phys.h"
2223

2324
namespace openage::gamestate {
2425

@@ -128,8 +129,8 @@ void Game::load_path(const util::Path &base_dir,
128129
void Game::generate_terrain(const std::shared_ptr<TerrainFactory> &terrain_factory) {
129130
auto terrain = terrain_factory->add_terrain();
130131

131-
auto chunk0 = terrain_factory->add_chunk(util::Vector2s{10, 10}, util::Vector2s{0, 0});
132-
auto chunk1 = terrain_factory->add_chunk(util::Vector2s{10, 10}, util::Vector2s{10, 0});
132+
auto chunk0 = terrain_factory->add_chunk(util::Vector2s{10, 10}, coord::phys2_delta{0, 0});
133+
auto chunk1 = terrain_factory->add_chunk(util::Vector2s{10, 10}, coord::phys2_delta{10, 0});
133134
terrain->add_chunk(chunk0);
134135
terrain->add_chunk(chunk1);
135136

libopenage/gamestate/terrain_chunk.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
namespace openage::gamestate {
77

88
TerrainChunk::TerrainChunk(const util::Vector2s size,
9-
const util::Vector2s offset) :
9+
const coord::phys2_delta offset) :
1010
size{size},
1111
offset{offset},
1212
height_map{} {
@@ -41,7 +41,7 @@ const util::Vector2s &TerrainChunk::get_size() const {
4141
return this->size;
4242
}
4343

44-
const util::Vector2s &TerrainChunk::get_offset() const {
44+
const coord::phys2_delta &TerrainChunk::get_offset() const {
4545
return this->offset;
4646
}
4747

libopenage/gamestate/terrain_chunk.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include <vector>
66

7+
#include "coord/phys.h"
78
#include "renderer/stages/terrain/terrain_render_entity.h"
89
#include "time/time.h"
910
#include "util/vector.h"
@@ -21,7 +22,7 @@ const size_t MAX_CHUNK_HEIGHT = 16;
2122
class TerrainChunk {
2223
public:
2324
TerrainChunk(const util::Vector2s size,
24-
const util::Vector2s offset);
25+
const coord::phys2_delta offset);
2526
~TerrainChunk() = default;
2627

2728
/**
@@ -52,7 +53,7 @@ class TerrainChunk {
5253
*
5354
* @return Offset of the terrain chunk (in tiles).
5455
*/
55-
const util::Vector2s &get_offset() const;
56+
const coord::phys2_delta &get_offset() const;
5657

5758
private:
5859
/**
@@ -65,7 +66,7 @@ class TerrainChunk {
6566
/**
6667
* Offset of the terrain chunk to the origin.
6768
*/
68-
util::Vector2s offset;
69+
coord::phys2_delta offset;
6970

7071
/**
7172
* Height map of the terrain chunk.

libopenage/gamestate/terrain_factory.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ std::shared_ptr<Terrain> TerrainFactory::add_terrain() {
2121
}
2222

2323
std::shared_ptr<TerrainChunk> TerrainFactory::add_chunk(const util::Vector2s size,
24-
const util::Vector2s offset) {
24+
const coord::phys2_delta offset) {
2525
auto chunk = std::make_shared<TerrainChunk>(size, offset);
2626

2727
if (this->render_factory) {

libopenage/gamestate/terrain_factory.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <memory>
66
#include <shared_mutex>
77

8+
#include "coord/phys.h"
89
#include "util/vector.h"
910

1011

@@ -46,7 +47,7 @@ class TerrainFactory {
4647
* @return New terrain chunk.
4748
*/
4849
std::shared_ptr<TerrainChunk> add_chunk(const util::Vector2s size,
49-
const util::Vector2s offset);
50+
const coord::phys2_delta offset);
5051

5152
// TODO: Add tiles
5253
// std::shared_ptr<TerrainTile> add_tile(const std::shared_ptr<openage::event::EventLoop> &loop,

libopenage/renderer/demo/demo_3.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <eigen3/Eigen/Dense>
66
#include <QKeyEvent>
77

8+
#include "coord/phys.h"
89
#include "renderer/camera/camera.h"
910
#include "renderer/gui/integration/public/gui_application_with_logger.h"
1011
#include "renderer/opengl/window.h"
@@ -21,6 +22,7 @@
2122
#include "renderer/uniform_buffer.h"
2223
#include "time/clock.h"
2324

25+
2426
namespace openage::renderer::tests {
2527

2628
void renderer_demo_3(const util::Path &path) {
@@ -123,7 +125,7 @@ void renderer_demo_3(const util::Path &path) {
123125

124126
// Create entity for terrain rendering
125127
auto terrain0 = render_factory->add_terrain_render_entity(terrain_size,
126-
util::Vector2s{0, 0});
128+
coord::phys2_delta{0, 0});
127129

128130
// Create "test bumps" in the terrain to check if rendering works
129131
height_map[11] = 1.0f;

libopenage/renderer/demo/stresstest_0.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include <eigen3/Eigen/Dense>
66

7+
#include "coord/phys.h"
78
#include "renderer/camera/camera.h"
89
#include "renderer/gui/integration/public/gui_application_with_logger.h"
910
#include "renderer/opengl/window.h"
@@ -126,7 +127,7 @@ void renderer_stresstest_0(const util::Path &path) {
126127

127128
// Create entity for terrain rendering
128129
auto terrain0 = render_factory->add_terrain_render_entity(terrain_size,
129-
util::Vector2s{0, 0});
130+
coord::phys2_delta{0, 0});
130131

131132
// send the terrain data to the terrain renderer
132133
terrain0->update(terrain_size,

libopenage/renderer/render_factory.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ RenderFactory::RenderFactory(const std::shared_ptr<terrain::TerrainRenderer> ter
1515
}
1616

1717
std::shared_ptr<terrain::TerrainRenderEntity> RenderFactory::add_terrain_render_entity(const util::Vector2s chunk_size,
18-
const util::Vector2s chunk_offset) {
18+
const coord::phys2_delta chunk_offset) {
1919
auto entity = std::make_shared<terrain::TerrainRenderEntity>();
20-
this->terrain_renderer->add_render_entity(entity, chunk_size, chunk_offset);
20+
this->terrain_renderer->add_render_entity(entity, chunk_size, chunk_offset.to_scene2());
2121

2222
return entity;
2323
}

libopenage/renderer/render_factory.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include <memory>
66

7+
#include "coord/phys.h"
78
#include "util/vector.h"
89

910

@@ -47,7 +48,7 @@ class RenderFactory {
4748
* @return Render entity for pushing terrain updates.
4849
*/
4950
std::shared_ptr<terrain::TerrainRenderEntity> add_terrain_render_entity(const util::Vector2s chunk_size,
50-
const util::Vector2s chunk_offset);
51+
const coord::phys2_delta chunk_offset);
5152

5253
/**
5354
* Create a new world render entity and register it at the world renderer.

libopenage/renderer/stages/terrain/terrain_chunk.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace openage::renderer::terrain {
1212

1313
TerrainChunk::TerrainChunk(const std::shared_ptr<renderer::resources::AssetManager> &asset_manager,
1414
const util::Vector2s size,
15-
const util::Vector2s offset) :
15+
const coord::scene2_delta offset) :
1616
size{size},
1717
offset{offset},
1818
asset_manager{asset_manager} {}
@@ -124,7 +124,7 @@ util::Vector2s &TerrainChunk::get_size() {
124124
return this->size;
125125
}
126126

127-
util::Vector2s &TerrainChunk::get_offset() {
127+
coord::scene2_delta &TerrainChunk::get_offset() {
128128
return this->offset;
129129
}
130130

0 commit comments

Comments
 (0)