//Operators public static MyQuat operator *(MyQuat q, MyQuat p) { MyQuat m = new MyQuat(); m.w = (p.w * q.w - p.x * q.x - p.y * q.y - p.z * q.z); m.x = (p.w * q.x + p.x * q.w - p.y * q.z + p.z * q.y); m.y = (p.w * q.y + p.x * q.z + p.y * q.w - p.z * q.x); m.z = (p.w * q.z - p.x * q.y + p.y * q.x + p.z * q.w); m.Normalize(); return(m); }
public static MyQuat FromAxisAngle(axisAngle axis) { MyQuat q = new MyQuat(); q.w = Mathf.Cos(axis.w / 2); q.x = axis.x * Mathf.Sin(axis.w / 2); q.y = axis.y * Mathf.Sin(axis.w / 2); q.z = axis.z * Mathf.Sin(axis.w / 2); q.Normalize(); return(q); }