anx.framework/ANX.Framework/Net/PacketReader.cs

125 lines
2.0 KiB
C#
Raw Normal View History

using System;
using System.IO;
// 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
2011-11-16 15:00:54 +00:00
namespace ANX.Framework.Net
{
public class PacketReader : BinaryReader
2011-11-16 15:00:54 +00:00
{
public int Length
{
get
{
return (int)BaseStream.Length;
}
}
public int Position
{
get
{
return (int)BaseStream.Position;
}
set
{
BaseStream.Position = (long)value;
}
}
public PacketReader()
: this(0)
{
}
public PacketReader(int capacity)
: base(new MemoryStream(capacity))
{
}
public override float ReadSingle()
{
return ReadSingle();
}
public override double ReadDouble()
{
return ReadDouble();
}
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()
};
}
2011-11-16 15:00:54 +00:00
}
}