7#ifndef PXR_BASE_GF_DURATION_H
8#define PXR_BASE_GF_DURATION_H
13#include "pxr/base/gf/api.h"
18PXR_NAMESPACE_OPEN_SCOPE
36 constexpr GfDuration(
double duration = 0.0) noexcept : _duration(duration) {};
46 {
return lhs._duration == rhs._duration; }
47 friend constexpr bool operator!=(
const GfDuration &lhs,
49 {
return lhs._duration != rhs._duration; }
50 friend constexpr bool operator<(
const GfDuration &lhs,
52 {
return lhs._duration < rhs._duration; }
53 friend constexpr bool operator>(
const GfDuration &lhs,
55 {
return lhs._duration > rhs._duration; }
56 friend constexpr bool operator<=(
const GfDuration &lhs,
58 {
return lhs._duration <= rhs._duration; }
59 friend constexpr bool operator>=(
const GfDuration &lhs,
61 {
return lhs._duration >= rhs._duration; }
67 const double amount)
noexcept
75 const double amount)
noexcept
81 {
return (_duration / rhs._duration); }
88 {
return GfDuration(lhs._duration + rhs._duration); }
92 {
return GfDuration(lhs._duration - rhs._duration); }
93 constexpr GfDuration operator-() const noexcept
98 explicit constexpr operator double() const noexcept {
return _duration;}
103 return std::hash<double>()(_duration);
109 size_t operator()(
const GfDuration& ap)
const {
117 template <
class HashState>
139 std::swap(lhs._duration, rhs._duration);
150PXR_NAMESPACE_CLOSE_SCOPE
Value type that represents a duration measured in time codes.
constexpr double GetValue() const noexcept
Return the duration value.
friend constexpr bool operator==(const GfDuration &lhs, const GfDuration &rhs) noexcept
Comparison operators.
friend constexpr GfDuration operator*(const GfDuration &d, const double amount) noexcept
Scale duration values by doubles.
friend constexpr GfDuration operator+(const GfDuration &lhs, const GfDuration &rhs) noexcept
Sum, difference, and negation of durations are durations.
size_t GetHash() const
Hash operations.
constexpr double operator/(const GfDuration &rhs) const noexcept
Ratio of two durations is a unitless double scale factor.
constexpr GfDuration(double duration=0.0) noexcept
Construct a duration with the given elapsed time.
friend void TfHashAppend(HashState &h, const GfDuration &d)
Enable TfHash for GfDuration.
GF_API std::ostream & operator<<(std::ostream &out, const GfDuration &duration)
Stream insertion operator for the string representation of this duration code.