static void CalcSingleValueStat(ValueStats valueStats, int path, int fromIdx, int toIdx, GetValuesFromIndex valuesFromIdx) { for (int i = fromIdx; i <= toIdx; i++) { IReadOnlyFRVs values = valuesFromIdx(i); if (values.ContainsPath(path)) { valueStats.Update(values[path]); } } }
public float GetLocalMax(int frame, int numFrames, string path) { float maxValue = 0.0f; int startFrame = Math.Max(0, frame - numFrames); int endFrame = Math.Min(frame, FrameRecords.Count - 1); for (int i = startFrame; i <= endFrame; i++) { IReadOnlyFRVs frv = FrameRecords[i].Values; if (frv.ContainsPath(path)) { maxValue = Math.Max(maxValue, frv[path]); } } return(maxValue); }
public float GetMovingAverage(int frame, int numFrames, string path) { float avgValue = 0.0f; int startFrame = Math.Max(0, frame - numFrames); int endFrame = Math.Min(frame + numFrames, FrameRecords.Count); int numFramesPresent = 0; for (int i = startFrame; i < endFrame; i++) { IReadOnlyFRVs frv = FrameRecords[i].Values; if (frv.ContainsPath(path)) { avgValue += frv[path]; numFramesPresent++; } } return(avgValue / numFramesPresent); }