LSST Applications g063fba187b+cac8b7c890,g0f08755f38+6aee506743,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+b4475c5878,g1dcb35cd9c+8f9bc1652e,g20f6ffc8e0+6aee506743,g217e2c1bcf+73dee94bd0,g28da252d5a+1f19c529b9,g2bbee38e9b+3f2625acfc,g2bc492864f+3f2625acfc,g3156d2b45e+6e55a43351,g32e5bea42b+1bb94961c2,g347aa1857d+3f2625acfc,g35bb328faa+a8ce1bb630,g3a166c0a6a+3f2625acfc,g3e281a1b8c+c5dd892a6c,g3e8969e208+a8ce1bb630,g414038480c+5927e1bc1e,g41af890bb2+8a9e676b2a,g7af13505b9+809c143d88,g80478fca09+6ef8b1810f,g82479be7b0+f568feb641,g858d7b2824+6aee506743,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+2903d499ea,gb58c049af0+d64f4d3760,gc28159a63d+3f2625acfc,gcab2d0539d+b12535109e,gcf0d15dbbd+46a3f46ba9,gda6a2b7d83+46a3f46ba9,gdaeeff99f8+1711a396fd,ge79ae78c31+3f2625acfc,gef2f8181fd+0a71e47438,gf0baf85859+c1f95f4921,gfa517265be+6aee506743,gfa999e8aa5+17cd334064,w.2024.51
LSST Data Management Base Package
|
NormalizedAngleInterval
represents closed intervals of normalized angles, i.e.
More...
#include <NormalizedAngleInterval.h>
Public Member Functions | |
NormalizedAngleInterval () | |
This constructor creates an empty interval. | |
NormalizedAngleInterval (Angle const &x) | |
This constructor creates a closed interval containing only the normalization of x. | |
NormalizedAngleInterval (NormalizedAngle const &x) | |
This constructor creates a closed interval containing only x. | |
NormalizedAngleInterval (Angle x, Angle y) | |
This constructor creates an interval from the given endpoints. | |
NormalizedAngleInterval (NormalizedAngle x, NormalizedAngle y) | |
This constructor creates an interval with the given endpoints. | |
bool | operator== (NormalizedAngleInterval const &i) const |
Two intervals are equal if they contain the same points. | |
bool | operator!= (NormalizedAngleInterval const &i) const |
bool | operator== (NormalizedAngle x) const |
A closed interval is equal to a point x if both endpoints equal x. | |
bool | operator!= (NormalizedAngle x) const |
NormalizedAngle | getA () const |
getA returns the first endpoint of this interval. | |
NormalizedAngle | getB () const |
getB returns the second endpoint of this interval. | |
bool | isEmpty () const |
isEmpty returns true if this interval does not contain any normalized angles. | |
bool | isFull () const |
isFull returns true if this interval contains all normalized angles. | |
bool | wraps () const |
wraps returns true if the interval "wraps" around the 0/2π angle discontinuity, i.e. | |
NormalizedAngle | getCenter () const |
getCenter returns the center of this interval. | |
NormalizedAngle | getSize () const |
getSize returns the size (length, width) of this interval. | |
NormalizedAngleInterval & | clipTo (NormalizedAngle x) |
clipTo shrinks this interval until all its points are in x. | |
NormalizedAngleInterval & | clipTo (NormalizedAngleInterval const &x) |
x.clipTo(y) sets x to the smallest interval containing the intersection of x and y. | |
NormalizedAngleInterval | clippedTo (NormalizedAngle x) const |
clippedTo returns the intersection of this interval and x. | |
NormalizedAngleInterval | clippedTo (NormalizedAngleInterval const &x) const |
clippedTo returns the smallest interval containing the intersection of this interval and x. | |
NormalizedAngleInterval | dilatedBy (Angle x) const |
For positive x, dilatedBy returns the morphological dilation of this interval by [-x,x]. | |
NormalizedAngleInterval | erodedBy (Angle x) const |
NormalizedAngleInterval & | dilateBy (Angle x) |
NormalizedAngleInterval & | erodeBy (Angle x) |
bool | contains (NormalizedAngle x) const |
bool | contains (NormalizedAngleInterval const &x) const |
bool | isDisjointFrom (NormalizedAngle x) const |
bool | isDisjointFrom (NormalizedAngleInterval const &x) const |
bool | intersects (NormalizedAngle x) const |
bool | intersects (NormalizedAngleInterval const &x) const |
bool | isWithin (NormalizedAngle x) const |
bool | isWithin (NormalizedAngleInterval const &x) const |
Relationship | relate (NormalizedAngle x) const |
Relationship | relate (NormalizedAngleInterval const &x) const |
NormalizedAngleInterval & | expandTo (NormalizedAngle x) |
NormalizedAngleInterval & | expandTo (NormalizedAngleInterval const &x) |
NormalizedAngleInterval | expandedTo (NormalizedAngle x) const |
NormalizedAngleInterval | expandedTo (NormalizedAngleInterval const &x) const |
Static Public Member Functions | |
static NormalizedAngleInterval | fromDegrees (double a, double b) |
static NormalizedAngleInterval | fromRadians (double a, double b) |
static NormalizedAngleInterval | empty () |
static NormalizedAngleInterval | full () |
NormalizedAngleInterval
represents closed intervals of normalized angles, i.e.
intervals of the unit circle.
A point on the unit circle is represented by the angle ∈ [0, 2π) between it and a reference point, and an interval by a pair of bounding points a and b. The points in the interval are traced out by counter-clockwise rotation of a around the circle until it reaches b. Because the endpoints are represented via normalized angles, a can be greater than b, indicating that the interval consists of the points represented by angles [a, 2π) ⋃ [0, b]. When this is the case, calling wraps()
on the interval will return true.
An interval with identical endpoints contains just that point, and is equal to that point.
An interval with NaN as either endpoint is empty, meaning that it contains no points on the unit circle. The interval [0, 2 * PI] is full, meaning that it contains all representable normalized angles in [0, 2π).
Definition at line 64 of file NormalizedAngleInterval.h.
|
inline |
This constructor creates an empty interval.
Definition at line 86 of file NormalizedAngleInterval.h.
|
inlineexplicit |
This constructor creates a closed interval containing only the normalization of x.
Definition at line 91 of file NormalizedAngleInterval.h.
|
inlineexplicit |
This constructor creates a closed interval containing only x.
Definition at line 94 of file NormalizedAngleInterval.h.
This constructor creates an interval from the given endpoints.
If both x and y lie in the range [0, 2π), then y may be less than x. For example, passing in x = 3π/2 and y = π/2 will result in an interval containing angles [3π/2, 2π) ⋃ [0, π/2]. Otherwise, x must be less than or equal to y, and the interval will correspond to the the set of angles produced by normalizing the elements of the interval [x, y].
Definition at line 42 of file NormalizedAngleInterval.cc.
|
inline |
This constructor creates an interval with the given endpoints.
Definition at line 106 of file NormalizedAngleInterval.h.
|
inline |
clippedTo
returns the intersection of this interval and x.
Definition at line 221 of file NormalizedAngleInterval.h.
|
inline |
clippedTo
returns the smallest interval containing the intersection of this interval and x.
The result is not always unique, and x.clippedTo(y)
is not guaranteed to equal y.clippedTo(x)
.
Definition at line 228 of file NormalizedAngleInterval.h.
|
inline |
clipTo
shrinks this interval until all its points are in x.
Definition at line 210 of file NormalizedAngleInterval.h.
NormalizedAngleInterval & lsst::sphgeom::NormalizedAngleInterval::clipTo | ( | NormalizedAngleInterval const & | x | ) |
x.clipTo(y)
sets x to the smallest interval containing the intersection of x and y.
The result is not always unique, and x.clipTo(y)
is not guaranteed to equal y.clipTo(x)
.
Definition at line 170 of file NormalizedAngleInterval.cc.
|
inline |
contains
returns true if the intersection of this interval and x is equal to x.
Definition at line 157 of file NormalizedAngleInterval.h.
bool lsst::sphgeom::NormalizedAngleInterval::contains | ( | NormalizedAngleInterval const & | x | ) | const |
contains
returns true if the intersection of this interval and x is equal to x.
Definition at line 61 of file NormalizedAngleInterval.cc.
|
inline |
Definition at line 260 of file NormalizedAngleInterval.h.
NormalizedAngleInterval lsst::sphgeom::NormalizedAngleInterval::dilatedBy | ( | Angle | x | ) | const |
For positive x, dilatedBy
returns the morphological dilation of this interval by [-x,x].
For negative x, it returns the morphological erosion of this interval by [x,-x]. If x is zero or NaN, or this interval is empty, there is no effect.
Definition at line 239 of file NormalizedAngleInterval.cc.
|
inlinestatic |
Definition at line 76 of file NormalizedAngleInterval.h.
|
inline |
Definition at line 265 of file NormalizedAngleInterval.h.
|
inline |
Definition at line 258 of file NormalizedAngleInterval.h.
|
inline |
expandedTo
returns the smallest interval containing the union of this interval and x. The result is not always unique, and x.expandedTo(y)
is not guaranteed to equal y.expandedTo(x)
.
Definition at line 244 of file NormalizedAngleInterval.h.
|
inline |
expandedTo
returns the smallest interval containing the union of this interval and x. The result is not always unique, and x.expandedTo(y)
is not guaranteed to equal y.expandedTo(x)
.
Definition at line 248 of file NormalizedAngleInterval.h.
NormalizedAngleInterval & lsst::sphgeom::NormalizedAngleInterval::expandTo | ( | NormalizedAngle | x | ) |
expandTo
minimally expands this interval to contain x. The result is not always unique, and x.expandTo(y)
is not guaranteed to equal y.expandTo(x)
.
Definition at line 196 of file NormalizedAngleInterval.cc.
NormalizedAngleInterval & lsst::sphgeom::NormalizedAngleInterval::expandTo | ( | NormalizedAngleInterval const & | x | ) |
expandTo
minimally expands this interval to contain x. The result is not always unique, and x.expandTo(y)
is not guaranteed to equal y.expandTo(x)
.
Definition at line 211 of file NormalizedAngleInterval.cc.
|
inlinestatic |
Definition at line 67 of file NormalizedAngleInterval.h.
|
inlinestatic |
Definition at line 72 of file NormalizedAngleInterval.h.
|
inlinestatic |
Definition at line 80 of file NormalizedAngleInterval.h.
|
inline |
getA
returns the first endpoint of this interval.
Definition at line 126 of file NormalizedAngleInterval.h.
|
inline |
getB
returns the second endpoint of this interval.
Definition at line 129 of file NormalizedAngleInterval.h.
|
inline |
getCenter
returns the center of this interval.
It is NaN for empty intervals, and arbitrary for full intervals.
Definition at line 146 of file NormalizedAngleInterval.h.
|
inline |
getSize
returns the size (length, width) of this interval.
It is zero for single-point intervals, and NaN for empty intervals. Note that due to rounding errors, an interval with size 2 * PI
is not necessarily full, and an interval with size 0 may contain more than a single point.
Definition at line 152 of file NormalizedAngleInterval.h.
|
inline |
|
inline |
intersects
returns true if the intersection of this interval and x is non-empty.
Definition at line 184 of file NormalizedAngleInterval.h.
|
inline |
isDisjointFrom
returns true if the intersection of this interval and x is empty.
Definition at line 170 of file NormalizedAngleInterval.h.
bool lsst::sphgeom::NormalizedAngleInterval::isDisjointFrom | ( | NormalizedAngleInterval const & | x | ) | const |
isDisjointFrom
returns true if the intersection of this interval and x is empty.
Definition at line 80 of file NormalizedAngleInterval.cc.
|
inline |
isEmpty
returns true if this interval does not contain any normalized angles.
Definition at line 133 of file NormalizedAngleInterval.h.
|
inline |
isFull
returns true if this interval contains all normalized angles.
Definition at line 136 of file NormalizedAngleInterval.h.
|
inline |
isWithin
returns true if the intersection of this interval and x is this interval.
Definition at line 192 of file NormalizedAngleInterval.h.
|
inline |
isWithin
returns true if the intersection of this interval and x is this interval.
Definition at line 196 of file NormalizedAngleInterval.h.
|
inline |
Definition at line 123 of file NormalizedAngleInterval.h.
|
inline |
Definition at line 114 of file NormalizedAngleInterval.h.
|
inline |
|
inline |
Two intervals are equal if they contain the same points.
Definition at line 110 of file NormalizedAngleInterval.h.
Relationship lsst::sphgeom::NormalizedAngleInterval::relate | ( | NormalizedAngle | x | ) | const |
relate
returns a bitset S describing the spatial relationships between this interval and x. For each relation that holds, the bitwise AND of S and the corresponding Relationship will be non-zero.
Definition at line 95 of file NormalizedAngleInterval.cc.
Relationship lsst::sphgeom::NormalizedAngleInterval::relate | ( | NormalizedAngleInterval const & | x | ) | const |
relate
returns a bitset S describing the spatial relationships between this interval and x. For each relation that holds, the bitwise AND of S and the corresponding Relationship will be non-zero.
Definition at line 114 of file NormalizedAngleInterval.cc.
|
inline |
wraps
returns true if the interval "wraps" around the 0/2π angle discontinuity, i.e.
consists of [getA(), 2π) ∪ [0, getB()]
.
Definition at line 142 of file NormalizedAngleInterval.h.