/// <summary> /// Writes to a binary writer. /// </summary> /// <param name="writer">Writer.</param> public void WriteTo(BufferedBinaryWriter writer) { if (fillStyleArray != null) { fillStyleArray.WriteTo(writer); } if (lineStyleArray != null) { lineStyleArray.WriteTo(writer); } if (shapes != null) { ShapeWithStyle.NumFillBits = 0; ShapeWithStyle.NumLineBits = 0; if (fillStyleArray != null && fillStyleArray.Count != 0) { ShapeWithStyle.NumFillBits = BufferedBinaryWriter.GetNumBits((uint)fillStyleArray.Count); } if (lineStyleArray != null && lineStyleArray.Count != 0) { ShapeWithStyle.NumLineBits = BufferedBinaryWriter.GetNumBits((uint)lineStyleArray.Count); } shapes.WriteTo(writer); ShapeWithStyle.NumFillBits = 0; ShapeWithStyle.NumLineBits = 0; } }
/// <summary> /// Writes to. /// </summary> /// <param name="writer">Writer.</param> public override void WriteTo(BufferedBinaryWriter writer) { base.WriteTo(writer); bool stateNewStyle = HasNewStyle(); bool stateLineStyle = HasLineStyle(); bool stateFillStyle0 = HasFillStyle0(); bool stateFillStyle1 = HasFillStyle1(); bool stateMoveTo = HasMoveTo(); writer.WriteBoolean(stateNewStyle); writer.WriteBoolean(stateLineStyle); writer.WriteBoolean(stateFillStyle1); writer.WriteBoolean(stateFillStyle0); writer.WriteBoolean(stateMoveTo); if (stateMoveTo) { uint moveBitsNum = GetMoveNumBits(); writer.WriteUBits(moveBitsNum, 5); writer.WriteSBits(moveDeltaX, moveBitsNum); writer.WriteSBits(moveDeltaY, moveBitsNum); } if (stateFillStyle0) { writer.WriteUBits((uint)fillStyle0, ShapeWithStyle.NumFillBits); } if (stateFillStyle1) { writer.WriteUBits((uint)fillStyle1, ShapeWithStyle.NumFillBits); } if (stateLineStyle) { writer.WriteUBits((uint)lineStyle, ShapeWithStyle.NumLineBits); } if (stateNewStyle) { fillStyles.WriteTo(writer); lineStyles.WriteTo(writer); ShapeWithStyle.NumFillBits = BufferedBinaryWriter.GetNumBits((uint)fillStyles.Count); ShapeWithStyle.NumLineBits = BufferedBinaryWriter.GetNumBits((uint)lineStyles.Count); writer.WriteUBits(ShapeWithStyle.NumFillBits, 4); writer.WriteUBits(ShapeWithStyle.NumLineBits, 4); } }