Select Git revision
mesh_select_checkered.py
timer.h 1.21 KiB
#pragma once
#include <chrono>
class timer
{
private:
std::chrono::steady_clock::duration total_duration;
std::chrono::steady_clock::duration lap_duration;
std::chrono::steady_clock::time_point start_point;
static constexpr double ticks_to_sec = ((double)std::chrono::steady_clock::period::num) / std::chrono::steady_clock::period::den; // duration of one tick
public:
timer(bool start = false)
{
this->reset();
if(start)
this->start();
}
void start()
{
this->start_point = std::chrono::steady_clock::now();
}
void stop()
{
auto stop_point = std::chrono::steady_clock::now();
this->lap_duration = stop_point - start_point;
this->total_duration += this->lap_duration;
}
void reset()
{
this->total_duration = std::chrono::steady_clock::duration(0);
this->lap_duration = std::chrono::steady_clock::duration(0);
}
std::chrono::steady_clock::duration get_lap_duration() const
{
return this->lap_duration;
}
std::chrono::steady_clock::duration get_total_duration() const
{
return this->total_duration;
}
double get_lap_time() const
{
return (double)this->lap_duration.count() * ticks_to_sec;
}
double get_total_time() const
{
return this->total_duration.count() * ticks_to_sec;
}
};