Find all entities within a radius of a point.
239{
240 std::vector<QueryResult> results;
242
243#ifdef MAYAFLUX_PLATFORM_MACOS
244 auto [snap, slot] = acquire_snapshot();
245 if (!snap) {
246 return results;
247 }
248#else
249 auto snap_ptr =
m_snapshot.load(std::memory_order_acquire);
250 if (!snap_ptr) {
251 return results;
252 }
253 const auto* snap = snap_ptr.get();
254#endif
255
257 query_grid(*snap, center, radius_sq, results);
258 } else {
260 }
261
262#ifdef MAYAFLUX_PLATFORM_MACOS
263 release_snapshot(slot);
264#endif
265
266 return results;
267}
void query_grid(const SpatialSnapshot< PointT > &snap, const PointT ¢er, float radius_sq, std::vector< QueryResult > &out) const
void query_brute(const SpatialSnapshot< PointT > &snap, const PointT ¢er, float radius_sq, std::vector< QueryResult > &out) const
std::atomic< std::shared_ptr< const SpatialSnapshot< PointT > > > m_snapshot