예제 #1
0
        public void FillWithJsonObject(JContainer dict, Scheme scheme)
        {
            Rooms = dict["rooms"].Select(r =>
            {
                Room room = new Room();
                room.FillWithJsonObject((JContainer)r, scheme);
                return room;
            }).ToArray();

            Items = dict["items"].Select(i =>
            {
                Item item;
                string locType = (string)i["location_type"];
                if (locType.Equals("room"))
                    item = new RoomItem();
                else
                    item = new CoordinateItem();
                item.FillWithJsonObject((JContainer)i, scheme);
                return item;
            }).ToArray();
        }
예제 #2
0
        private static UIElement BuildRoomVisual(Room room)
        {
            var path = new Path
            {
                Fill = new SolidColorBrush(room.Color) { Opacity = 0.5 },
                Data = BuildRoomGeometry(room),
                ToolTip = room.Title
            };

            return path;
        }
예제 #3
0
        public static Geometry BuildRoomGeometry(Room room)
        {
            if (room.Points == null)
                return null;

            var points = room.Points.Where(p => p.X >= 0 && p.Y >= 0).ToList();
            var sb = new StringBuilder();
            sb.AppendFormat(CultureInfo.InvariantCulture, "M {0},{1}", points[0].X, points[0].Y);
            foreach (var p in points.Skip(1))
            {
                sb.AppendFormat(CultureInfo.InvariantCulture, " L {0},{1}", p.X, p.Y);
            }

            return Geometry.Parse(sb.ToString());
        }
 public void StopEditing()
 {
     startPoint = null;
     room = null;
     SelectionData = null;
     SelectedWallsData = null;
     RoomData = null;
 }
 public new bool MouseDown(Point position)
 {
     startPoint = position;
     if (room == null)
     {
         room = new Room();
         previouslySelectedWalls.Clear();
     }
     return true;
 }