void PhysicsSystem::ResolveCollision(const TransformPtr &ball_transform, const vec3 &normal, const vec3 &intersection) { BallComponentPtr ball_comp = ball_comp_mapper_(ball_); ball_transform->set_position(intersection); vec3 direction = ball_comp->velocity; vec3 w = glm::dot(normal, -direction) * normal; vec3 result = w + (w + direction); ball_comp->velocity = result; }