Exemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RoomVisual"/> class.
        /// </summary>
        /// <param name="zoneVisual">The zone visual.</param>
        public RoomVisual([NotNull] ZoneVisual zoneVisual)
        {
            _zoneVisual = zoneVisual;
            Assert.ArgumentNotNull(zoneVisual, "zoneVisual");

            _rootDrawing = new DrawingVisual();
            _childVisuals.Add(_rootDrawing);

            var dc = _rootDrawing.RenderOpen();

            _roomDrawing = new GeometryDrawing(zoneVisual.RenderConstants.GetRoomColorBrush(RoomColor.Default), _zoneVisual.RenderConstants.DefaultRoomPen, _zoneVisual.RenderConstants.RoomGeometry);
            dc.DrawDrawing(_roomDrawing);

            _northExitDrawing = new GeometryDrawing(_zoneVisual.RenderConstants.DefaultExitBrush, null, _zoneVisual.RenderConstants.NorthExitGeometry.Clone())
            {
                Geometry = { Transform = new ScaleTransform(1, 1, 1, 5) }
            };
            dc.DrawDrawing(_northExitDrawing);

            _southExitDrawing = new GeometryDrawing(_zoneVisual.RenderConstants.DefaultExitBrush, null, _zoneVisual.RenderConstants.SouthExitGeometry.Clone())
            {
                Geometry = { Transform = new ScaleTransform(1, 1, 1, 25) }
            };
            dc.DrawDrawing(_southExitDrawing);

            _westExitDrawing = new GeometryDrawing(_zoneVisual.RenderConstants.DefaultExitBrush, null, _zoneVisual.RenderConstants.WestExitGeometry.Clone())
            {
                Geometry = { Transform = new ScaleTransform(1, 1, 5, 1) }
            };
            dc.DrawDrawing(_westExitDrawing);

            _eastExitDrawing = new GeometryDrawing(_zoneVisual.RenderConstants.DefaultExitBrush, null, _zoneVisual.RenderConstants.EastExitGeometry.Clone())
            {
                Geometry = { Transform = new ScaleTransform(1, 1, 25, 1) }
            };
            dc.DrawDrawing(_eastExitDrawing);

            _upExitDrawing = new GeometryDrawing(_zoneVisual.RenderConstants.DefaultExitBrush, null, _zoneVisual.RenderConstants.UpExitGeometry);
            dc.DrawDrawing(_upExitDrawing);

            _downExitDrawing = new GeometryDrawing(_zoneVisual.RenderConstants.DefaultExitBrush, null, _zoneVisual.RenderConstants.DownExitGeometry);
            dc.DrawDrawing(_downExitDrawing);

            _iconDrawing = new GeometryDrawing(zoneVisual.RenderConstants.GetRoomIconBrush(RoomIcon.None), new Pen(Brushes.Transparent, 0), new RectangleGeometry(new Rect(5, 5, 20, 20)));
            dc.DrawDrawing(_iconDrawing);
            dc.Close();
            _transform             = new TranslateTransform(-10000, -10000);
            _rootDrawing.Transform = _transform;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RenderConstants"/> class.
        /// </summary>
        /// <param name="zoneVisual">The zone visual.</param>
        public RenderConstants([NotNull] ZoneVisual zoneVisual)
        {
            _zoneVisual = zoneVisual;
            Assert.ArgumentNotNull(zoneVisual, "zoneVisual");

            RoomGeometry = new RectangleGeometry(new Rect(5, 5, 20, 20), 2, 2);
            RoomGeometry.Freeze();

            NorthExitGeometry = new RectangleGeometry(new Rect(14, 0, 2, 5));
            NorthExitGeometry.Freeze();

            SouthExitGeometry = new RectangleGeometry(new Rect(14, 25, 2, 5));
            SouthExitGeometry.Freeze();

            WestExitGeometry = new RectangleGeometry(new Rect(0, 14, 5, 2));
            WestExitGeometry.Freeze();

            EastExitGeometry = new RectangleGeometry(new Rect(25, 14, 5, 2));
            EastExitGeometry.Freeze();

            UpExitGeometry = Geometry.Parse("M5.1790161,5.1693864 L1,5.208189 L1,7.2087359 L5.1790161,7.1703711 z M5.1790161,2.1503892 L1,2.1891921 L1,4.2297473 L5.1790161,4.1913824 z M5.6591058,6.686151E-05 C5.8254476,-0.0017583817 5.9984264,0.033741869 6.1790161,0.11204322 L6.1790161,8.4298897 C5.7820988,8.6196117 5.4618106,8.5806875 5.1790161,8.4298897 L5.1790161,8.1483746 L1,8.1871777 L1,8.4372969 C0.71720558,8.5864563 0.39691716,8.6249571 0,8.4372969 L0,0.20984003 C0.18058951,0.13238949 0.35356849,0.097275011 0.51991057,0.099080339 C0.68625271,0.10088577 0.84595799,0.13961101 1,0.20984003 L1,1.2107502 L5.1790161,1.1723855 L5.1790161,0.11204322 C5.3330584,0.041042738 5.4927635,0.0018920451 5.6591058,6.686151E-05 z");
            UpExitGeometry.Freeze();

            DownExitGeometry           = Geometry.Parse("M0.99999994,4.9353776 L0.99999994,7.2073736 L5.1790161,7.2457385 L5.1790161,4.9741802 z M0.99999994,1.4983659 L0.99999994,3.9573739 L5.1790161,3.9957387 L5.1790161,1.5371687 z M0.51991075,7.9870224E-05 C0.68625271,0.002260685 0.84595793,0.049042225 0.99999994,0.13388109 L0.99999994,0.52036214 L5.1790161,0.55872703 L5.1790161,0.27224088 C5.4871001,0.10589814 5.8178372,0.088793516 6.1790161,0.27224088 L6.1790161,10.015921 C5.7820988,10.238165 5.4618106,10.192569 5.1790161,10.015921 L5.1790161,8.2241802 L0.99999994,8.1853771 L0.99999994,10.072922 C0.71720552,10.253111 0.3969171,10.299622 0,10.072922 L0,0.13388109 C0.18058944,0.040318251 0.35356843,-0.0021011829 0.51991075,7.9870224E-05 z");
            DownExitGeometry           = DownExitGeometry.Clone();
            DownExitGeometry.Transform = new TranslateTransform(0, 19);
            DownExitGeometry.Freeze();

            NonVisitedRoomBrush = new SolidColorBrush(Color.FromRgb(0x5E, 0x5E, 0x5E));
            NonVisitedRoomBrush.Freeze();

            CurrentRoomPen = new Pen(Brushes.White, 2);
            CurrentRoomPen.Freeze();

            DefaultRoomPen = new Pen(Brushes.White, 0);
            DefaultRoomPen.Freeze();

            SelectedRoomPen = new Pen(Brushes.Red, 2);
            SelectedRoomPen.Freeze();

            DefaultExitBrush = new SolidColorBrush(Color.FromRgb(0x55, 0x69, 0x74));
            DefaultExitBrush.Freeze();

            CurrentRoomExitBrush = new SolidColorBrush(Colors.White);
            CurrentRoomExitBrush.Freeze();

            InvisibleExitBrush = new SolidColorBrush(Colors.Transparent);
            InvisibleExitBrush.Freeze();
        }