public XElement Visit(StraightEdgeShapeRecord record, object arg) { return(new XElement("LineTo", new XAttribute("x", record.DeltaX), new XAttribute("y", record.DeltaY) )); }
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); }
protected override IShapeRecordEx Adapt(StraightEdgeShapeRecord record) { return(record); }
protected abstract T Adapt(StraightEdgeShapeRecord record);
public IShapeRecord Visit(StraightEdgeShapeRecord record, XElement xShape) { record.DeltaX = xShape.RequiredIntAttribute("x"); record.DeltaY = xShape.RequiredIntAttribute("y"); return(record); }
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); }
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); }