コード例 #1
0
        public override void Write(SwfWriter writer, SwfTagCode shapeType)
        {
            if (DeltaX == 0 && DeltaY == 0)
            {
                return;
            }

            writer.WriteBit(true); //edge flag
            writer.WriteBit(true); //strait flag

            if (DeltaX == 0)       //vert
            {
                WriteCoord(writer, DeltaY, true);
            }
            else if (DeltaY == 0) //horz
            {
                WriteCoord(writer, DeltaX, false);
            }
            else
            {
                int x    = DeltaX.ToTwips();
                int y    = DeltaY.ToTwips();
                int bits = _bits;
                if (!_read)
                {
                    bits = Math.Max(x.GetMinBits(y), 2);
                }
                writer.WriteUB((uint)(bits - 2), 4);
                writer.WriteBit(true); //gl
                writer.WriteSB(x, bits);
                writer.WriteSB(y, bits);
            }
        }