public void Run(string configFile) { PanoScreen.Initialize(); var mosaicInfo = PanoScreen.GetMosaicInfo(); var screen = new PanoScreen { Resolution = new Size((int)mosaicInfo.ProjectorWidth * 2 - mosaicInfo.Overlap, (int)mosaicInfo.ProjectorHeight), Overlap = mosaicInfo.Overlap }; screen.AddProjectors(mosaicInfo.DisplayId0, mosaicInfo.DisplayId1); var xmlSerializer = new XmlSerializer(typeof(Configuration.Configuration)); Configuration.Configuration config; using (var reader = new XmlTextReader(configFile)) { config = (Configuration.Configuration)xmlSerializer.Deserialize(reader); } Configuration.Configuration.Instance.UpdateConfig(config); screen.Update(config.Settings.PatternSize, new Size(config.Settings.PatternCountX, config.Settings.PatternCountY), config.Settings.KeepCorners, config.Settings.ControlPointsInsideOverlap); screen.UpdateProjectorsFromConfig(ProjectorMapper.MapProjectorsData(Configuration.Configuration.Instance.Projectors)); screen.WarpBlend(false); //screen.Warp(); }
public ViewModel(ScreenView screen, MosaicInfo mosaicInfo, MainWindow mainWindow) { //if (Helpers.IsDevComputer) //{ // _configFilename = @"C:\Temp\PanoBeam.config"; //} _screenView = screen; _mainWindow = mainWindow; CameraUserControl = new CameraUserControl(); CalibrationUserControl = new CalibrationUserControl(); BlendingUserControl = new BlendingUserControl(); TestImagesUserControl = new TestImagesUserControl(); CalibrationUserControl.Start += CalibrationUserControlOnStart; TestImagesUserControl.ShowImage += TestImagesUserControlOnShowImage; _screen = new PanoScreen { Resolution = _screenView.Resolution, Overlap = _screenView.Overlap, SaveCursorPosition = () => { _mousePosition = Win32.GetMousePosition(); }, RestoreCursorPosition = () => { if (_mousePosition != null) { Win32.SetCursorPos(_mousePosition.X, _mousePosition.Y); } } }; _screen.AddProjectors(mosaicInfo.DisplayId0, mosaicInfo.DisplayId1); //_screen.LoadDefaults(); CalibrationUserControl.Initialize(); BlendingUserControl.Initialize(_screen.Projectors); _screen.CalculationProgress += ScreenOnCalculationProgress; //_screen.SetPattern(50, new Size(8, 9)); }