5#include "spatial_map.hpp"
6#include "vipra/macros/pedestrians.hpp"
7#include "vipra/modules/pedestrians.hpp"
9namespace VIPRA::Pedestrians {
15NEW_VIPRA_MODULE(SpatialGrid, Pedestrians)
18 VIPRA_MODULE_NAME(
"SpatialGrid");
19 VIPRA_MODULE_TYPE(Pedestrians);
21 VIPRA_REGISTER_PARAMS(VIPRA_PARAM(
"gridSize", _cellSize));
23 VIPRA_PEDS_INIT_STEP
override;
24 VIPRA_PEDS_UPDATE_STEP
override;
25 VIPRA_PEDS_RESET
override;
27 [[nodiscard]]
auto conditional_closest_ped(
28 VIPRA::idx ped, std::function<
bool(VIPRA::idx)>
const& condition)
29 const -> VIPRA::idx
override;
30 [[nodiscard]]
auto closest_ped(VIPRA::idx ped)
const -> VIPRA::idx
override;
31 [[nodiscard]]
auto all_neighbors_within(VIPRA::idx pedIdx, VIPRA::f_pnt radius)
32 const -> std::vector<VIPRA::idx>
override;
35 VIPRA::f_pnt _cellSize{};
36 VIPRA::DataStructures::SpatialMap<VIPRA::idx> _spatialGrid;