public CalibrateIndirectlyTask(Window window, IEnumerable<CaptureCamera> captureCameras, Projector projector, Chessboard chessboard) : base(window) { CaptureCameras = captureCameras; Chessboard = chessboard; Projector = projector; ProjectorQuadCorners = Chessboard.GetDefaultImageQuadCorners(projector.Window.ClientSize); WorldToProjectorHom = Chessboard.GetHomographyTo(ProjectorQuadCorners); ColoredChessboard = new ColoredChessboard(Chessboard, Color.Black, Color.White, WorldToProjectorHom.ToMatrixFromHomogeneous3x3()); Circles = Chessboard.Saddles.Select(s => new Circle2D(s.ToVector3(z: 0.01f), 10, 4, Color.Crimson) { AlreadyInScreenSpace = false } ).ToList(); }