environment.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "environment.h"
  2. #include "../../render/gl/camera.h"
  3. #include "../../render/scene_renderer.h"
  4. #include "../game_config.h"
  5. #include <algorithm>
  6. namespace Game {
  7. namespace Map {
  8. void Environment::apply(const MapDefinition &def,
  9. Render::GL::Renderer &renderer,
  10. Render::GL::Camera &camera) {
  11. camera.setRTSView(def.camera.center, def.camera.distance, def.camera.tiltDeg,
  12. def.camera.yawDeg);
  13. camera.setPerspective(def.camera.fovY, 16.0f / 9.0f, def.camera.nearPlane,
  14. def.camera.farPlane);
  15. Render::GL::Renderer::GridParams gp;
  16. gp.cellSize = def.grid.tileSize;
  17. gp.extent =
  18. std::max(def.grid.width, def.grid.height) * def.grid.tileSize * 0.5f;
  19. renderer.setGridParams(gp);
  20. }
  21. void Environment::applyDefault(Render::GL::Renderer &renderer,
  22. Render::GL::Camera &camera) {
  23. const auto &cameraConfig = Game::GameConfig::instance().camera();
  24. camera.setRTSView(QVector3D(0, 0, 0), 15.0f, cameraConfig.defaultPitch,
  25. cameraConfig.defaultYaw);
  26. camera.setPerspective(45.0f, 16.0f / 9.0f, 1.0f, 200.0f);
  27. Render::GL::Renderer::GridParams gp;
  28. gp.cellSize = 1.0f;
  29. gp.extent = 50.0f;
  30. renderer.setGridParams(gp);
  31. }
  32. } // namespace Map
  33. } // namespace Game