ezEngine  Milestone 7
Time.h
1 #pragma once
2 
3 #include <Foundation/Basics.h>
4 
10 class EZ_FOUNDATION_DLL ezTime
11 {
12 public:
13 
15  static ezTime Now(); // [tested]
16 
18  static ezTime Nanoseconds(double fNanoseconds) { return ezTime(fNanoseconds * 0.000000001); }
19 
21  static ezTime Microseconds(double fMicroseconds) { return ezTime(fMicroseconds * 0.000001); }
22 
24  static ezTime Milliseconds(double fMilliseconds) { return ezTime(fMilliseconds * 0.001); }
25 
27  static ezTime Seconds(double fSeconds) { return ezTime(fSeconds); }
28 
30 
32  ezTime() { m_fTime = 0.0; }
33 
35  void SetZero();
36 
42  float AsFloat() const;
43 
45  double GetNanoseconds() const;
46 
48  double GetMicroseconds() const;
49 
51  double GetMilliseconds() const;
52 
54  double GetSeconds() const;
55 
57  void operator -= (const ezTime& other);
58 
60  void operator += (const ezTime& other);
61 
63  ezTime operator - (const ezTime& other) const;
64 
66  ezTime operator + (const ezTime& other) const;
67 
68  bool operator< (const ezTime& rhs) const { return m_fTime < rhs.m_fTime; }
69  bool operator<=(const ezTime& rhs) const { return m_fTime <= rhs.m_fTime; }
70  bool operator> (const ezTime& rhs) const { return m_fTime > rhs.m_fTime; }
71  bool operator>=(const ezTime& rhs) const { return m_fTime >= rhs.m_fTime; }
72  bool operator==(const ezTime& rhs) const { return m_fTime == rhs.m_fTime; }
73  bool operator!=(const ezTime& rhs) const { return m_fTime != rhs.m_fTime; }
74 
75 private:
76 
78  explicit ezTime(double fTime);
79 
81  double m_fTime;
82 
83 private:
84 
85  EZ_MAKE_SUBSYSTEM_STARTUP_FRIEND(Foundation, Time);
86 
87  static void Initialize();
88 };
89 
90 ezTime operator* (ezTime t, double f);
91 ezTime operator* (double f, ezTime t);
92 
93 ezTime operator/ (ezTime t, double f);
94 ezTime operator/ (double f, ezTime t);
95 
96 
97 #include <Foundation/Time/Implementation/Time_inl.h>
98