From 886bdd0fa43a2fcdeca306648b643b623af99f88 Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Tue, 9 Feb 2016 17:38:28 -0200 Subject: Added TransitionControl and plot rewinding. New component overlays main view and handles middle clicks/drags to performing rewinding. Also sports smooth transitioning back to current projection whenever the mouse button is lifted. Next up, the same kind of transitions in the displayed values. --- rewindworkerthread.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 rewindworkerthread.cpp (limited to 'rewindworkerthread.cpp') diff --git a/rewindworkerthread.cpp b/rewindworkerthread.cpp new file mode 100644 index 0000000..f9fa999 --- /dev/null +++ b/rewindworkerthread.cpp @@ -0,0 +1,23 @@ +#include "rewindworkerthread.h" + +// The full duration (usecs) of the restoration animation +static const double DURATION = 250000; + +// The time to wait (usecs) before the next animation tick +static const double TICK_TIME = DURATION / 60.0; + +// The amount to increase 't' per time step +static const double TICK_SIZE = TICK_TIME / DURATION; + +void RewindWorkerThread::run() +{ + double t = m_control->t(); + + while (t + TICK_SIZE < 1.0) { + t += TICK_SIZE; + m_control->setT(t); + QThread::usleep(TICK_TIME); + } + + m_control->setT(1.0); +} -- cgit v1.2.3