Vector3RotateByQuaternion function
Rotate v by quaternion q using the sandwich product v' = q·v·q⁻¹.
Implementation
Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q) {
final qv = Vector3(q.x, q.y, q.z);
return v.scaled(q.w * q.w - qv.dot(qv)) +
qv.scaled(2.0 * qv.dot(v)) +
qv.cross(v).scaled(2.0 * q.w);
}