public byte[] ToBytes() { byte[] outputbytes = new byte[0]; BinaryWriter iostream = new BinaryWriter(new MemoryStream()); iostream.Write(BinBVHUtil.ES(Utils.UInt16ToBytes(unknown0))); iostream.Write(BinBVHUtil.ES(Utils.UInt16ToBytes(unknown1))); iostream.Write(BinBVHUtil.ES(Utils.IntToBytes(Priority))); iostream.Write(BinBVHUtil.ES(Utils.FloatToBytes(Length))); iostream.Write(BinBVHUtil.WriteNullTerminatedString(ExpressionName)); iostream.Write(BinBVHUtil.ES(Utils.FloatToBytes(InPoint))); iostream.Write(BinBVHUtil.ES(Utils.FloatToBytes(OutPoint))); iostream.Write(BinBVHUtil.ES(Utils.IntToBytes(Loop ? 1 : 0))); iostream.Write(BinBVHUtil.ES(Utils.FloatToBytes(EaseInTime))); iostream.Write(BinBVHUtil.ES(Utils.FloatToBytes(EaseOutTime))); iostream.Write(BinBVHUtil.ES(Utils.UIntToBytes(HandPose))); iostream.Write(BinBVHUtil.ES(Utils.UIntToBytes((uint)(Joints.Length)))); for (int i = 0; i < Joints.Length; i++) { Joints[i].WriteBytesToStream(iostream, InPoint, OutPoint); } iostream.Write(BinBVHUtil.ES(Utils.IntToBytes(0))); MemoryStream ms = (MemoryStream)iostream.BaseStream; outputbytes = ms.ToArray(); ms.Close(); iostream.Close(); return(outputbytes); }
public void WriteBytesToStream(BinaryWriter iostream, float InPoint, float OutPoint) { iostream.Write(BinBVHUtil.WriteNullTerminatedString(Name)); iostream.Write(BinBVHUtil.ES(Utils.IntToBytes(Priority))); iostream.Write(BinBVHUtil.ES(Utils.IntToBytes(rotationkeys.Length))); for (int i = 0; i < rotationkeys.Length; i++) { rotationkeys[i].WriteBytesToStream(iostream, InPoint, OutPoint, -1f, 1f); } iostream.Write(BinBVHUtil.ES(Utils.IntToBytes((positionkeys.Length)))); for (int i = 0; i < positionkeys.Length; i++) { positionkeys[i].WriteBytesToStream(iostream, InPoint, OutPoint, -256f, 256f); } }