14#include <lagrange/raycasting/RayCaster.h>
15#include <lagrange/utils/function_ref.h>
16#include <lagrange/utils/span.h>
20namespace lagrange::raycasting::internal {
26 using OrientedBox = RayCaster::OrientedBox;
28 static void overlap_obb(
30 const OrientedBox& obb,
33 rc.overlap_obb_internal(obb, callback);
41 std::variant<RayCaster::Mask16, size_t> active,
43 bool(uint32_t lane, uint32_t mesh_index, uint32_t instance_index, uint32_t facet_index)>
46 rc.overlap_obb16_internal(obbs, active, callback);
A lightweight non-owning reference to a callable.
Definition function_ref.h:47
A ray caster built on top of Embree that operates directly on SurfaceMesh and SimpleScene objects.
Definition RayCaster.h:196
::nonstd::span< T, Extent > span
A bounds-safe view for sequences of objects.
Definition span.h:27
Friend accessor to RayCaster's OBB overlap queries.
Definition RayCasterOBBAccess.h:25
static void overlap_obb16(const RayCaster &rc, span< const OrientedBox > obbs, std::variant< RayCaster::Mask16, size_t > active, lagrange::function_ref< bool(uint32_t lane, uint32_t mesh_index, uint32_t instance_index, uint32_t facet_index)> callback)
Packet-of-16 OBB overlap query.
Definition RayCasterOBBAccess.h:38