32template <
typename Q>
struct BasicTimelineTick
37 constexpr BasicTimelineTick () =
default;
38 constexpr BasicTimelineTick (
const BasicTimelineTick &) =
default;
39 constexpr BasicTimelineTick (BasicTimelineTick &&)
noexcept =
default;
40 constexpr BasicTimelineTick &operator= (
const BasicTimelineTick &) =
default;
41 constexpr BasicTimelineTick &
42 operator= (BasicTimelineTick &&)
noexcept =
default;
45 template <
typename Q2>
46 requires std::convertible_to<Q2, Q>
54 template <
typename Q2>
55 requires (!std::same_as<Q, Q2>) && std::convertible_to<const Q2 &, Q>
57 : value_ (other.value_)
70 BasicTimelineTick operator- (
const BasicTimelineTick &o)
const
72 return BasicTimelineTick{ value_ - o.value_ };
74 BasicTimelineTick &operator+= (
const BasicTimelineTick &o)
79 BasicTimelineTick &operator-= (
const BasicTimelineTick &o)
84 BasicTimelineTick operator- ()
const {
return BasicTimelineTick{ -value_ }; }
89 constexpr double operator/ (
const BasicTimelineTick &o)
const
91 return value_ / o.value_;
95 constexpr BasicTimelineTick
operator* (
double scalar)
const
97 return BasicTimelineTick{ value_ * scalar };
104 return BasicTimelineTick{ scalar * t.value_ };
108 Q asQuantity ()
const {
return value_; }
109 double asDouble ()
const {
return value_.in (units::ticks); }
126template <
typename Q>
struct BasicContentTick
131 constexpr BasicContentTick () =
default;
132 constexpr BasicContentTick (
const BasicContentTick &) =
default;
133 constexpr BasicContentTick (BasicContentTick &&)
noexcept =
default;
134 constexpr BasicContentTick &operator= (
const BasicContentTick &) =
default;
135 constexpr BasicContentTick &
136 operator= (BasicContentTick &&)
noexcept =
default;
139 template <
typename Q2>
140 requires std::convertible_to<Q2, Q>
148 template <
typename Q2>
149 requires (!std::same_as<Q, Q2>) && std::convertible_to<const Q2 &, Q>
151 : value_ (other.value_)
164 BasicContentTick operator- (
const BasicContentTick &o)
const
166 return BasicContentTick{ value_ - o.value_ };
168 BasicContentTick &operator+= (
const BasicContentTick &o)
173 BasicContentTick &operator-= (
const BasicContentTick &o)
178 BasicContentTick operator- ()
const {
return BasicContentTick{ -value_ }; }
183 constexpr double operator/ (
const BasicContentTick &o)
const
185 return value_ / o.value_;
189 constexpr BasicContentTick
operator* (
double scalar)
const
191 return BasicContentTick{ value_ * scalar };
198 return BasicContentTick{ scalar * t.value_ };
202 Q asQuantity ()
const {
return value_; }
203 double asDouble ()
const {
return value_.in (units::ticks); }
Positions relative to a clip's data origin (0 = clip start).
constexpr BasicContentTick(const BasicContentTick< Q2 > &other)
Implicit widening (e.g. int→double) — au allows it.
constexpr double operator/(const BasicContentTick &o) const
Dimensionless ratio of two equal-domain quantities (this / o).
constexpr BasicContentTick(Q2 q)
Construct from any au quantity convertible to Q.
constexpr BasicContentTick operator*(double scalar) const
Scale by a dimensionless factor.