public static Ellipse ReadEllipse(this MsgPackReader reader)
        {
            var ellipse = new Ellipse();

            reader.ReadPrefix(TypePrefixes.FixMap);
            for (int i = 0; i < 3; i++)
            {
                var key = reader.ReadString();
                switch (key)
                {
                case "center": ellipse.Center = reader.ReadPoint2d(); break;

                case "angle": ellipse.Angle = reader.ReadDouble(); break;

                case "axes": ellipse.Axes = reader.ReadPoint2d(); break;

                default: throw new InvalidOperationException(Resources.ParseError);
                }
            }
            return(ellipse);
        }