Interval¶
#include <Imath/ImathInterval.h>
The Interval
class template represents a scalar interval, with
predefined typedefs for short
, int
, float
, and double
.
An Interval
is essentially a Box<T>
that allows T
to be a
scalar.
Example:
#include <Imath/ImathInterval.h>
#include <cassert>
void
interval_example ()
{
Imath::Intervalf v;
assert (v.isEmpty ());
assert (!v.hasVolume ());
assert (!v.isInfinite ());
v.extendBy (1.0f);
assert (!v.isEmpty ());
v.extendBy (2.0f);
assert (v.hasVolume ());
assert (v.intersects (1.5f));
}
-
template<class T>
class Interval¶ An Interval has a min and a max and some miscellaneous functions.
It is basically a Box<T> that allows T to be a scalar.
Direct access to bounds
Constructors
-
inline constexpr Interval() noexcept¶
Initialize to the empty interval.
Comparison
Manipulation
-
inline void makeEmpty() noexcept¶
Set the interval to be empty.
An interval is empty if the minimum is greater than the maximum.
-
inline void extendBy(const Interval<T> &interval) noexcept¶
Extend the interval to include the given interval.
-
inline void makeInfinite() noexcept¶
Make the interval include the entire range of the base type.
Query
-
inline constexpr T size() const noexcept¶
Return the size of the interval. The size is (max-min). An empty box has a size of 0.
-
inline constexpr T center() const noexcept¶
Return the center of the interval.
The center is defined as (max+min)/2. The center of an empty interval is undefined.
-
inline constexpr bool intersects(const T &point) const noexcept¶
Return true if the given point is inside the interval, false otherwise.
-
inline constexpr bool intersects(const Interval<T> &interval) const noexcept¶
Return true if the given interval is inside the interval, false otherwise.
-
inline constexpr bool isEmpty() const noexcept¶
Return true if the interval is empty, false otherwise.
An empty interval’s minimum is greater than its maximum.
-
inline constexpr bool hasVolume() const noexcept¶
Return true if the interval is larger than a single point, false otherwise.
-
inline constexpr bool isInfinite() const noexcept¶
Return true if the interval contains all points, false otherwise.
An infinite box has a mimimum of std::numeric_limits<T>::lowest() and a maximum of std::numeric_limits<T>::max()
-
inline constexpr Interval() noexcept¶