public DrawLines(PictureOpcode opcode, Stream stream)
: base(opcode)
{
Points = new List<Vector2i>();
Start = ReadAbsoluteCoordinates(stream);
Vector2i point = Start;
while (PeekContinue(stream)) {
switch (opcode) {
case PictureOpcode.DrawRelativeMediumLines: point = ReadMediumRelativeCoordinates(stream, point); break;
case PictureOpcode.DrawRelativeLongLines: point = ReadAbsoluteCoordinates(stream); break;
case PictureOpcode.DrawRelativeShortLines: point = ReadShortRelativeCoordinates(stream, point); break;
default: throw new NotSupportedException();
}
Points.Add(point);
}
}