From f3e4d97af48feea46a82f8d4546e0157e05a4b5c Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Tue, 6 Jan 2026 13:54:02 +0100 Subject: New heterogenic module for playing around in free time Also changed particle broadphase --- lib/core/c++/particle/particle.hpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'lib/core/c++') diff --git a/lib/core/c++/particle/particle.hpp b/lib/core/c++/particle/particle.hpp index 3089378..6147a10 100644 --- a/lib/core/c++/particle/particle.hpp +++ b/lib/core/c++/particle/particle.hpp @@ -66,12 +66,9 @@ constexpr auto verlet_step_lambda = [](saw::data>& particle, pos = pos_new; }; -/** -* -* -*/ + template -constexpr auto broadphase_collision_check = [](saw::data>& left, saw::data>& right){ +constexpr auto broadphase_collision_distance = [](saw::data>& left, saw::data>& right) -> std::pair>>{ auto rad_l = left.template get<"collision">().template get<"radius">(); auto rad_r = right.template get<"collision">().template get<"radius">(); @@ -87,7 +84,15 @@ constexpr auto broadphase_collision_check = [](saw::data>& le auto rad_ab_2 = rad_l * rad_l + rad_r * rad_r + rad_r * rad_l * static_cast::type>(2); - return (norm_2.at({}).get() < rad_ab_2.get()); + return std::make_pair((norm_2.at({}).get() < rad_ab_2.get()), norm_2); +}; +/** +* +* +*/ +template +constexpr auto broadphase_collision_check = [](saw::data>& left, saw::data>& right) -> bool{ + return broadphase_collision_distance(left,right).first; }; template > -- cgit v1.2.3