コード例 #1
0
ファイル: Program.cs プロジェクト: danartri/PanoBeam
        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();
        }
コード例 #2
0
ファイル: ViewModel.cs プロジェクト: danartri/PanoBeam
        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));
        }