omni::math::linalg::range3

Defined in usdrt/gf/range.h

template<typename T>
class range3

Public Types

using ScalarType = T
using MinMaxType = omni::math::linalg::vec3<T>
using ThisType = range3<T>

Public Functions

inline range3()
constexpr range3(const ThisType&) = default
inline explicit constexpr range3(ScalarType size)
inline constexpr void SetEmpty()

Sets the range to an empty interval.

inline constexpr range3(const MinMaxType &min, const MinMaxType &max)

This constructor initializes the minimum and maximum points.

inline const MinMaxType &GetMin() const

Returns the minimum value of the range.

inline const MinMaxType &GetMax() const

Returns the maximum value of the range.

inline MinMaxType GetSize() const

Returns the size of the range.

inline MinMaxType GetMidpoint() const

Returns the midpoint of the range, that is, 0.5*(min+max). Note: this returns zero in the case of default-constructed ranges, or ranges set via SetEmpty().

inline void SetMin(const MinMaxType &min)

Sets the minimum value of the range.

inline void SetMax(const MinMaxType &max)

Sets the maximum value of the range.

inline bool IsEmpty() const

Returns whether the range is empty (max < min).

inline void ExtendBy(const MinMaxType &point)

Modifies the range if necessary to surround the given value.

Deprecated:

Use UnionWith() instead.

inline void ExtendBy(const ThisType &range)

Modifies the range if necessary to surround the given range.

Deprecated:

Use UnionWith() instead.

inline bool Contains(const MinMaxType &point) const

Returns true if the point is located inside the range. As with all operations of this type, the range is assumed to include its extrema.

inline bool Contains(const ThisType &range) const

Returns true if the range is located entirely inside the range. As with all operations of this type, the ranges are assumed to include their extrema.

inline bool IsInside(const MinMaxType &point) const

Returns true if the point is located inside the range. As with all operations of this type, the range is assumed to include its extrema.

Deprecated:

Use Contains() instead.

inline bool IsInside(const ThisType &range) const

Returns true if the range is located entirely inside the range. As with all operations of this type, the ranges are assumed to include their extrema.

Deprecated:

Use Contains() instead.

inline bool IsOutside(const ThisType &range) const

Returns true if the range is located entirely outside the range. As with all operations of this type, the ranges are assumed to include their extrema.

inline const ThisType &UnionWith(const ThisType &b)

Extend this to include b.

inline const ThisType &UnionWith(const MinMaxType &b)

Extend this to include b.

inline const ThisType &Union(const ThisType &b)

Extend this to include b.

Deprecated:

Use UnionWith() instead.

inline const ThisType &Union(const MinMaxType &b)

Extend this to include b.

Deprecated:

Use UnionWith() instead.

inline const ThisType &IntersectWith(const ThisType &b)

Modifies this range to hold its intersection with b and returns the result.

inline const ThisType &Intersection(const ThisType &b)

Modifies this range to hold its intersection with b and returns the result.

Deprecated:

Use IntersectWith() instead.

inline ThisType &operator+=(const ThisType &b)

unary sum.

inline ThisType &operator-=(const ThisType &b)

unary difference.

inline ThisType &operator*=(double m)

unary multiply.

inline ThisType &operator/=(double m)

unary division.

inline ThisType operator+(const ThisType &b) const

binary sum.

inline ThisType operator-(const ThisType &b) const

binary difference.

inline bool operator==(const ThisType &b) const

The min and max points must match exactly for equality.

inline bool operator!=(const ThisType &b) const
inline double GetDistanceSquared(const MinMaxType &p) const

Compute the squared distance from a point to the range.

inline MinMaxType GetCorner(size_t i) const

Returns the ith corner of the range, in the following order: LDB, RDB, LUB, RUB, LDF, RDF, LUF, RUF. Where L/R is left/right, D/U is down/up, and B/F is back/front.

inline ThisType GetOctant(size_t i) const

Returns the ith octant of the range, in the following order: LDB, RDB, LUB, RUB, LDF, RDF, LUF, RUF. Where L/R is left/right, D/U is down/up, and B/F is back/front.

Public Static Functions

static inline ThisType GetUnion(const ThisType &a, const ThisType &b)

Returns the smallest ThisType which contains both a and b.

static inline ThisType Union(const ThisType &a, const ThisType &b)

Returns the smallest ThisType which contains both a and b.

Deprecated:

Use GetUnion() instead.

static inline ThisType GetIntersection(const ThisType &a, const ThisType &b)

Returns a ThisType that describes the intersection of a and b.

static inline ThisType Intersection(const ThisType &a, const ThisType &b)

Returns a ThisType that describes the intersection of a and b.

Deprecated:

Use GetIntersection() instead.

static inline constexpr const ThisType UnitCube()

The unit cube.

Public Static Attributes

static const size_t dimension = 3

Friends

inline friend ThisType operator*(double m, const ThisType &r)

scalar multiply.

inline friend ThisType operator*(const ThisType &r, double m)

scalar multiply.

inline friend ThisType operator/(const ThisType &r, double m)

scalar divide.