75 {
76 if (p.type == "Point")
77 {
78 List<PointD> points = new List<PointD>();
79 double[] gs = JsonConvert.DeserializeObject<double[]>(p.coordinates.ToString());
80 points.Add(new PointD(gs[0], gs[1]));
81 for (int i = 0; i < points.Count; i++)
82 {
83 points[i] = new PointD(b.StageSizeX + (points[i].X / b.SizeX) * b.Volume.Width, b.StageSizeY + (points[i].Y / b.SizeY) * b.Volume.Height);
84 }
85 return points.ToArray();
86 }
87 else if (p.type == "Polygon")
88 {
89 List<PointD> points = new List<PointD>();
90 double[][][] gs = JsonConvert.DeserializeObject<double[][][]>(p.coordinates.ToString());
91 foreach (double[] item in gs[0])
92 {
93 points.Add(new PointD(item[0], item[1]));
94 }
95 for (int i = 0; i < points.Count; i++)
96 {
97 points[i] = new PointD(b.StageSizeX + (points[i].X / b.SizeX) * b.Volume.Width, b.StageSizeY + (points[i].Y / b.SizeY) * b.Volume.Height);
98 }
99 return points.ToArray();
100 }
101 else
102 {
103 List<PointD> points = new List<PointD>();
104 double[][] gs = JsonConvert.DeserializeObject<double[][]>(p.coordinates.ToString());
105 foreach (double[] item in gs)
106 {
107 points.Add(new PointD(item[0], item[1]));
108 }
109 for (int i = 0; i < points.Count; i++)
110 {
111 points[i] = new PointD(b.StageSizeX + (points[i].X / b.SizeX) * b.Volume.Width, b.StageSizeY + (points[i].Y / b.SizeY) * b.Volume.Height);
112 }
113 return points.ToArray();
114 }
115 }