Added quaternion serialization; serialization methods now always work on references to improve performance; removed dead code from CygonRectanglePacker; improved commenting on Progression framework

git-svn-id: file:///srv/devel/repo-conversion/nusu@29 d2e56fa2-650e-0410-a79f-9358c0239efd
This commit is contained in:
Markus Ewald 2007-06-12 19:15:55 +00:00
parent 979e6328fb
commit 991fab9721
4 changed files with 42 additions and 14 deletions

View file

@ -24,8 +24,6 @@ using System.Reflection;
using Microsoft.Xna.Framework;
using Nuclex.Support.Serialization;
namespace Nuclex.Support.Serialization {
/// <summary>Utility class for serializating objects into binary data</summary>
@ -119,7 +117,7 @@ namespace Nuclex.Support.Serialization {
/// <summary>Serializes a matrix into a binary data stream</summary>
/// <param name="writer">BinaryWriter to serialize the matrix into</param>
/// <param name="matrix">Matrix to be serialized</param>
public static void Save(BinaryWriter writer, Matrix matrix) {
public static void Save(BinaryWriter writer, ref Matrix matrix) {
writer.Write(matrix.M11);
writer.Write(matrix.M12);
writer.Write(matrix.M13);
@ -156,7 +154,7 @@ namespace Nuclex.Support.Serialization {
/// <summary>Serializes a vector into a binary data stream</summary>
/// <param name="writer">BinaryWriter to serialize the vector into</param>
/// <param name="vector">Vector to be serialized</param>
public static void Save(BinaryWriter writer, Vector2 vector) {
public static void Save(BinaryWriter writer, ref Vector2 vector) {
writer.Write(vector.X);
writer.Write(vector.Y);
}
@ -177,7 +175,7 @@ namespace Nuclex.Support.Serialization {
/// <summary>Serializes a vector into a binary data stream</summary>
/// <param name="writer">BinaryWriter to serialize the vector into</param>
/// <param name="vector">Vector to be serialized</param>
public static void Save(BinaryWriter writer, Vector3 vector) {
public static void Save(BinaryWriter writer, ref Vector3 vector) {
writer.Write(vector.X);
writer.Write(vector.Y);
writer.Write(vector.Z);
@ -200,14 +198,38 @@ namespace Nuclex.Support.Serialization {
/// <summary>Serializes a vector into a binary data stream</summary>
/// <param name="writer">BinaryWriter to serialize the vector into</param>
/// <param name="vector">Vector to be serialized</param>
public static void Save(BinaryWriter writer, Vector4 vector) {
public static void Save(BinaryWriter writer, ref Vector4 vector) {
writer.Write(vector.X);
writer.Write(vector.Y);
writer.Write(vector.Z);
writer.Write(vector.W);
}
#endregion // Microsoft.Xna.Framework.Vector3
#endregion // Microsoft.Xna.Framework.Quaternion
#region Microsoft.Xna.Framework.Quaternion
/// <summary>Loads a quaternion from its serialized representation</summary>
/// <param name="reader">Reader to use for reading the quaternion</param>
/// <param name="quaternion">Quaternion to be deserialized</param>
public static void Load(BinaryReader reader, out Quaternion quaternion) {
quaternion.X = reader.ReadSingle();
quaternion.Y = reader.ReadSingle();
quaternion.Z = reader.ReadSingle();
quaternion.W = reader.ReadSingle();
}
/// <summary>Serializes a quaternion into a binary data stream</summary>
/// <param name="writer">BinaryWriter to serialize the quaternion into</param>
/// <param name="quaternion">Quaternion to be serialized</param>
public static void Save(BinaryWriter writer, ref Quaternion quaternion) {
writer.Write(quaternion.X);
writer.Write(quaternion.Y);
writer.Write(quaternion.Z);
writer.Write(quaternion.W);
}
#endregion // Microsoft.Xna.Framework.Quaternion
} // class BinarySerializer