Public Member Functions | Static Public Attributes | Friends | Related Functions | List of all members
cpp3ds::Time Class Reference

Represents a time value. More...

#include <Time.hpp>

Public Member Functions

 Time ()
 Default constructor. More...
 
float asSeconds () const
 Return the time value as a number of seconds. More...
 
Int32 asMilliseconds () const
 Return the time value as a number of milliseconds. More...
 
Int64 asMicroseconds () const
 Return the time value as a number of microseconds. More...
 

Static Public Attributes

static const Time Zero
 Predefined "zero" time value. More...
 

Friends

Time seconds (float)
 
Time milliseconds (Int32)
 
Time microseconds (Int64)
 

Related Functions

(Note that these are not member functions.)

Time seconds (float amount)
 Construct a time value from a number of seconds. More...
 
Time milliseconds (Int32 amount)
 Construct a time value from a number of milliseconds. More...
 
Time microseconds (Int64 amount)
 Construct a time value from a number of microseconds. More...
 
bool operator== (Time left, Time right)
 Overload of == operator to compare two time values. More...
 
bool operator!= (Time left, Time right)
 Overload of != operator to compare two time values. More...
 
bool operator< (Time left, Time right)
 Overload of < operator to compare two time values. More...
 
bool operator> (Time left, Time right)
 Overload of > operator to compare two time values. More...
 
bool operator<= (Time left, Time right)
 Overload of <= operator to compare two time values. More...
 
bool operator>= (Time left, Time right)
 Overload of >= operator to compare two time values. More...
 
Time operator- (Time right)
 Overload of unary - operator to negate a time value. More...
 
Time operator+ (Time left, Time right)
 Overload of binary + operator to add two time values. More...
 
Timeoperator+= (Time &left, Time right)
 Overload of binary += operator to add/assign two time values. More...
 
Time operator- (Time left, Time right)
 Overload of binary - operator to subtract two time values. More...
 
Timeoperator-= (Time &left, Time right)
 Overload of binary -= operator to subtract/assign two time values. More...
 
Time operator* (Time left, float right)
 Overload of binary * operator to scale a time value. More...
 
Time operator* (Time left, Int64 right)
 Overload of binary * operator to scale a time value. More...
 
Time operator* (float left, Time right)
 Overload of binary * operator to scale a time value. More...
 
Time operator* (Int64 left, Time right)
 Overload of binary * operator to scale a time value. More...
 
Timeoperator*= (Time &left, float right)
 Overload of binary *= operator to scale/assign a time value. More...
 
Timeoperator*= (Time &left, Int64 right)
 Overload of binary *= operator to scale/assign a time value. More...
 
Time operator/ (Time left, float right)
 Overload of binary / operator to scale a time value. More...
 
Time operator/ (Time left, Int64 right)
 Overload of binary / operator to scale a time value. More...
 
Timeoperator/= (Time &left, float right)
 Overload of binary /= operator to scale/assign a time value. More...
 
Timeoperator/= (Time &left, Int64 right)
 Overload of binary /= operator to scale/assign a time value. More...
 
float operator/ (Time left, Time right)
 Overload of binary / operator to compute the ratio of two time values. More...
 
Time operator% (Time left, Time right)
 Overload of binary % operator to compute remainder of a time value. More...
 
Timeoperator%= (Time &left, Time right)
 Overload of binary %= operator to compute/assign remainder of a time value. More...
 

Detailed Description

Represents a time value.

cpp3ds::Time encapsulates a time value in a flexible way.

It allows to define a time value either as a number of seconds, milliseconds or microseconds. It also works the other way round: you can read a time value as either a number of seconds, milliseconds or microseconds.

By using such a flexible interface, the API doesn't impose any fixed type or resolution for time values, and let the user choose its own favorite representation.

Time values support the usual mathematical operations: you can add or subtract two times, multiply or divide a time by a number, compare two times, etc.

Since they represent a time span and not an absolute time value, times can also be negative.

Usage example:

cpp3ds::Time t1 = cpp3ds::seconds(0.1f);
Int32 milli = t1.asMilliseconds(); // 100
cpp3ds::Time t2 = cpp3ds::milliseconds(30);
Int64 micro = t2.asMicroseconds(); // 30000
cpp3ds::Time t3 = cpp3ds::microseconds(-800000);
float sec = t3.asSeconds(); // -0.8
void update(cpp3ds::Time elapsed)
{
position += speed * elapsed.asSeconds();
}
update(cpp3ds::milliseconds(100));
See also
cpp3ds::Clock

Definition at line 37 of file Time.hpp.

Constructor & Destructor Documentation

cpp3ds::Time::Time ( )

Default constructor.

Sets the time value to zero.

Member Function Documentation

Int64 cpp3ds::Time::asMicroseconds ( ) const

Return the time value as a number of microseconds.

Returns
Time in microseconds
See also
asSeconds, asMilliseconds
Int32 cpp3ds::Time::asMilliseconds ( ) const

Return the time value as a number of milliseconds.

Returns
Time in milliseconds
See also
asSeconds, asMicroseconds
float cpp3ds::Time::asSeconds ( ) const

Return the time value as a number of seconds.

Returns
Time in seconds
See also
asMilliseconds, asMicroseconds

Friends And Related Function Documentation

Time microseconds ( Int64  amount)
related

Construct a time value from a number of microseconds.

Parameters
amountNumber of microseconds
Returns
Time value constructed from the amount of microseconds
See also
seconds, milliseconds
Time milliseconds ( Int32  amount)
related

Construct a time value from a number of milliseconds.

Parameters
amountNumber of milliseconds
Returns
Time value constructed from the amount of milliseconds
See also
seconds, microseconds
bool operator!= ( Time  left,
Time  right 
)
related

Overload of != operator to compare two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
True if both time values are different
Time operator% ( Time  left,
Time  right 
)
related

Overload of binary % operator to compute remainder of a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
left modulo right
Time & operator%= ( Time left,
Time  right 
)
related

Overload of binary %= operator to compute/assign remainder of a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
left modulo right
Time operator* ( Time  left,
float  right 
)
related

Overload of binary * operator to scale a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a number)
Returns
left multiplied by right
Time operator* ( Time  left,
Int64  right 
)
related

Overload of binary * operator to scale a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a number)
Returns
left multiplied by right
Time operator* ( float  left,
Time  right 
)
related

Overload of binary * operator to scale a time value.

Parameters
leftLeft operand (a number)
rightRight operand (a time)
Returns
left multiplied by right
Time operator* ( Int64  left,
Time  right 
)
related

Overload of binary * operator to scale a time value.

Parameters
leftLeft operand (a number)
rightRight operand (a time)
Returns
left multiplied by right
Time & operator*= ( Time left,
float  right 
)
related

Overload of binary *= operator to scale/assign a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a number)
Returns
left multiplied by right
Time & operator*= ( Time left,
Int64  right 
)
related

Overload of binary *= operator to scale/assign a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a number)
Returns
left multiplied by right
Time operator+ ( Time  left,
Time  right 
)
related

Overload of binary + operator to add two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
Sum of the two times values
Time & operator+= ( Time left,
Time  right 
)
related

Overload of binary += operator to add/assign two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
Sum of the two times values
Time operator- ( Time  right)
related

Overload of unary - operator to negate a time value.

Parameters
rightRight operand (a time)
Returns
Opposite of the time value
Time operator- ( Time  left,
Time  right 
)
related

Overload of binary - operator to subtract two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
Difference of the two times values
Time & operator-= ( Time left,
Time  right 
)
related

Overload of binary -= operator to subtract/assign two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
Difference of the two times values
Time operator/ ( Time  left,
float  right 
)
related

Overload of binary / operator to scale a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a number)
Returns
left divided by right
Time operator/ ( Time  left,
Int64  right 
)
related

Overload of binary / operator to scale a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a number)
Returns
left divided by right
float operator/ ( Time  left,
Time  right 
)
related

Overload of binary / operator to compute the ratio of two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
left divided by right
Time & operator/= ( Time left,
float  right 
)
related

Overload of binary /= operator to scale/assign a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a number)
Returns
left divided by right
Time & operator/= ( Time left,
Int64  right 
)
related

Overload of binary /= operator to scale/assign a time value.

Parameters
leftLeft operand (a time)
rightRight operand (a number)
Returns
left divided by right
bool operator< ( Time  left,
Time  right 
)
related

Overload of < operator to compare two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
True if left is lesser than right
bool operator<= ( Time  left,
Time  right 
)
related

Overload of <= operator to compare two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
True if left is lesser or equal than right
bool operator== ( Time  left,
Time  right 
)
related

Overload of == operator to compare two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
True if both time values are equal
bool operator> ( Time  left,
Time  right 
)
related

Overload of > operator to compare two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
True if left is greater than right
bool operator>= ( Time  left,
Time  right 
)
related

Overload of >= operator to compare two time values.

Parameters
leftLeft operand (a time)
rightRight operand (a time)
Returns
True if left is greater or equal than right
Time seconds ( float  amount)
related

Construct a time value from a number of seconds.

Parameters
amountNumber of seconds
Returns
Time value constructed from the amount of seconds
See also
milliseconds, microseconds

Member Data Documentation

const Time cpp3ds::Time::Zero
static

Predefined "zero" time value.

Definition at line 82 of file Time.hpp.


The documentation for this class was generated from the following file: