From 081be0a0f195f29161f25f0fec78708d12ef3a42 Mon Sep 17 00:00:00 2001
From: Sara <sara@saragerretsen.nl>
Date: Tue, 24 Oct 2023 23:50:10 +0200
Subject: [PATCH] constraints now affect velocity

---
 src/physics_entity.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/physics_entity.c b/src/physics_entity.c
index 0752109..a19dd36 100644
--- a/src/physics_entity.c
+++ b/src/physics_entity.c
@@ -78,6 +78,10 @@ void physics_entity_solve_contacts(PhysicsEntity self, List* contacts) {
         if(iteration == 1)
             LOG_WARNING("gave up on solving %zu contacts", contacts->len);
     }
+    Vector dir = vnormalizedf(vsubf(rigidbody_get_transform(body)->position, pre_solve.position));
+    Vector vel = rigidbody_get_velocity(body);
+    vel = vsubf(vel, vprojectf(dir, vel));
+    rigidbody_set_velocity(body, vel);
 }
 
 void physics_entity_update(PhysicsEntity self) {