private void UpdateAxesMinMax(bool invalidatePlot) { if (ComparisonRecords == null || !ComparisonRecords.Any()) { return; } var xAxis = ComparisonModel.GetAxisOrDefault("xAxis", null); var yAxis = ComparisonModel.GetAxisOrDefault("yAxis", null); if (xAxis == null || yAxis == null) { return; } double xMin = 0; double xMax = 0; double yMin = 0; double yMax = 0; double startTime = FirstSeconds; double endTime = _maxRecordingTime - LastSeconds; var sessionParallelQuery = ComparisonRecords.Select(record => record.WrappedRecordInfo.Session).AsParallel(); xMin = sessionParallelQuery.Min(session => { return(session.GetFrametimePointsTimeWindow(startTime, endTime).First().X); }); xMax = sessionParallelQuery.Max(session => { return(session.GetFrametimePointsTimeWindow(startTime, endTime).Last().X); }); yMin = sessionParallelQuery.Min(session => { return(session.GetFrametimePointsTimeWindow(startTime, endTime).Min(pnt => pnt.Y));; }); yMax = sessionParallelQuery.Max(session => { return(session.GetFrametimePointsTimeWindow(startTime, endTime).Max(pnt => pnt.Y)); }); xAxis.Minimum = xMin; xAxis.Maximum = xMax; yAxis.Minimum = yMin - (yMax - yMin) / 6; yAxis.Maximum = yMax + (yMax - yMin) / 6; if (invalidatePlot) { ComparisonModel.InvalidatePlot(true); } }
private void UpdateAxesMinMax() { if (ComparisonRecords == null || !ComparisonRecords.Any()) { return; } var xAxis = ComparisonModel.GetAxisOrDefault("xAxis", null); var yAxis = ComparisonModel.GetAxisOrDefault("yAxis", null); if (xAxis == null || yAxis == null) { return; } xAxis.Reset(); double xMin = 0; double xMax = 0; double yMin = 0; double yMax = 0; double startTime = FirstSeconds; double endTime = LastSeconds; var sessionParallelQuery = ComparisonRecords.Select(record => record.WrappedRecordInfo.Session).AsParallel(); xMin = sessionParallelQuery.Min(session => { var window = session.GetFrametimePointsTimeWindow(startTime, endTime, _appConfiguration); if (window.Any()) { return(window.First().X); } else { return(double.MaxValue); } }); xMax = sessionParallelQuery.Max(session => { var window = session.GetFrametimePointsTimeWindow(startTime, endTime, _appConfiguration); if (window.Any()) { return(window.Last().X); } else { return(double.MinValue); } }); yMin = sessionParallelQuery.Min(session => { var window = session.GetFrametimePointsTimeWindow(startTime, endTime, _appConfiguration); if (window.Any()) { return(window.Min(pnt => pnt.Y)); } else { return(double.MaxValue); } }); yMax = sessionParallelQuery.Max(session => { var window = session.GetFrametimePointsTimeWindow(startTime, endTime, _appConfiguration); if (window.Any()) { return(window.Max(pnt => pnt.Y)); } else { return(double.MinValue); } }); xAxis.Minimum = xMin; xAxis.Maximum = xMax; yAxis.Minimum = yMin - (yMax - yMin) / 6; yAxis.Maximum = yMax + (yMax - yMin) / 6; ComparisonModel.InvalidatePlot(true); }