export function rotateRxRyRz(d, a, b, g){
    var cosa = Math.cos(a), sina = Math.sin(a);
    var cosb = Math.cos(b), sinb = Math.sin(b);
    var cosc = Math.cos(g), sinc = Math.sin(g);

    var a1 = cosa * cosb, a2 = cosa * sinb * sinc - sina * cosc, a3 = cosa * sinb * cosc + sina * sinc;
    var b1 = sina * cosb, b2 = sina * sinb * sinc + cosa * cosc, b3 = sina * sinb * cosc - cosa * sinc;
    var c1 = -sinb, c2 = cosb * sinc, c3 = cosb * cosc;

    return {
        x: a1 * d.x + a2 * d.y + a3 * d.z,
        y: b1 * d.x + b2 * d.y + b3 * d.z,
        z: c1 * d.x + c2 * d.y + c3 * d.z
    };
}

// export function rotateY(d, a, b, g){
// 	return {
// 		x: d.x,
// 		y: d.y * Math.cos(a) - d.z * Math.sin(a),
// 		z: d.z * Math.sin(a) + d.z * Math.cos(a)
// 	};
// }

@@ -43,132 +43,175 @@
     
-var cosa = Math.cos(a), sina = Math.sin(a);%0A    var cosb = Math.cos(b), sinb = Math.sin(b
+// b = y, g = x, z = a%0A    d.z = -d.z;%0A    d.y = -d.y;%0A%0A    var ry = rotateY(d,  b);%0A    var rx = rotateX(ry, g
 );%0A
+%0A
     
-var cosc = Math.cos(g), sinc
+return rx;%0A%7D%0A%0Afunction rotateX(d, a)%7B%0A    var sa
  = M
@@ -222,21 +222,20 @@
 sin(
-g
+a
 );%0A
-%0A
     var 
 a1 =
@@ -234,207 +234,151 @@
 var 
+c
 a
-1
  = 
-cosa * cosb, a2 = cosa * sinb * sinc - sina * cosc, a3 = cosa * sinb * cosc + sina * sinc;%0A    var b1 = sina * cosb, b2 = sina * sinb * sinc + cosa * cosc, b3 = sina * sinb * cosc - cosa * sinc;
+Math.cos(a);%0A    return %7B%0A        x: d.x,%0A        y: d.y * ca - d.z * sa,%0A        z: d.y * sa + d.z * ca%0A    %7D;%0A%7D%0A%0Afunction rotateY(d, a)%7B
 %0A   
@@ -386,197 +386,143 @@
 var 
-c1 = -sinb, c2 = cosb * sinc, c3 = cosb * cosc;%0A%0A    return %7B%0A        x: a1 * d.x + a2 * d.y + a3 * d.z,%0A        y: b1 * d.x + b2 * d.y + b3 * d.z,%0A        z: c1 * d.x + c2 * d.y + c3 * d.z
+sa = Math.sin(a);%0A    var ca = Math.cos(a);%0A    return %7B%0A        x: d.z * sa + d.x * ca,%0A        y: d.y,%0A        z: d.z * ca - d.x * sa
 %0A   
@@ -532,18 +532,8 @@
 %0A%7D%0A%0A
-// export 
 func
@@ -547,150 +547,166 @@
 tate
-Y
+Z
 (d, a
-, b, g)%7B%0A// %09return %7B%0A// %09%09x: d.x,%0A// %09%09y: d.y * Math.cos(a)
+)%7B%0A    var sa = Math.sin(a);%0A    var ca = Math.cos(a);%0A    return %7B%0A        x: d.x * ca
  - d.
-z * Math.sin(a),%0A// %09%09z
+y * sa,%0A        y
 : d.
-z * Math.sin(a)
+y * sa
  + d.
-z * Math.cos(a)%0A// %09%7D;%0A// 
+y * ca,%0A        z: d.z%0A    %7D;%0A
 %7D%0A

change order of rotation