110 lines
2.0 KiB
C#
110 lines
2.0 KiB
C#
using System;
|
|
using System.IO;
|
|
using ANX.Framework.NonXNA.Development;
|
|
|
|
// This file is part of the ANX.Framework created by the
|
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
|
// For details see: http://anxframework.codeplex.com/license
|
|
|
|
namespace ANX.Framework.Net
|
|
{
|
|
[PercentageComplete(100)]
|
|
[Developer("AstrorEnales")]
|
|
[TestState(TestStateAttribute.TestState.Tested)]
|
|
public class PacketReader : BinaryReader
|
|
{
|
|
public int Length
|
|
{
|
|
get { return (int)BaseStream.Length; }
|
|
}
|
|
|
|
public int Position
|
|
{
|
|
get { return (int)BaseStream.Position; }
|
|
set { BaseStream.Position = value; }
|
|
}
|
|
|
|
public PacketReader()
|
|
: this(0)
|
|
{
|
|
}
|
|
|
|
public PacketReader(int capacity)
|
|
: base(new MemoryStream(capacity))
|
|
{
|
|
}
|
|
|
|
public Vector2 ReadVector2()
|
|
{
|
|
return new Vector2
|
|
{
|
|
X = ReadSingle(),
|
|
Y = ReadSingle()
|
|
};
|
|
}
|
|
|
|
public Vector3 ReadVector3()
|
|
{
|
|
return new Vector3
|
|
{
|
|
X = ReadSingle(),
|
|
Y = ReadSingle(),
|
|
Z = ReadSingle()
|
|
};
|
|
}
|
|
|
|
public Vector4 ReadVector4()
|
|
{
|
|
return new Vector4
|
|
{
|
|
X = ReadSingle(),
|
|
Y = ReadSingle(),
|
|
Z = ReadSingle(),
|
|
W = ReadSingle()
|
|
};
|
|
}
|
|
|
|
public Matrix ReadMatrix()
|
|
{
|
|
return new Matrix
|
|
{
|
|
M11 = ReadSingle(),
|
|
M12 = ReadSingle(),
|
|
M13 = ReadSingle(),
|
|
M14 = ReadSingle(),
|
|
M21 = ReadSingle(),
|
|
M22 = ReadSingle(),
|
|
M23 = ReadSingle(),
|
|
M24 = ReadSingle(),
|
|
M31 = ReadSingle(),
|
|
M32 = ReadSingle(),
|
|
M33 = ReadSingle(),
|
|
M34 = ReadSingle(),
|
|
M41 = ReadSingle(),
|
|
M42 = ReadSingle(),
|
|
M43 = ReadSingle(),
|
|
M44 = ReadSingle()
|
|
};
|
|
}
|
|
|
|
public Quaternion ReadQuaternion()
|
|
{
|
|
return new Quaternion
|
|
{
|
|
X = ReadSingle(),
|
|
Y = ReadSingle(),
|
|
Z = ReadSingle(),
|
|
W = ReadSingle()
|
|
};
|
|
}
|
|
|
|
public Color ReadColor()
|
|
{
|
|
return new Color
|
|
{
|
|
PackedValue = ReadUInt32()
|
|
};
|
|
}
|
|
}
|
|
}
|