rotate method
Rotates v
by this.
Implementation
Vector3 rotate(Vector3 v) {
// conjugate(this) * [v,0] * this
final w = _qStorage[3];
final z = _qStorage[2];
final y = _qStorage[1];
final x = _qStorage[0];
final tiw = w;
final tiz = -z;
final tiy = -y;
final tix = -x;
final tx = tiw * v.x + tix * 0.0 + tiy * v.z - tiz * v.y;
final ty = tiw * v.y + tiy * 0.0 + tiz * v.x - tix * v.z;
final tz = tiw * v.z + tiz * 0.0 + tix * v.y - tiy * v.x;
final tw = tiw * 0.0 - tix * v.x - tiy * v.y - tiz * v.z;
final result_x = tw * x + tx * w + ty * z - tz * y;
final result_y = tw * y + ty * w + tz * x - tx * z;
final result_z = tw * z + tz * w + tx * y - ty * x;
final vStorage = v.storage;
vStorage[2] = result_z;
vStorage[1] = result_y;
vStorage[0] = result_x;
return v;
}