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();
        }