66 source_info->m_source =
std::move(source);
72 group->push_back(source_info);
73 m_groups[source_info->m_group_id] = group;
76 auto sources =
m_tree.getPointsWithinRange({source_info->m_x, source_info->m_y},
m_max_range);
79 for (
auto& s : sources) {
81 if (matching_groups.
find(s->m_group_id) == matching_groups.
end() &&
83 matching_groups.
insert(s->m_group_id);
88 for (
auto group_id : matching_groups) {
94 group->insert(group->end(),
m_groups.at(group_id)->begin(),
m_groups.at(group_id)->end());
99 for (
auto& s : *group) {
100 s->m_group_id = source_info->m_group_id;