1 #ifndef INCLUDE_AL_INTERVAL_HPP
2 #define INCLUDE_AL_INTERVAL_HPP
77 const T&
max()
const {
return mMax; }
78 const T&
min()
const {
return mMin; }
95 bool operator!=(
const Interval<U>& v) {
100 Interval& operator+=(
const Interval<U>& v) {
106 Interval& operator-=(
const Interval<U>& v) {
112 Interval& operator*=(
const Interval<U>& v) {
113 T a =
min() * v.min(), b =
min() * v.max(), c =
max() * v.min(),
121 Interval& operator/=(
const Interval<U>& v) {
122 T a =
min() / v.min(), b =
min() / v.max(), c =
max() / v.min(),
137 mMin = c - d * T(0.5);
170 const T&
min(
const T& a,
const T& b) {
return a < b ? a : b; }
171 const T&
max(
const T& a,
const T& b) {
return a > b ? a : b; }
A closed interval [min, max].
T center() const
Returns center point.
const T & min() const
Get minimum endpoint.
T toUnit(const T &v) const
Linearly map point in interval to point in the unit interval.
bool proper() const
Returns true if diameter is non-zero.
const T & max() const
Get maximum endpoint.
Interval & min(const T &v)
Set minimum endpoint.
Interval & translate(const T &v)
Translate interval by fixed amount.
Interval & endpoints(const T &min, const T &max)
Set the endpoints.
Interval & center(const T &v)
Set center point preserving diameter.
Interval & centerDiameter(const T &c, const T &d)
Set center and diameter.
Interval(const T &min, const T &max)
bool degenerate() const
Returns true if diameter is zero.
T size() const
Returns absolute difference of endpoints.
T radius() const
Returns one-half the diameter.
bool contains(const T &v) const
Returns true if value is in interval.
Interval & max(const T &v)
Set maximum endpoint.
Interval & diameter(const T &v)
Set diameter (width) preserving center.
T diameter() const
Returns absolute difference of endpoints.