Rotate this angle
radians around axis
Source
void rotate(Vector3 axis, double angle) { var len = axis.length; final axisStorage = axis._v3storage; var x = axisStorage[0] / len; var y = axisStorage[1] / len; var z = axisStorage[2] / len; var c = Math.cos(angle); var s = Math.sin(angle); var C = 1.0 - c; var m11 = x * x * C + c; var m12 = x * y * C - z * s; var m13 = x * z * C + y * s; var m21 = y * x * C + z * s; var m22 = y * y * C + c; var m23 = y * z * C - x * s; var m31 = z * x * C - y * s; var m32 = z * y * C + x * s; var m33 = z * z * C + c; var t1 = _m4storage[0] * m11 + _m4storage[4] * m21 + _m4storage[8] * m31; var t2 = _m4storage[1] * m11 + _m4storage[5] * m21 + _m4storage[9] * m31; var t3 = _m4storage[2] * m11 + _m4storage[6] * m21 + _m4storage[10] * m31; var t4 = _m4storage[3] * m11 + _m4storage[7] * m21 + _m4storage[11] * m31; var t5 = _m4storage[0] * m12 + _m4storage[4] * m22 + _m4storage[8] * m32; var t6 = _m4storage[1] * m12 + _m4storage[5] * m22 + _m4storage[9] * m32; var t7 = _m4storage[2] * m12 + _m4storage[6] * m22 + _m4storage[10] * m32; var t8 = _m4storage[3] * m12 + _m4storage[7] * m22 + _m4storage[11] * m32; var t9 = _m4storage[0] * m13 + _m4storage[4] * m23 + _m4storage[8] * m33; var t10 = _m4storage[1] * m13 + _m4storage[5] * m23 + _m4storage[9] * m33; var t11 = _m4storage[2] * m13 + _m4storage[6] * m23 + _m4storage[10] * m33; var t12 = _m4storage[3] * m13 + _m4storage[7] * m23 + _m4storage[11] * m33; _m4storage[0] = t1; _m4storage[1] = t2; _m4storage[2] = t3; _m4storage[3] = t4; _m4storage[4] = t5; _m4storage[5] = t6; _m4storage[6] = t7; _m4storage[7] = t8; _m4storage[8] = t9; _m4storage[9] = t10; _m4storage[10] = t11; _m4storage[11] = t12; }