Mega Code Archive

 
Categories / C# / Development Class
 

Math Util for Xna

using Microsoft.Xna.Framework; namespace Innovation {     public static class MathUtil     {         // Generates a projection matrix for a draw call         public static Matrix CreateProjectionMatrix()         {             return Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4,                 (float)Engine.GraphicsDevice.Viewport.Width                 / (float)Engine.GraphicsDevice.Viewport.Height,                 .01f, 1000000);         }         // Creates a world matrix         public static Matrix CreateWorldMatrix(Vector3 Translation)         {             return CreateWorldMatrix(Translation, Matrix.Identity);         }         // Creates a world matrix         public static Matrix CreateWorldMatrix(Vector3 Translation,             Matrix Rotation)         {             return CreateWorldMatrix(Translation, Rotation, Vector3.One);         }         // Creates a world matrix         public static Matrix CreateWorldMatrix(Vector3 Translation,             Matrix Rotation, Vector3 Scale)         {             return Matrix.CreateScale(Scale) *                 Rotation *                 Matrix.CreateTranslation(Translation);         }         // Converts a rotation vector into a rotation matrix         public static Matrix Vector3ToMatrix(Vector3 Rotation)         {             return Matrix.CreateFromYawPitchRoll(Rotation.Y, Rotation.X, Rotation.Z);         }         // Converts a rotation matrix into a rotation vector         public static Vector3 MatrixToVector3(Matrix Rotation)         {             Quaternion q = Quaternion.CreateFromRotationMatrix(Rotation);             return new Vector3(q.X, q.Y, q.Z);         }     } }