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 void Initialize(PanoScreen screen) { _screen = screen; var width = Resolution.Width; var height = Resolution.Height; Width = width; Height = height; Image1.Width = width; Image1.Height = height; WarpControl1.Initialize(screen); _screen.SetPattern( Configuration.Configuration.Instance.Settings.PatternSize, new Size(Configuration.Configuration.Instance.Settings.PatternCountX, Configuration.Configuration.Instance.Settings.PatternCountY), Configuration.Configuration.Instance.Settings.ControlPointsInsideOverlap, false); _screen.UpdateProjectorsFromConfig(ProjectorMapper.MapProjectorsData(Configuration.Configuration.Instance.Projectors)); //EventHelper.SubscribeEvent<CalibrationDataChanged, CalibrationData>(OnCalibrationDataChanged); EventHelper.SubscribeEvent <ControlPointsMoved, ControlPointData>(OnControlPointsMoved); //EventHelper.SubscribeEvent<ApplicationReady, EventArgs>(OnApplicationReady); }