For convenience, provide bezier curve functions globally.
authorRudolf Polzer <divverent@xonotic.org>
Sat, 1 Mar 2014 11:32:37 +0000 (12:32 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Sat, 1 Mar 2014 11:32:37 +0000 (12:32 +0100)
qcsrc/common/util.qc
qcsrc/common/util.qh

index bdf80e5..c50a3ba 100644 (file)
@@ -2789,3 +2789,18 @@ float Mod_Q1BSP_NativeContentsFromSuperContents(float supercontents)
        return CONTENT_EMPTY;
 }
 #endif
+
+vector bezier_quadratic_getpoint(vector a, vector b, vector c, float t)
+{
+       return
+               (c - 2 * b + a) * (t * t) +
+               (b - a) * (2 * t) +
+               a;
+}
+
+vector bezier_quadratic_getderivative(vector a, vector b, vector c, float t)
+{
+       return
+               (c - 2 * b + a) * (2 * t) +
+               (b - a) * 2;
+}
index 820f4f5..503aa2d 100644 (file)
@@ -441,3 +441,7 @@ float Announcer_PickNumber(float type, float num);
 float Mod_Q1BSP_SuperContentsFromNativeContents(float nativecontents);
 float Mod_Q1BSP_NativeContentsFromSuperContents(float supercontents);
 #endif
+
+// Quadratic splines (bezier)
+vector bezier_quadratic_getpoint(vector a, vector p, vector b, float t);
+vector bezier_quadratic_getderivative(vector a, vector p, vector b, float t);