Map.hpp 918 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef PARTICLE_MAP
  2. #define PARTICLE_MAP
  3. #include <vector>
  4. #include "definitions.hpp"
  5. #include "Tile.hpp"
  6. class Particle;
  7. class Map
  8. {
  9. private:
  10. size_t m_width{};
  11. size_t m_height{};
  12. size_t m_surface{};
  13. std::vector<Tile> m_tiles{};
  14. std::vector<Tile> m_tiles_swap{};
  15. std::vector<Particle> m_particles{};
  16. public:
  17. numeric_t increase{};
  18. numeric_t decay{};
  19. numeric_t diffusion{};
  20. numeric_t speed{};
  21. numeric_t steering{};
  22. numeric_t sampling_distance{};
  23. numeric_t sampling_angle{};
  24. Map(size_t width, size_t height);
  25. ~Map() = default;
  26. void populate(std::vector<Particle> && particles);
  27. void update(numeric_t delta_t);
  28. size_t width() const { return m_width ;}
  29. size_t height() const { return m_height ;}
  30. size_t surface() const { return m_surface ;}
  31. const std::vector<Tile> &tiles() const { return m_tiles; };
  32. };
  33. #endif // PARTICLE_MAP