]> git.lizzy.rs Git - shadowclad.git/blobdiff - src/engine/geometry.c
Implement sliding and crossing grid cell boundaries
[shadowclad.git] / src / engine / geometry.c
index 3809d99dedce111f09028e2cbb7e6340d54a9db2..660a57bab7f51738b6ca8c893f32db23cabeeeab 100644 (file)
@@ -62,7 +62,11 @@ void rotate(Transform* transform, Vector axis, float angle) {
                *transform);
 }
 
-Vector addVectors(Vector v1, Vector v2){
+Vector zeroVector() {
+       return (Vector) { 0.0f, 0.0f, 0.0f };
+}
+
+Vector addVectors(Vector v1, Vector v2) {
        return (Vector) { v1.x + v2.x, v1.y + v2.y, v1.z + v2.z };
 }
 
@@ -130,3 +134,7 @@ Vector normalized(Vector vec) {
        float m = magnitude(vec);
        return (Vector) { vec.x / m, vec.y / m, vec.z / m };
 }
+
+float clamp(float x, float lower, float upper) {
+       return fmax(lower, fmin(upper, x));
+}