Kairos is a small library of classes that aid in simplifying timing tasks by providing event sequencing, flexible clocks (alterable speed and direction), frames-per-second information, timestep simplification and more.
Signed number type represented using an absolute value (int) and a relative value (double). Used for real numbers that require consistent accuracy.
Time duration type.
Pausable stopwatch. Uses
Duration. <chrono> is used for clock.
Pausable countdown timer. Uses
Flexible time control. Ability to change the speed of time (including backwards). Uses
Light class to help with timestep control. Does not keep track of time; this must be done manually.
Timestep control. Keeps track of time internally so no need for external clock. Has more features than the "lite" version such as an ability to pause and setting a maximum time accumulation. Uses
Event sequence playback system. Plays back events of any structure. Has a number of separate tracks of events. Each track stores them in a vector with a timecode (
Absorel), and transfers them into a 'waiting queue' vector if time passes it. Can also automatically remove the events during the following update or can be left and new events will be added to them. Entirely template-based. Uses
Absorel(for current timecode position),
Duration(for current play time), and
Basic class that provides the current time. Uses <chrono> to access the system clock.
Simple class for keeping track of frames per second. Updates once per second. Uses
All of Kairos's functions/classes are in the
Kairos has one list of inclusion:
<Kairos.hpp> just includes
Kairos has no external dependencies.
Some of the examples may depend on external libraries.