23 #ifndef LSST_SPHGEOM_NORMALIZEDANGLEINTERVAL_H_
24 #define LSST_SPHGEOM_NORMALIZEDANGLEINTERVAL_H_
62 Angle::fromDegrees(b));
108 return !(*
this == i);
113 return (_a == x && _b == x) || (x.
isNan() &&
isEmpty());
135 bool wraps()
const {
return _a > _b; }
154 return wraps() ? (x <= _b || _a <= x) : (_a <= x && x <= _b);
174 return wraps() ? (x <= _b || _a <= x) : (_a <= x && x <= _b);
186 return (_a == x && _b == x) ||
isEmpty();
198 Relationship
relate(NormalizedAngle x)
const;
265 std::ostream & operator<<(std::ostream &, NormalizedAngleInterval
const &);
This file declares a class for representing normalized angles.
This file provides a type alias for describing set relationships.
Definition: NormalizedAngleInterval.h:57
NormalizedAngleInterval & clipTo(NormalizedAngle x)
clipTo shrinks this interval until all its points are in x.
Definition: NormalizedAngleInterval.h:203
bool isFull() const
isFull returns true if this interval contains all normalized angles.
Definition: NormalizedAngleInterval.h:129
bool isDisjointFrom(NormalizedAngle x) const
Definition: NormalizedAngleInterval.h:163
NormalizedAngleInterval()
This constructor creates an empty interval.
Definition: NormalizedAngleInterval.h:79
bool wraps() const
Definition: NormalizedAngleInterval.h:135
NormalizedAngleInterval clippedTo(NormalizedAngleInterval const &x) const
Definition: NormalizedAngleInterval.h:221
NormalizedAngleInterval(NormalizedAngle x, NormalizedAngle y)
This constructor creates an interval with the given endpoints.
Definition: NormalizedAngleInterval.h:99
NormalizedAngle getA() const
getA returns the first endpoint of this interval.
Definition: NormalizedAngleInterval.h:119
NormalizedAngle getCenter() const
Definition: NormalizedAngleInterval.h:139
bool operator==(NormalizedAngle x) const
A closed interval is equal to a point x if both endpoints equal x.
Definition: NormalizedAngleInterval.h:112
NormalizedAngleInterval(Angle const &x)
Definition: NormalizedAngleInterval.h:84
NormalizedAngleInterval dilatedBy(Angle x) const
Definition: NormalizedAngleInterval.cc:232
Relationship relate(NormalizedAngle x) const
Definition: NormalizedAngleInterval.cc:88
NormalizedAngleInterval expandedTo(NormalizedAngle x) const
Definition: NormalizedAngleInterval.h:237
NormalizedAngle getSize() const
Definition: NormalizedAngleInterval.h:145
NormalizedAngleInterval & expandTo(NormalizedAngle x)
Definition: NormalizedAngleInterval.cc:189
NormalizedAngle getB() const
getB returns the second endpoint of this interval.
Definition: NormalizedAngleInterval.h:122
bool intersects(NormalizedAngle x) const
Definition: NormalizedAngleInterval.h:173
bool operator==(NormalizedAngleInterval const &i) const
Two intervals are equal if they contain the same points.
Definition: NormalizedAngleInterval.h:103
NormalizedAngleInterval(NormalizedAngle const &x)
This constructor creates a closed interval containing only x.
Definition: NormalizedAngleInterval.h:87
bool isWithin(NormalizedAngle x) const
Definition: NormalizedAngleInterval.h:185
NormalizedAngleInterval clippedTo(NormalizedAngle x) const
clippedTo returns the intersection of this interval and x.
Definition: NormalizedAngleInterval.h:214
bool contains(NormalizedAngle x) const
Definition: NormalizedAngleInterval.h:150
bool isEmpty() const
Definition: NormalizedAngleInterval.h:126
Definition: NormalizedAngle.h:41
bool isNan() const
isNan returns true if the angle value is NaN.
Definition: NormalizedAngle.h:131
double asRadians() const
asRadians returns the value of this angle in units of radians.
Definition: NormalizedAngle.h:128
NormalizedAngle getAngleTo(NormalizedAngle const &a) const
Definition: NormalizedAngle.h:139
static NormalizedAngle center(NormalizedAngle const &a, NormalizedAngle const &b)
Definition: NormalizedAngle.cc:45