Recast Navigation
Navigation-mesh Toolset for Games
Loading...
Searching...
No Matches
ValueHistory.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
7{
8 static constexpr int MAX_HISTORY = 256;
9 std::vector<float> samples{};
10 int nextSampleIndex = 0;
11
12public:
13 ValueHistory() { samples.reserve(MAX_HISTORY); }
14
15 void addSample(const float val)
16 {
17 if (samples.size() < MAX_HISTORY)
18 {
19 samples.push_back(val);
20 }
21 else
22 {
23 samples[nextSampleIndex] = val;
24 nextSampleIndex = (nextSampleIndex + 1) % MAX_HISTORY;
25 }
26 }
27
28 [[nodiscard]] int getSampleCount() const { return static_cast<int>(samples.size()); }
29
30 [[nodiscard]] float getSample(const int i) const { return samples[(nextSampleIndex + i) % MAX_HISTORY]; }
31
32 [[nodiscard]] float getSampleMin() const;
33 [[nodiscard]] float getSampleMax() const;
34 [[nodiscard]] float getAverage() const;
35};
36
38{
39 void setRect(int ix, int iy, int iw, int ih, int ipad);
40 void setValueRange(float minValue, float maxValue, int numDivisions, const std::string& units);
41
42 int x;
43 int y;
44 int width;
45 int height;
47
48 float rangeMin;
49 float rangeMax;
51
52 std::string units;
53};
54
55void drawGraphBackground(const GraphParams* p);
56void drawGraph(const GraphParams* params, const ValueHistory* graph, int index, const char* label, const unsigned int color);
void drawGraph(const GraphParams *params, const ValueHistory *graph, int index, const char *label, const unsigned int color)
Definition ValueHistory.cpp:96
void drawGraphBackground(const GraphParams *p)
Definition ValueHistory.cpp:54
Definition ValueHistory.h:7
int getSampleCount() const
Definition ValueHistory.h:28
ValueHistory()
Definition ValueHistory.h:13
void addSample(const float val)
Definition ValueHistory.h:15
float getSampleMin() const
Definition ValueHistory.cpp:7
float getSampleMax() const
Definition ValueHistory.cpp:17
float getSample(const int i) const
Definition ValueHistory.h:30
float getAverage() const
Definition ValueHistory.cpp:27
Definition ValueHistory.h:38
int padding
Definition ValueHistory.h:46
float rangeMax
Definition ValueHistory.h:49
void setValueRange(float minValue, float maxValue, int numDivisions, const std::string &units)
Definition ValueHistory.cpp:46
float rangeMin
Definition ValueHistory.h:48
int rangeDivisions
Definition ValueHistory.h:50
std::string units
Definition ValueHistory.h:52
int height
Definition ValueHistory.h:45
void setRect(int ix, int iy, int iw, int ih, int ipad)
Definition ValueHistory.cpp:37
int width
Definition ValueHistory.h:44
int x
Definition ValueHistory.h:42
int y
Definition ValueHistory.h:43