28 #ifndef PXR_BASE_GF_RANGE1D_H
29 #define PXR_BASE_GF_RANGE1D_H
39 #include <hboost/functional/hash.hpp>
86 : _min(min), _max(max)
91 double GetMin()
const {
return _min; }
94 double GetMax()
const {
return _max; }
97 double GetSize()
const {
return _max - _min; }
129 return (point >= _min && point <= _max);
158 return (range._max < _min || range._min > _max);
164 _FindMin(res._min,b._min);
165 _FindMax(res._max,b._max);
171 _FindMin(_min,b._min);
172 _FindMax(_max,b._max);
204 _FindMax(res._min,b._min);
205 _FindMin(res._max,b._max);
218 _FindMax(_min,b._min);
219 _FindMin(_max,b._max);
259 return *
this *= (1.0 /
m);
264 return GfRange1d(_min + b._min, _max + b._max);
270 return GfRange1d(_min - b._max, _max - b._min);
289 return r * (1.0 /
m);
295 hboost::hash_combine(h, r._min);
296 hboost::hash_combine(h, r._max);
302 return (_min == b._min && _max == b._max);
306 return !(*
this ==
b);
326 static void _FindMin(
double &dest,
double point) {
327 if (point < dest) dest = point;
331 static void _FindMax(
double &dest,
double point) {
332 if (point > dest) dest = point;
346 return _min == double(other.
GetMin()) &&
347 _max ==
double(other.
GetMax());
352 return !(*
this == other);
358 #endif // PXR_BASE_GF_RANGE1D_H
double MinMaxType
Helper typedef.
const GfRange1d & UnionWith(const GfRange1d &b)
Extend this to include b.
GLboolean GLboolean GLboolean b
double GetMin() const
Returns the minimum value of the range.
bool Contains(double point) const
GfRange1d operator+=(const GfRange1d &b)
unary sum.
static const size_t dimension
static GfRange1d Union(const GfRange1d &a, const GfRange1d &b)
friend size_t hash_value(const GfRange1d &r)
hash.
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the and then *wait for them to all complete We provide a helper class
const GfRange1d & Union(double b)
void ExtendBy(double point)
bool operator==(const GfRange1d &b) const
The min and max points must match exactly for equality.
GF_API std::ostream & operator<<(std::ostream &, GfRange1d const &)
bool operator!=(const GfRange1d &b) const
const GfRange1d & IntersectWith(const GfRange1d &b)
const GfRange1d & Intersection(const GfRange1d &b)
double GetMax() const
Returns the maximum value of the range.
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
friend GfRange1d operator*(double m, const GfRange1d &r)
scalar multiply.
double GetMidpoint() const
GfRange1d operator+(const GfRange1d &b) const
binary sum.
bool IsEmpty() const
Returns whether the range is empty (max < min).
GLboolean GLboolean GLboolean GLboolean a
void SetMax(double max)
Sets the maximum value of the range.
ImageBuf OIIO_API max(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
void SetEmpty()
Sets the range to an empty interval.
bool IsInside(const GfRange1d &range) const
GF_API double GetDistanceSquared(double p) const
Compute the squared distance from a point to the range.
float GetMin() const
Returns the minimum value of the range.
static GfRange1d GetUnion(const GfRange1d &a, const GfRange1d &b)
Returns the smallest GfRange1d which contains both a and b.
GLfloat GLfloat GLfloat GLfloat h
void SetMin(double min)
Sets the minimum value of the range.
bool IsInside(double point) const
GfRange1d()
The default constructor creates an empty range.
double GetSize() const
Returns the size of the range.
bool IsOutside(const GfRange1d &range) const
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
GfRange1d operator*=(double m)
unary multiply.
bool Contains(const GfRange1d &range) const
static GfRange1d GetIntersection(const GfRange1d &a, const GfRange1d &b)
Returns a GfRange1d that describes the intersection of a and b.
float GetMax() const
Returns the maximum value of the range.
friend GfRange1d operator/(const GfRange1d &r, double m)
scalar divide.
GfRange1d(double min, double max)
This constructor initializes the minimum and maximum points.
GfRange1d operator-(const GfRange1d &b) const
binary difference.
#define PXR_NAMESPACE_CLOSE_SCOPE
GLsizei const GLfloat * value
GfRange1d operator-=(const GfRange1d &b)
unary difference.
static GfRange1d Intersection(const GfRange1d &a, const GfRange1d &b)
const GfRange1d & UnionWith(double b)
Extend this to include b.
GfRange1d operator/=(double m)
unary division.
void ExtendBy(const GfRange1d &range)
const GfRange1d & Union(const GfRange1d &b)