public void LoadExperiment(string experimentId)
        {
            LoadedExperimentId = experimentId;
            var filepathStem = Path.Combine("Logs", LoadedExperimentId);
            var gazeLog      = new GazeLog(filepathStem + "_gaze.csv");

            this.startTime  = gazeLog.GazePoints[0].Timestamp;
            this.GazePoints = gazeLog.GazePoints.Select(p => new GazeEntry(p.X, p.Y, p.Timestamp - startTime)).ToList();
            this.Calibrator = new GlobalScalingLocalOffsetCalibrator(
                FixationSaccade.Calibrator.DeserialiseCalibrationMapping(
                    File.ReadAllText(Path.Combine("Logs", experimentId + "_calibration.csv"))
                    )
                );
            this.fixationLog = new FixationLog(filepathStem + "_fixation.csv");
            this.Fixations   = fixationLog.Fixations.Select(f => new FixationEntry(f.GazeEntries.Select(g => new GazeEntry(g.X, g.Y, g.Timestamp - startTime)))).ToList();
            OnCalibratorChanged.Invoke(Calibrator);
            OnFixationDataChanged.Invoke();
            OnMovementDataChanged.Invoke();
        }
 public void SetScalingVector(ScalingVector scalingVector)
 {
     Calibrator.SetScaling(scalingVector.X, scalingVector.Y);
     OnCalibratorChanged.Invoke(Calibrator);
 }