From 542b79fa00fa0d55b0ef1fb09cf87a04caaa0844 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 2 Aug 2019 00:02:51 +0300 Subject: [PATCH] Do not request needed data every point calculation --- gui/builtinGraphs/fitWarpTime.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/gui/builtinGraphs/fitWarpTime.py b/gui/builtinGraphs/fitWarpTime.py index aefd3b2b2..3212d2bc6 100644 --- a/gui/builtinGraphs/fitWarpTime.py +++ b/gui/builtinGraphs/fitWarpTime.py @@ -63,19 +63,28 @@ class FitWarpTimeGraph(FitGraph): ('distance', 'AU'): lambda v, fit, tgt: v / AU_METERS, ('distance', 'km'): lambda v, fit, tgt: v / 1000} + def _distance2timeCache(self, miscParams, fit, tgt): + return { + 'subwarpSpeed': self._subspeedCache.getSubwarpSpeed(fit), + 'warpSpeed': fit.warpSpeed} + def _distance2timeFull(self, singleGetter, mainParam, miscParams, fit, tgt): xs = [] ys = [] + cache = self._distance2timeCache(miscParams=miscParams, fit=fit, tgt=tgt) for distance in self._iterLinear(mainParam[1]): - time = singleGetter(self, mainParam=distance, miscParams=miscParams, fit=fit, tgt=tgt) + time = singleGetter(self, mainParam=distance, miscParams=miscParams, fit=fit, tgt=tgt, cache=cache) xs.append(distance) ys.append(time) return xs, ys - def _distance2timeSingle(self, mainParam, miscParams, fit, tgt): - subwarpSpeed = self._subspeedCache.getSubwarpSpeed(fit) - warpSpeed = fit.warpSpeed - time = calculate_time_in_warp(max_subwarp_speed=subwarpSpeed, max_warp_speed=warpSpeed, warp_dist=mainParam) + def _distance2timeSingle(self, mainParam, miscParams, fit, tgt, cache=None): + if cache is None: + cache = self._distance2timeCache(miscParams=miscParams, fit=fit, tgt=tgt) + time = calculate_time_in_warp( + max_subwarp_speed=cache['subwarpSpeed'], + max_warp_speed=cache['warpSpeed'], + warp_dist=mainParam) return time _getters = {