diff options
| author | Claudius "keldu" Holeksa <mail@keldu.de> | 2025-12-19 14:11:57 +0100 |
|---|---|---|
| committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2025-12-19 14:11:57 +0100 |
| commit | 6a918f0827a6e8806f77e39e0348b1a2abed71f2 (patch) | |
| tree | 30e70bf0533e91a4aa9246de1dd3aa256c64d0c1 /lib/core/c++/particle | |
| parent | 434607c33deab6ad91cfeb203050138c108958ed (diff) | |
| download | libs-lbm-6a918f0827a6e8806f77e39e0348b1a2abed71f2.tar.gz | |
Rewriting large portion for simpler approach
Diffstat (limited to 'lib/core/c++/particle')
| -rw-r--r-- | lib/core/c++/particle/particle.hpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/core/c++/particle/particle.hpp b/lib/core/c++/particle/particle.hpp index 446e8a3..b647ebe 100644 --- a/lib/core/c++/particle/particle.hpp +++ b/lib/core/c++/particle/particle.hpp @@ -34,10 +34,11 @@ using ParticleCollisionSpheroid = Struct< Member<T, "radius"> >; -template<typename T, uint64_t D> +template<typename T, uint64_t D, typename CollisionType = ParticleCollisionSpheroid<T>> using Particle = Struct< Member<ParticleRigidBody<T,D>, "rigid_body">, Member<ParticleMask<T,D>, "mask">, + Member<CollisionType, "collision">, Member<T, "mass">, Member<T, "size"> >; @@ -65,6 +66,22 @@ constexpr auto verlet_step_lambda = [](saw::data<sch::Particle<T,D>>& particle, pos = pos_new; }; +/** +* +* +*/ +template<typename T, uint64_t> +constexpr auto broadphase_collision_check = [](saw::data<sch::Particle<T,D>>& left, saw::data<sch::Particle<T,D>>& right){ + auto rad_l = left.template get<"collision">().template get<"radius">(); + auto rad_r = right.template get<"collision">().template get<"radius">(); + + auto& rb_l = left.template get<"rigid_body">(); + auto& rb_r = right.template get<"rigid_body">(); + + auto& pos_l = rb_l.template get<"position">(); + auto& pos_r = rb_r.template get<"position">(); +} + template<typename T, uint64_t D, typename ParticleCollision = sch::ParticleMask<T,D> > class particle_system { private: |
