30#ifndef LSST_SPHGEOM_NORMALIZEDANGLEINTERVAL_H_
31#define LSST_SPHGEOM_NORMALIZEDANGLEINTERVAL_H_
69 Angle::fromDegrees(b));
115 return !(*
this == i);
120 return (_a == x && _b == x) || (x.
isNan() &&
isEmpty());
142 bool wraps()
const {
return _a > _b; }
161 return wraps() ? (x <= _b || _a <= x) : (_a <= x && x <= _b);
181 return wraps() ? (x <= _b || _a <= x) : (_a <= x && x <= _b);
193 return (_a == x && _b == x) ||
isEmpty();
272std::ostream & operator<<(std::ostream &, NormalizedAngleInterval
const &);
This file declares a class for representing normalized angles.
Definition NormalizedAngle.h:50
bool isNan() const
isNan returns true if the angle value is NaN.
Definition NormalizedAngle.h:140
double asRadians() const
asRadians returns the value of this angle in units of radians.
Definition NormalizedAngle.h:137
NormalizedAngle getAngleTo(NormalizedAngle const &a) const
Definition NormalizedAngle.h:148
static NormalizedAngle center(NormalizedAngle const &a, NormalizedAngle const &b)
Definition NormalizedAngle.cc:52
Definition NormalizedAngleInterval.h:64
bool isFull() const
isFull returns true if this interval contains all normalized angles.
Definition NormalizedAngleInterval.h:136
bool isDisjointFrom(NormalizedAngle x) const
Definition NormalizedAngleInterval.h:170
NormalizedAngleInterval()
This constructor creates an empty interval.
Definition NormalizedAngleInterval.h:86
bool wraps() const
Definition NormalizedAngleInterval.h:142
NormalizedAngleInterval clippedTo(NormalizedAngleInterval const &x) const
Definition NormalizedAngleInterval.h:228
NormalizedAngleInterval & clipTo(NormalizedAngle x)
clipTo shrinks this interval until all its points are in x.
Definition NormalizedAngleInterval.h:210
NormalizedAngleInterval(NormalizedAngle x, NormalizedAngle y)
This constructor creates an interval with the given endpoints.
Definition NormalizedAngleInterval.h:106
NormalizedAngle getA() const
getA returns the first endpoint of this interval.
Definition NormalizedAngleInterval.h:126
NormalizedAngle getCenter() const
Definition NormalizedAngleInterval.h:146
bool operator==(NormalizedAngle x) const
A closed interval is equal to a point x if both endpoints equal x.
Definition NormalizedAngleInterval.h:119
NormalizedAngleInterval(Angle const &x)
Definition NormalizedAngleInterval.h:91
NormalizedAngleInterval dilatedBy(Angle x) const
Definition NormalizedAngleInterval.cc:239
Relationship relate(NormalizedAngle x) const
Definition NormalizedAngleInterval.cc:95
NormalizedAngleInterval expandedTo(NormalizedAngle x) const
Definition NormalizedAngleInterval.h:244
NormalizedAngle getSize() const
Definition NormalizedAngleInterval.h:152
NormalizedAngleInterval & expandTo(NormalizedAngle x)
Definition NormalizedAngleInterval.cc:196
NormalizedAngle getB() const
getB returns the second endpoint of this interval.
Definition NormalizedAngleInterval.h:129
bool intersects(NormalizedAngle x) const
Definition NormalizedAngleInterval.h:180
bool operator==(NormalizedAngleInterval const &i) const
Two intervals are equal if they contain the same points.
Definition NormalizedAngleInterval.h:110
NormalizedAngleInterval(NormalizedAngle const &x)
This constructor creates a closed interval containing only x.
Definition NormalizedAngleInterval.h:94
bool isWithin(NormalizedAngle x) const
Definition NormalizedAngleInterval.h:192
NormalizedAngleInterval clippedTo(NormalizedAngle x) const
clippedTo returns the intersection of this interval and x.
Definition NormalizedAngleInterval.h:221
bool contains(NormalizedAngle x) const
Definition NormalizedAngleInterval.h:157
bool isEmpty() const
Definition NormalizedAngleInterval.h:133
std::bitset< 3 > Relationship
Relationship describes how two sets are related.
Definition Relationship.h:42
This file provides a type alias for describing set relationships.