示例#1
0
        private void AssertPixelIsOnScreen(ScreenAdapter.ScreenAdapter screenAdapter, Point2D pixel)
        {
            Assert.True(pixel.X >= 0);
            Assert.True(pixel.X <= _screenWidth);

            Assert.True(pixel.Y >= 0);
            Assert.True(pixel.Y <= _screenHeight);
        }
示例#2
0
        public void ScreenInfoInitialization()
        {
            var points = new []
            {
                new Point(90000, 30000),
                new Point(30000, 90000),
                new Point(33000, 33000),
            };

            var screenAdapter = new ScreenAdapter.ScreenAdapter(_screenWidth, _screenHeight, new double[4], 1);

            Assert.NotNull(screenAdapter);
            Assert.AreEqual(120, screenAdapter.Zoom);
            Assert.AreEqual(new Point(30000, 30000), screenAdapter.ZeroPoint);
            Assert.AreEqual(new Point(30000, 30000), screenAdapter.Bbox.LeftDown);
            Assert.AreEqual(new Point(150000, 90000), screenAdapter.Bbox.RightTop);
        }
示例#3
0
        public void OpenMap(Guid mapId)
        {
            Task.Run(() =>
            {
                var extrimalPoints = _dbService.GetExtrimalPoints(mapId);

                // TODO убрать в команду
                _logger.Log("Initialize screen adapter...");
                _screenAdapter = new ScreenAdapter.ScreenAdapter(_canvas.Width, _canvas.Height, extrimalPoints);
                _logger.Log("Done");

                DrawMap(mapId);
                IsMapLoaded   = true;
                _viewType     = ViewType.FROM_DATABASE;
                _currentMapId = mapId;
            });
        }
示例#4
0
        public void PointsToPixelHasCorrectCoordinates()
        {
            var points = new[]
            {
                new Point(90000, 30000),
                new Point(30000, 90000),
                new Point(33000, 33000),
            };

            var screenAdapter = new ScreenAdapter.ScreenAdapter(_screenWidth, _screenHeight, new double[4], 1);

            var pixel0 = screenAdapter.ToPixel(points[0]);
            var pixel1 = screenAdapter.ToPixel(points[1]);
            var pixel2 = screenAdapter.ToPixel(points[2]);

            AssertPixelIsOnScreen(screenAdapter, pixel0);
            AssertPixelIsOnScreen(screenAdapter, pixel1);
            AssertPixelIsOnScreen(screenAdapter, pixel2);
        }
示例#5
0
        public void OpenMap()
        {
            using (var dialog = new OpenFileDialog())
            {
                //dialog.Filter = Resources.FileDialogFilter;

                var result = dialog.ShowDialog();

                if (result == DialogResult.OK)
                {
                    var filename = dialog.FileName;

                    Task.Run(() =>
                    {
                        _mapFileName = filename;

                        _logger.Log("Reading map from file...");
                        var map = _dataReader.ReadFromFile(_mapFileName);
                        _logger.Log("Done");

                        // TODO убрать в команду
                        _logger.Log("Initialize screen adapter...");
                        _screenAdapter = new ScreenAdapter.ScreenAdapter(_canvas.Width, _canvas.Height,
                                                                         map.Polygons.SelectMany(p => p.Paths).SelectMany(p => p.Points).ToArray());
                        _logger.Log("Done");

                        _polygons = map.Polygons.ToList();
                        _drawablePolygons.Clear();
                        _drawablePolygons = map.Polygons.Select(p => new DrawablePolygon(p, _screenAdapter, _drawerFactory)).ToList();

                        _canvas.Invalidate();
                        IsMapLoaded = true;
                        _viewType   = ViewType.FROM_FILE;
                    });
                }
            }
        }
 public DrawablePolygon(Polygon geometry, ScreenAdapter.ScreenAdapter _screenAdapter, IDrawerFactory drawerFactory)
 {
     Geometry            = geometry;
     this._screenAdapter = _screenAdapter;
     _drawerFactory      = drawerFactory;
 }