7 #ifndef PXR_EXEC_EF_TIME_INTERVAL_H
8 #define PXR_EXEC_EF_TIME_INTERVAL_H
20 #include <initializer_list>
41 bool defaultTime =
false) :
42 _timeMultiInterval(timeMultiInterval),
43 _defaultTime(defaultTime)
48 bool defaultTime =
false) :
49 _timeMultiInterval(timeInterval),
50 _defaultTime(defaultTime)
56 const std::vector<double> ×,
57 bool defaultTime =
false) :
58 _defaultTime(defaultTime)
67 const std::initializer_list<double> ×,
68 bool defaultTime =
false) :
69 _defaultTime(defaultTime)
78 _timeMultiInterval.
Clear();
85 return !_defaultTime && _timeMultiInterval.
IsEmpty();
92 return _timeMultiInterval;
113 : _ContainsTime(time);
135 return _defaultTime &&
146 return _timeMultiInterval == rhs._timeMultiInterval &&
147 _defaultTime == rhs._defaultTime;
151 return !(*
this == rhs);
157 _timeMultiInterval.
Add(rhs._timeMultiInterval);
158 _defaultTime |= rhs._defaultTime;
164 _timeMultiInterval.
Add(interval);
181 _timeMultiInterval.
Intersect(rhs._timeMultiInterval);
182 _defaultTime &= rhs._defaultTime;
187 if (_timeMultiInterval < rhs._timeMultiInterval)
return true;
188 if (_timeMultiInterval != rhs._timeMultiInterval)
return false;
189 if (_defaultTime != rhs._defaultTime)
return _defaultTime;
EfTimeInterval(const GfInterval &timeInterval, bool defaultTime=false)
EfTimeInterval(const GfMultiInterval &timeMultiInterval=GfMultiInterval(), bool defaultTime=false)
EF_API std::ostream & operator<<(std::ostream &os, const EfTimeInterval &timeInterval)
void operator|=(const EfTimeInterval &rhs)
GF_API bool IsEmpty() const
Returns true if the multi-interval is empty.
void operator&=(const EfTimeInterval &rhs)
GF_API bool Contains(double d) const
Returns true if the multi-interval contains the given value.
GT_API const UT_StringHolder time
#define PXR_NAMESPACE_OPEN_SCOPE
EF_API std::string GetAsString() const
Get time interval as string, for debugging.
GF_API void Add(const GfInterval &i)
Add the given interval to the multi-interval.
void operator|=(const GfInterval &interval)
bool Contains(const EfTime &time) const
bool IsDefaultTimeSet() const
static GfMultiInterval GetFullInterval()
Returns the full interval (-inf, inf).
bool operator!=(const EfTimeInterval &rhs) const
EfTimeInterval(const std::initializer_list< double > ×, bool defaultTime=false)
const UsdTimeCode GetTimeCode() const
GF_API void ArithmeticAdd(const GfInterval &i)
bool Contains(const EfTimeInterval &rhs) const
static EfTimeInterval GetFullInterval()
const GfMultiInterval & GetTimeMultiInterval() const
GF_API void Clear()
Clear the multi-interval.
#define PXR_NAMESPACE_CLOSE_SCOPE
EfTimeInterval(const std::vector< double > ×, bool defaultTime=false)
bool operator<(const EfTimeInterval &rhs) const
Less-than operator.
bool operator==(const EfTimeInterval &rhs) const
GF_API void Intersect(const GfInterval &i)
Clear the multi-interval.
void operator|=(const EfTime &time)
EfTimeInterval & Extend(double leftFrames, double rightFrames)
OIIO_UTIL_API std::string extension(string_view filepath, bool include_dot=true) noexcept
bool IsFullInterval() const