diff --git a/Lidgren XNA Extensions/Lidgren XNA Extensions.sln b/Lidgren XNA Extensions/Lidgren XNA Extensions.sln deleted file mode 100644 index e026a2b..0000000 --- a/Lidgren XNA Extensions/Lidgren XNA Extensions.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lidgren XNA Extensions", "Lidgren XNA Extensions\Lidgren XNA Extensions.csproj", "{2B661ABD-63A8-4916-A94B-034729231271}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lidgren.Network", "..\Lidgren.Network\Lidgren.Network.csproj", "{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2B661ABD-63A8-4916-A94B-034729231271}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B661ABD-63A8-4916-A94B-034729231271}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B661ABD-63A8-4916-A94B-034729231271}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B661ABD-63A8-4916-A94B-034729231271}.Release|Any CPU.Build.0 = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Lidgren XNA Extensions/Lidgren XNA Extensions/Lidgren XNA Extensions.csproj b/Lidgren XNA Extensions/Lidgren XNA Extensions/Lidgren XNA Extensions.csproj deleted file mode 100644 index f6ee81a..0000000 --- a/Lidgren XNA Extensions/Lidgren XNA Extensions/Lidgren XNA Extensions.csproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {2B661ABD-63A8-4916-A94B-034729231271} - Library - Properties - Lidgren.Network.Xna - Lidgren.Network.Xna - v4.0 - 512 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - AllRules.ruleset - - - - - - 3.5 - - - - - - - - - {FA245447-5F23-4AA1-BD5F-8D2DDF33CFBD} - Lidgren.Network - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - - - \ No newline at end of file diff --git a/Lidgren XNA Extensions/Lidgren XNA Extensions/Properties/AssemblyInfo.cs b/Lidgren XNA Extensions/Lidgren XNA Extensions/Properties/AssemblyInfo.cs deleted file mode 100644 index f71e8ae..0000000 --- a/Lidgren XNA Extensions/Lidgren XNA Extensions/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Lidgren XNA Extensions")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("Lidgren XNA Extensions")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f9189a05-8455-4b82-b114-a806db01c367")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Lidgren XNA Extensions/Lidgren XNA Extensions/XNAExtensions.cs b/Lidgren XNA Extensions/XNAExtensions.cs similarity index 96% rename from Lidgren XNA Extensions/Lidgren XNA Extensions/XNAExtensions.cs rename to Lidgren XNA Extensions/XNAExtensions.cs index af8c664..204c6d0 100644 --- a/Lidgren XNA Extensions/Lidgren XNA Extensions/XNAExtensions.cs +++ b/Lidgren XNA Extensions/XNAExtensions.cs @@ -1,296 +1,296 @@ -using System; -using System.Collections.Generic; - -using Lidgren.Network; - -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics.PackedVector; - -namespace Lidgren.Network.Xna -{ - public static class XNAExtensions - { - /// - /// Write a Point - /// - public static void Write(this NetBuffer message, Point value) - { - message.Write(value.X); - message.Write(value.Y); - } - - /// - /// Read a Point - /// - public static Point ReadPoint(this NetBuffer message) - { - return new Point(message.ReadInt32(), message.ReadInt32()); - } - - /// - /// Write a Single with half precision (16 bits) - /// - public static void WriteHalfPrecision(this NetBuffer message, float value) - { - message.Write(new HalfSingle(value).PackedValue); - } - - /// - /// Reads a half precision Single written using WriteHalfPrecision(float) - /// - public static float ReadHalfPrecisionSingle(this NetBuffer message) - { - HalfSingle h = new HalfSingle(); - h.PackedValue = message.ReadUInt16(); - return h.ToSingle(); - } - - /// - /// Writes a Vector2 - /// - public static void Write(this NetBuffer message, Vector2 vector) - { - message.Write(vector.X); - message.Write(vector.Y); - } - - /// - /// Reads a Vector2 - /// - public static Vector2 ReadVector2(this NetBuffer message) - { - Vector2 retval; - retval.X = message.ReadSingle(); - retval.Y = message.ReadSingle(); - return retval; - } - - /// - /// Writes a Vector3 - /// - public static void Write(this NetBuffer message, Vector3 vector) - { - message.Write(vector.X); - message.Write(vector.Y); - message.Write(vector.Z); - } - - /// - /// Writes a Vector3 at half precision - /// - public static void WriteHalfPrecision(this NetBuffer message, Vector3 vector) - { - message.Write(new HalfSingle(vector.X).PackedValue); - message.Write(new HalfSingle(vector.Y).PackedValue); - message.Write(new HalfSingle(vector.Z).PackedValue); - } - - /// - /// Reads a Vector3 - /// - public static Vector3 ReadVector3(this NetBuffer message) - { - Vector3 retval; - retval.X = message.ReadSingle(); - retval.Y = message.ReadSingle(); - retval.Z = message.ReadSingle(); - return retval; - } - - /// - /// Writes a Vector3 at half precision - /// - public static Vector3 ReadHalfPrecisionVector3(this NetBuffer message) - { - HalfSingle hx = new HalfSingle(); - hx.PackedValue = message.ReadUInt16(); - - HalfSingle hy = new HalfSingle(); - hy.PackedValue = message.ReadUInt16(); - - HalfSingle hz = new HalfSingle(); - hz.PackedValue = message.ReadUInt16(); - - Vector3 retval; - retval.X = hx.ToSingle(); - retval.Y = hy.ToSingle(); - retval.Z = hz.ToSingle(); - return retval; - } - - /// - /// Writes a Vector4 - /// - public static void Write(this NetBuffer message, Vector4 vector) - { - message.Write(vector.X); - message.Write(vector.Y); - message.Write(vector.Z); - message.Write(vector.W); - } - - /// - /// Reads a Vector4 - /// - public static Vector4 ReadVector4(this NetBuffer message) - { - Vector4 retval; - retval.X = message.ReadSingle(); - retval.Y = message.ReadSingle(); - retval.Z = message.ReadSingle(); - retval.W = message.ReadSingle(); - return retval; - } - - - /// - /// Writes a unit vector (ie. a vector of length 1.0, for example a surface normal) - /// using specified number of bits - /// - public static void WriteUnitVector3(this NetBuffer message, Vector3 unitVector, int numberOfBits) - { - float x = unitVector.X; - float y = unitVector.Y; - float z = unitVector.Z; - double invPi = 1.0 / Math.PI; - float phi = (float)(Math.Atan2(x, y) * invPi); - float theta = (float)(Math.Atan2(z, Math.Sqrt(x * x + y * y)) * (invPi * 2)); - - int halfBits = numberOfBits / 2; - message.WriteSignedSingle(phi, halfBits); - message.WriteSignedSingle(theta, numberOfBits - halfBits); - } - - /// - /// Reads a unit vector written using WriteUnitVector3(numberOfBits) - /// - public static Vector3 ReadUnitVector3(this NetBuffer message, int numberOfBits) - { - int halfBits = numberOfBits / 2; - float phi = message.ReadSignedSingle(halfBits) * (float)Math.PI; - float theta = message.ReadSignedSingle(numberOfBits - halfBits) * (float)(Math.PI * 0.5); - - Vector3 retval; - retval.X = (float)(Math.Sin(phi) * Math.Cos(theta)); - retval.Y = (float)(Math.Cos(phi) * Math.Cos(theta)); - retval.Z = (float)Math.Sin(theta); - - return retval; - } - - /// - /// Writes a unit quaternion using the specified number of bits per element - /// for a total of 4 x bitsPerElements bits. Suggested value is 8 to 24 bits. - /// - public static void WriteRotation(this NetBuffer message, Quaternion quaternion, int bitsPerElement) - { - if (quaternion.X > 1.0f) - quaternion.X = 1.0f; - if (quaternion.Y > 1.0f) - quaternion.Y = 1.0f; - if (quaternion.Z > 1.0f) - quaternion.Z = 1.0f; - if (quaternion.W > 1.0f) - quaternion.W = 1.0f; - if (quaternion.X < -1.0f) - quaternion.X = -1.0f; - if (quaternion.Y < -1.0f) - quaternion.Y = -1.0f; - if (quaternion.Z < -1.0f) - quaternion.Z = -1.0f; - if (quaternion.W < -1.0f) - quaternion.W = -1.0f; - - message.WriteSignedSingle(quaternion.X, bitsPerElement); - message.WriteSignedSingle(quaternion.Y, bitsPerElement); - message.WriteSignedSingle(quaternion.Z, bitsPerElement); - message.WriteSignedSingle(quaternion.W, bitsPerElement); - } - - /// - /// Reads a unit quaternion written using WriteRotation(... ,bitsPerElement) - /// - public static Quaternion ReadRotation(this NetBuffer message, int bitsPerElement) - { - Quaternion retval; - retval.X = message.ReadSignedSingle(bitsPerElement); - retval.Y = message.ReadSignedSingle(bitsPerElement); - retval.Z = message.ReadSignedSingle(bitsPerElement); - retval.W = message.ReadSignedSingle(bitsPerElement); - return retval; - } - - /// - /// Writes an orthonormal matrix (rotation, translation but not scaling or projection) - /// - public static void WriteMatrix(this NetBuffer message, ref Matrix matrix) - { - Quaternion rot = Quaternion.CreateFromRotationMatrix(matrix); - WriteRotation(message, rot, 24); - message.Write(matrix.M41); - message.Write(matrix.M42); - message.Write(matrix.M43); - } - - /// - /// Writes an orthonormal matrix (rotation, translation but no scaling or projection) - /// - public static void WriteMatrix(this NetBuffer message, Matrix matrix) - { - Quaternion rot = Quaternion.CreateFromRotationMatrix(matrix); - WriteRotation(message, rot, 24); - message.Write(matrix.M41); - message.Write(matrix.M42); - message.Write(matrix.M43); - } - - /// - /// Reads a matrix written using WriteMatrix() - /// - public static Matrix ReadMatrix(this NetBuffer message) - { - Quaternion rot = ReadRotation(message, 24); - Matrix retval = Matrix.CreateFromQuaternion(rot); - retval.M41 = message.ReadSingle(); - retval.M42 = message.ReadSingle(); - retval.M43 = message.ReadSingle(); - return retval; - } - - /// - /// Reads a matrix written using WriteMatrix() - /// - public static void ReadMatrix(this NetBuffer message, ref Matrix destination) - { - Quaternion rot = ReadRotation(message, 24); - destination = Matrix.CreateFromQuaternion(rot); - destination.M41 = message.ReadSingle(); - destination.M42 = message.ReadSingle(); - destination.M43 = message.ReadSingle(); - } - - /// - /// Writes a bounding sphere - /// - public static void Write(this NetBuffer message, BoundingSphere bounds) - { - message.Write(bounds.Center.X); - message.Write(bounds.Center.Y); - message.Write(bounds.Center.Z); - message.Write(bounds.Radius); - } - - /// - /// Reads a bounding sphere written using Write(message, BoundingSphere) - /// - public static BoundingSphere ReadBoundingSphere(this NetBuffer message) - { - BoundingSphere retval; - retval.Center.X = message.ReadSingle(); - retval.Center.Y = message.ReadSingle(); - retval.Center.Z = message.ReadSingle(); - retval.Radius = message.ReadSingle(); - return retval; - } - } -} +using System; +using System.Collections.Generic; + +using Lidgren.Network; + +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics.PackedVector; + +namespace Lidgren.Network.Xna +{ + public static class XNAExtensions + { + /// + /// Write a Point + /// + public static void Write(this NetBuffer message, Point value) + { + message.Write(value.X); + message.Write(value.Y); + } + + /// + /// Read a Point + /// + public static Point ReadPoint(this NetBuffer message) + { + return new Point(message.ReadInt32(), message.ReadInt32()); + } + + /// + /// Write a Single with half precision (16 bits) + /// + public static void WriteHalfPrecision(this NetBuffer message, float value) + { + message.Write(new HalfSingle(value).PackedValue); + } + + /// + /// Reads a half precision Single written using WriteHalfPrecision(float) + /// + public static float ReadHalfPrecisionSingle(this NetBuffer message) + { + HalfSingle h = new HalfSingle(); + h.PackedValue = message.ReadUInt16(); + return h.ToSingle(); + } + + /// + /// Writes a Vector2 + /// + public static void Write(this NetBuffer message, Vector2 vector) + { + message.Write(vector.X); + message.Write(vector.Y); + } + + /// + /// Reads a Vector2 + /// + public static Vector2 ReadVector2(this NetBuffer message) + { + Vector2 retval; + retval.X = message.ReadSingle(); + retval.Y = message.ReadSingle(); + return retval; + } + + /// + /// Writes a Vector3 + /// + public static void Write(this NetBuffer message, Vector3 vector) + { + message.Write(vector.X); + message.Write(vector.Y); + message.Write(vector.Z); + } + + /// + /// Writes a Vector3 at half precision + /// + public static void WriteHalfPrecision(this NetBuffer message, Vector3 vector) + { + message.Write(new HalfSingle(vector.X).PackedValue); + message.Write(new HalfSingle(vector.Y).PackedValue); + message.Write(new HalfSingle(vector.Z).PackedValue); + } + + /// + /// Reads a Vector3 + /// + public static Vector3 ReadVector3(this NetBuffer message) + { + Vector3 retval; + retval.X = message.ReadSingle(); + retval.Y = message.ReadSingle(); + retval.Z = message.ReadSingle(); + return retval; + } + + /// + /// Writes a Vector3 at half precision + /// + public static Vector3 ReadHalfPrecisionVector3(this NetBuffer message) + { + HalfSingle hx = new HalfSingle(); + hx.PackedValue = message.ReadUInt16(); + + HalfSingle hy = new HalfSingle(); + hy.PackedValue = message.ReadUInt16(); + + HalfSingle hz = new HalfSingle(); + hz.PackedValue = message.ReadUInt16(); + + Vector3 retval; + retval.X = hx.ToSingle(); + retval.Y = hy.ToSingle(); + retval.Z = hz.ToSingle(); + return retval; + } + + /// + /// Writes a Vector4 + /// + public static void Write(this NetBuffer message, Vector4 vector) + { + message.Write(vector.X); + message.Write(vector.Y); + message.Write(vector.Z); + message.Write(vector.W); + } + + /// + /// Reads a Vector4 + /// + public static Vector4 ReadVector4(this NetBuffer message) + { + Vector4 retval; + retval.X = message.ReadSingle(); + retval.Y = message.ReadSingle(); + retval.Z = message.ReadSingle(); + retval.W = message.ReadSingle(); + return retval; + } + + + /// + /// Writes a unit vector (ie. a vector of length 1.0, for example a surface normal) + /// using specified number of bits + /// + public static void WriteUnitVector3(this NetBuffer message, Vector3 unitVector, int numberOfBits) + { + float x = unitVector.X; + float y = unitVector.Y; + float z = unitVector.Z; + double invPi = 1.0 / Math.PI; + float phi = (float)(Math.Atan2(x, y) * invPi); + float theta = (float)(Math.Atan2(z, Math.Sqrt(x * x + y * y)) * (invPi * 2)); + + int halfBits = numberOfBits / 2; + message.WriteSignedSingle(phi, halfBits); + message.WriteSignedSingle(theta, numberOfBits - halfBits); + } + + /// + /// Reads a unit vector written using WriteUnitVector3(numberOfBits) + /// + public static Vector3 ReadUnitVector3(this NetBuffer message, int numberOfBits) + { + int halfBits = numberOfBits / 2; + float phi = message.ReadSignedSingle(halfBits) * (float)Math.PI; + float theta = message.ReadSignedSingle(numberOfBits - halfBits) * (float)(Math.PI * 0.5); + + Vector3 retval; + retval.X = (float)(Math.Sin(phi) * Math.Cos(theta)); + retval.Y = (float)(Math.Cos(phi) * Math.Cos(theta)); + retval.Z = (float)Math.Sin(theta); + + return retval; + } + + /// + /// Writes a unit quaternion using the specified number of bits per element + /// for a total of 4 x bitsPerElements bits. Suggested value is 8 to 24 bits. + /// + public static void WriteRotation(this NetBuffer message, Quaternion quaternion, int bitsPerElement) + { + if (quaternion.X > 1.0f) + quaternion.X = 1.0f; + if (quaternion.Y > 1.0f) + quaternion.Y = 1.0f; + if (quaternion.Z > 1.0f) + quaternion.Z = 1.0f; + if (quaternion.W > 1.0f) + quaternion.W = 1.0f; + if (quaternion.X < -1.0f) + quaternion.X = -1.0f; + if (quaternion.Y < -1.0f) + quaternion.Y = -1.0f; + if (quaternion.Z < -1.0f) + quaternion.Z = -1.0f; + if (quaternion.W < -1.0f) + quaternion.W = -1.0f; + + message.WriteSignedSingle(quaternion.X, bitsPerElement); + message.WriteSignedSingle(quaternion.Y, bitsPerElement); + message.WriteSignedSingle(quaternion.Z, bitsPerElement); + message.WriteSignedSingle(quaternion.W, bitsPerElement); + } + + /// + /// Reads a unit quaternion written using WriteRotation(... ,bitsPerElement) + /// + public static Quaternion ReadRotation(this NetBuffer message, int bitsPerElement) + { + Quaternion retval; + retval.X = message.ReadSignedSingle(bitsPerElement); + retval.Y = message.ReadSignedSingle(bitsPerElement); + retval.Z = message.ReadSignedSingle(bitsPerElement); + retval.W = message.ReadSignedSingle(bitsPerElement); + return retval; + } + + /// + /// Writes an orthonormal matrix (rotation, translation but not scaling or projection) + /// + public static void WriteMatrix(this NetBuffer message, ref Matrix matrix) + { + Quaternion rot = Quaternion.CreateFromRotationMatrix(matrix); + WriteRotation(message, rot, 24); + message.Write(matrix.M41); + message.Write(matrix.M42); + message.Write(matrix.M43); + } + + /// + /// Writes an orthonormal matrix (rotation, translation but no scaling or projection) + /// + public static void WriteMatrix(this NetBuffer message, Matrix matrix) + { + Quaternion rot = Quaternion.CreateFromRotationMatrix(matrix); + WriteRotation(message, rot, 24); + message.Write(matrix.M41); + message.Write(matrix.M42); + message.Write(matrix.M43); + } + + /// + /// Reads a matrix written using WriteMatrix() + /// + public static Matrix ReadMatrix(this NetBuffer message) + { + Quaternion rot = ReadRotation(message, 24); + Matrix retval = Matrix.CreateFromQuaternion(rot); + retval.M41 = message.ReadSingle(); + retval.M42 = message.ReadSingle(); + retval.M43 = message.ReadSingle(); + return retval; + } + + /// + /// Reads a matrix written using WriteMatrix() + /// + public static void ReadMatrix(this NetBuffer message, ref Matrix destination) + { + Quaternion rot = ReadRotation(message, 24); + destination = Matrix.CreateFromQuaternion(rot); + destination.M41 = message.ReadSingle(); + destination.M42 = message.ReadSingle(); + destination.M43 = message.ReadSingle(); + } + + /// + /// Writes a bounding sphere + /// + public static void Write(this NetBuffer message, BoundingSphere bounds) + { + message.Write(bounds.Center.X); + message.Write(bounds.Center.Y); + message.Write(bounds.Center.Z); + message.Write(bounds.Radius); + } + + /// + /// Reads a bounding sphere written using Write(message, BoundingSphere) + /// + public static BoundingSphere ReadBoundingSphere(this NetBuffer message) + { + BoundingSphere retval; + retval.Center.X = message.ReadSingle(); + retval.Center.Y = message.ReadSingle(); + retval.Center.Z = message.ReadSingle(); + retval.Radius = message.ReadSingle(); + return retval; + } + } +}