Пример #1
0
        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]);
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }