ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
timer.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <chrono>
11 
12 namespace colmap {
13 
14 class Timer {
15 public:
16  Timer();
17 
18  void Start();
19  void Restart();
20  void Pause();
21  void Resume();
22  void Reset();
23 
24  double ElapsedMicroSeconds() const;
25  double ElapsedSeconds() const;
26  double ElapsedMinutes() const;
27  double ElapsedHours() const;
28 
29  void PrintSeconds() const;
30  void PrintMinutes() const;
31  void PrintHours() const;
32 
33 private:
34  bool started_;
35  bool paused_;
36  std::chrono::high_resolution_clock::time_point start_time_;
37  std::chrono::high_resolution_clock::time_point pause_time_;
38 };
39 
40 } // namespace colmap
void Start()
Definition: timer.cc:43
void Pause()
Definition: timer.cc:54
double ElapsedHours() const
Definition: timer.cc:86
void Restart()
Definition: timer.cc:49
double ElapsedSeconds() const
Definition: timer.cc:82
void Reset()
Definition: timer.cc:64
double ElapsedMinutes() const
Definition: timer.cc:84
double ElapsedMicroSeconds() const
Definition: timer.cc:69
void PrintSeconds() const
Definition: timer.cc:88
void PrintHours() const
Definition: timer.cc:98
void Resume()
Definition: timer.cc:59
void PrintMinutes() const
Definition: timer.cc:93