/// <summary> /// turns a postion and quaternion based orientation into a matrix format /// </summary> /// <param name="position"></param> /// <param name="orientation"></param> /// <returns></returns> private Matrix QuaternionToMatrixLookAt(Vector3D position, SceneLibrary.Quaternion orientation) { Microsoft.DirectX.Quaternion q_orientation = new Microsoft.DirectX.Quaternion((float)orientation.GetX(), (float)orientation.GetY(), (float)orientation.GetZ(), (float)orientation.GetR()); Matrix _matrixRotation = Matrix.RotationQuaternion(q_orientation); Vector3 camPos = new Vector3((float)position.GetX(), -(float)position.GetY(), (float)position.GetZ()); Vector3 camTY = new Vector3(_matrixRotation.M21, _matrixRotation.M22, _matrixRotation.M23); Vector3 camTZ = new Vector3(-(_matrixRotation.M31), -(_matrixRotation.M32), -(_matrixRotation.M33)); return (Matrix.LookAtLH(camPos, camPos + camTZ, camTY)); //float yaw = 0, pitch = 0, roll = 0; //DecomposeRollPitchYawZXYMatrix(_matrixRotation, ref pitch, ref yaw, ref roll); //return (Matrix.RotationYawPitchRoll((float)yaw, (float)pitch, (float)roll) * Matrix.LookAtLH(camPos, camPos + camTZ, camTY)); //return (Matrix.RotationYawPitchRoll(0, 0, (float)roll) * Matrix.LookAtLH(camPos, camPos + camTZ, camTY)); }
public void AffineTransformation (float scaling, Vector3 rotationCenter, Quaternion rotation, Vector3 translation) { throw new NotImplementedException (); }
public void RotateQuaternion (Quaternion quat) { throw new NotImplementedException (); }
public void Transform (Vector3 scalingCenter, Quaternion scalingRotation, Vector3 scalingFactor, Vector3 rotationCenter, Quaternion rotation, Vector3 translation) { throw new NotImplementedException (); }
public static Matrix RotationQuaternion (Quaternion quat) { throw new NotImplementedException (); }