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 PacketWriter : BinaryWriter { public int Length { get { return (int)BaseStream.Length; } } public int Position { get { return (int)BaseStream.Position; } set { BaseStream.Position = value; } } public PacketWriter() : this(0) { } public PacketWriter(int capacity) : base(new MemoryStream(capacity)) { } public void Write(Vector2 value) { Write(value.X); Write(value.Y); } public void Write(Vector3 value) { Write(value.X); Write(value.Y); Write(value.Z); } public void Write(Vector4 value) { Write(value.X); Write(value.Y); Write(value.Z); Write(value.W); } public void Write(Matrix value) { Write(value.M11); Write(value.M12); Write(value.M13); Write(value.M14); Write(value.M21); Write(value.M22); Write(value.M23); Write(value.M24); Write(value.M31); Write(value.M32); Write(value.M33); Write(value.M34); Write(value.M41); Write(value.M42); Write(value.M43); Write(value.M44); } public void Write(Quaternion value) { Write(value.X); Write(value.Y); Write(value.Z); Write(value.W); } public void Write(Color value) { Write(value.PackedValue); } } }