]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
deglob wzl/anglestransform.qh
authorMartin Taibr <taibr.martin@gmail.com>
Wed, 14 Nov 2018 22:12:30 +0000 (23:12 +0100)
committerMartin Taibr <taibr.martin@gmail.com>
Wed, 14 Nov 2018 22:12:30 +0000 (23:12 +0100)
qcsrc/lib/deglobalization.qh
qcsrc/lib/warpzone/anglestransform.qc

index 73c92fc03fd2055d4e12da9dd037c3d4159c1319..315ff6d6a36a963ab4e6b75418ecab346d1546f8 100644 (file)
@@ -38,6 +38,11 @@ STATIC_INIT(globals) {
        //LOG_INFOF("%f\n", x == x);
        //LOG_INFOF("%f\n", x != x);
 
+       //float y = __builtin_nan();
+       //LOG_INFOF("%f\n", y);
+       //LOG_INFOF("%f\n", y == y);
+       //LOG_INFOF("%f\n", __builtin_isnan(y));
+
        CLEAR_V_GLOBALS();
 }
 #endif
index 9e98199f34be62fcd74fd742dc329f900c169d32..f5ec6730a82bb0289914578666bbedc57b97e5a1 100644 (file)
@@ -4,34 +4,32 @@
 // angles in fixedmakevectors/fixedvectoangles space
 vector AnglesTransform_Apply(vector transform, vector v)
 {
-       fixedmakevectors(transform);
-       return v_forward * v.x
-               + v_right   * (-v.y)
-               + v_up      * v.z;
+       FIXED_MAKE_VECTORS_NEW(transform, forward, right, up);
+       return forward * v.x + right * (-v.y) + up * v.z;
 }
 
 vector AnglesTransform_Multiply(vector t1, vector t2)
 {
-       vector m_forward, m_up;
-       fixedmakevectors(t2); m_forward = v_forward; m_up = v_up;
-       m_forward = AnglesTransform_Apply(t1, m_forward); m_up = AnglesTransform_Apply(t1, m_up);
-       return fixedvectoangles2(m_forward, m_up);
+       FIXED_MAKE_VECTORS_NEW(t2, forward, right, up);
+       forward = AnglesTransform_Apply(t1, forward);
+       up = AnglesTransform_Apply(t1, up);
+       return fixedvectoangles2(forward, up);
 }
 
 vector AnglesTransform_Invert(vector transform)
 {
        vector i_forward, i_up;
-       fixedmakevectors(transform);
-       // we want angles that turn v_forward into '1 0 0', v_right into '0 1 0' and v_up into '0 0 1'
+       FIXED_MAKE_VECTORS_NEW(transform, forward, right, up);
+       // we want angles that turn forward into '1 0 0', right into '0 1 0' and up into '0 0 1'
        // but these are orthogonal unit vectors!
        // so to invert, we can simply fixedvectoangles the TRANSPOSED matrix
        // TODO is this always -transform?
-       i_forward.x = v_forward.x;
-       i_forward.y = -v_right.x;
-       i_forward.z = v_up.x;
-       i_up.x = v_forward.z;
-       i_up.y = -v_right.z;
-       i_up.z = v_up.z;
+       i_forward.x = forward.x;
+       i_forward.y = -right.x;
+       i_forward.z = up.x;
+       i_up.x = forward.z;
+       i_up.y = -right.z;
+       i_up.z = up.z;
        return fixedvectoangles2(i_forward, i_up);
 }