Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript_d3d_transform_add_rotation_axis

(view raw script w/o annotations or w/e)
1
function d3d_transform_add_rotation_axis(arg0, arg1, arg2, arg3)
2
{
3
    var c = dcos(-arg3);
4
    var s = dsin(-arg3);
5
    var omc = 1 - c;
6
    var xx = arg0;
7
    var yy = arg1;
8
    var zz = arg2;
9
    var length2 = sqr(xx) + sqr(yy) + sqr(zz);
10
    var length = sqrt(length2);
11
    xx /= length;
12
    yy /= length;
13
    zz /= length;
14
    var mT;
15
    mT[0] = (omc * xx * xx) + c;
16
    mT[1] = (omc * xx * yy) + (s * zz);
17
    mT[2] = (omc * xx * zz) - (s * yy);
18
    mT[3] = 0;
19
    mT[4] = (omc * xx * yy) - (s * zz);
20
    mT[5] = (omc * yy * yy) + c;
21
    mT[6] = (omc * yy * zz) + (s * xx);
22
    mT[7] = 0;
23
    mT[8] = (omc * xx * zz) + (s * yy);
24
    mT[9] = (omc * yy * zz) - (s * xx);
25
    mT[10] = (omc * zz * zz) + c;
26
    mT[11] = 0;
27
    mT[12] = 0;
28
    mT[13] = 0;
29
    mT[14] = 0;
30
    mT[15] = 1;
31
    var m = matrix_get(2);
32
    var mR = matrix_multiply(m, mT);
33
    matrix_set(2, mR);
34
}