Exemple #1
0
 public XElement Visit(StraightEdgeShapeRecord record, object arg)
 {
     return(new XElement("LineTo",
                         new XAttribute("x", record.DeltaX),
                         new XAttribute("y", record.DeltaY)
                         ));
 }
Exemple #2
0
        private StraightEdgeShapeRecord ReadStraigtEdgeShapeRecord(ISwfStreamReader reader)
        {
            var  record          = new StraightEdgeShapeRecord();
            var  numBits         = reader.ReadUnsignedBits(4) + 2;
            var  generalLineFlag = reader.ReadBit();
            bool vertLineFlag    = false;

            if (!generalLineFlag)
            {
                vertLineFlag = reader.ReadBit();
            }
            if (generalLineFlag || !vertLineFlag)
            {
                record.DeltaX = reader.ReadSignedBits(numBits);
            }
            if (generalLineFlag || vertLineFlag)
            {
                record.DeltaY = reader.ReadSignedBits(numBits);
            }
            return(record);
        }
Exemple #3
0
 protected override IShapeRecordEx Adapt(StraightEdgeShapeRecord record)
 {
     return(record);
 }
Exemple #4
0
 protected abstract T Adapt(StraightEdgeShapeRecord record);
Exemple #5
0
 public IShapeRecord Visit(StraightEdgeShapeRecord record, XElement xShape)
 {
     record.DeltaX = xShape.RequiredIntAttribute("x");
     record.DeltaY = xShape.RequiredIntAttribute("y");
     return(record);
 }
Exemple #6
0
        ShapeRecordWriteContext IShapeRecordVisitor <ShapeRecordWriteContext, ShapeRecordWriteContext> .Visit(StraightEdgeShapeRecord record, ShapeRecordWriteContext ctx)
        {
            var writer = ctx.Writer;

            writer.WriteBit(true);
            writer.WriteBit(true);
            var actualBits = new SignedBitsCount(record.DeltaX, record.DeltaY).GetBits();

            if (actualBits < 2)
            {
                actualBits = 2;
            }
            writer.WriteUnsignedBits(actualBits - 2u, 4);
            bool genLineFlags = record.DeltaX != 0 && record.DeltaY != 0;

            writer.WriteBit(genLineFlags);
            bool vertFlag = record.DeltaX == 0;

            if (!genLineFlags)
            {
                writer.WriteBit(vertFlag);
            }
            if (genLineFlags || !vertFlag)
            {
                writer.WriteSignedBits(record.DeltaX, actualBits);
            }
            if (genLineFlags || vertFlag)
            {
                writer.WriteSignedBits(record.DeltaY, actualBits);
            }
            return(ctx);
        }
Exemple #7
0
 public static void AreEqual(StraightEdgeShapeRecord expected, StraightEdgeShapeRecord actual, string message)
 {
     Assert.AreEqual(expected.DeltaX, actual.DeltaX, "{0}: DeltaX", message);
     Assert.AreEqual(expected.DeltaY, actual.DeltaY, "{0}: DeltaY", message);
 }