diff options
author | rodri <rgl@antares-labs.eu> | 2021-03-08 21:01:40 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2021-03-08 21:01:40 +0000 |
commit | c35a8302c6275a1ba71dcdff15f58310d064a909 (patch) | |
tree | 855fea01169b4de19a8d777446008df0ed672a54 /main.c | |
parent | c24c56fa9ac83b61a6ad6732f9704b9dddf79b22 (diff) | |
download | gamephysics-c35a8302c6275a1ba71dcdff15f58310d064a909.tar.gz gamephysics-c35a8302c6275a1ba71dcdff15f58310d064a909.tar.bz2 gamephysics-c35a8302c6275a1ba71dcdff15f58310d064a909.zip |
refactor statistics code to make it more general purpose.
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 11 |
1 files changed, 3 insertions, 8 deletions
@@ -13,9 +13,6 @@ State state; double t, Δt; -double min(double a, double b) { return a < b? a: b; } -double max(double a, double b) { return a > b? a: b; } - /* * Dynamics stepper * @@ -153,7 +150,7 @@ redraw(void) draw(screen, screen->r, display->black, nil, ZP); drawtimestep(t); - drawbar(state.min); drawbar(state.max); drawbar(state.avg); + drawbar(state.stats.min); drawbar(state.stats.max); drawbar(state.stats.avg); fillellipse(screen, toscreen(Pt2(0,state.x,1)), 2, 2, display->white, ZP); flushimage(display, 1); @@ -176,6 +173,7 @@ resetsim(void) { memset(&state, 0, sizeof(State)); state.x = 100; + state.stats.update = statsupdate; t = 0; } @@ -275,10 +273,7 @@ threadmain(int argc, char *argv[]) integrate(&state, t, Δt); - state.acc += state.x; - state.avg = state.acc/++state.nsteps; - state.min = min(state.min, state.x); - state.max = max(state.max, state.x); + state.stats.update(&state.stats, state.x); redraw(); |