Пример #1
0
        public static Point2d ReadPoint2d(this MsgPackReader reader)
        {
            reader.ReadPrefix(TypePrefixes.FixArray);
            var x = reader.ReadDouble();
            var y = reader.ReadDouble();

            return(new Point2d(x, y));
        }
Пример #2
0
 public static void ReadString(this MsgPackReader reader, string value)
 {
     reader.ReadPrefix(TypePrefixes.FixRaw);
     if (reader.ReadRawString() != value)
     {
         throw new InvalidOperationException(Resources.ParseError);
     }
 }
Пример #3
0
        public static PupilDataFrame FromStream(Stream stream)
        {
            var reader = new MsgPackReader(stream);
            var frame  = new PupilDataFrame();

            reader.ReadPrefix(TypePrefixes.Map16);
            while (reader.Read() && reader.Type == TypePrefixes.FixRaw)
            {
                var key = reader.ReadRawString();
                Action <MsgPackReader, PupilDataFrame> setter;
                if (ParserMap.TryGetValue(key, out setter))
                {
                    setter(reader, frame);
                }
            }
            return(frame);
        }
Пример #4
0
        public static Sphere ReadSphere(this MsgPackReader reader)
        {
            var sphere = new Sphere();

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

                case "radius": sphere.Radius = reader.ReadDouble(); break;

                default: throw new InvalidOperationException(Resources.ParseError);
                }
            }
            return(sphere);
        }
Пример #5
0
        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);
        }
Пример #6
0
        public static Circle3d ReadCircle3d(this MsgPackReader reader)
        {
            var circle = new Circle3d();

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

                case "radius": circle.Radius = reader.ReadDouble(); break;

                case "normal": circle.Normal = reader.ReadPoint3d(); break;

                default: throw new InvalidOperationException(Resources.ParseError);
                }
            }
            return(circle);
        }
Пример #7
0
 public static string ReadString(this MsgPackReader reader)
 {
     reader.ReadPrefix(TypePrefixes.FixRaw);
     return(reader.ReadRawString());
 }