lsst.sphgeom
20.0.0+2
include
lsst
sphgeom
AngleInterval.h
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2014-2015 AURA/LSST.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <https://www.lsstcorp.org/LegalNotices/>.
21
*/
22
23
#ifndef LSST_SPHGEOM_ANGLEINTERVAL_H_
24
#define LSST_SPHGEOM_ANGLEINTERVAL_H_
25
28
29
#include <iosfwd>
30
31
#include "
Angle.h
"
32
#include "
Interval.h
"
33
34
35
namespace
lsst {
36
namespace
sphgeom {
37
39
class
AngleInterval
:
public
Interval
<AngleInterval, Angle> {
40
typedef
Interval<AngleInterval, Angle>
Base
;
41
public
:
42
// Factory functions
43
static
AngleInterval
fromDegrees(
double
x,
double
y) {
44
return
AngleInterval
(Angle::fromDegrees(x),
45
Angle::fromDegrees(y));
46
}
47
48
static
AngleInterval
fromRadians(
double
x,
double
y) {
49
return
AngleInterval
(Angle::fromRadians(x),
50
Angle::fromRadians(y));
51
}
52
53
static
AngleInterval
empty() {
54
return
AngleInterval
();
55
}
56
57
static
AngleInterval
full() {
58
return
AngleInterval
(
Angle
(-std::numeric_limits<double>::infinity()),
59
Angle
(std::numeric_limits<double>::infinity()));
60
}
61
62
// Delegation to base class constructors
63
AngleInterval
() :
Base
() {}
64
65
explicit
AngleInterval
(
Angle
x) :
Base
(x) {}
66
67
AngleInterval
(
Angle
x,
Angle
y) :
Base
(x, y) {}
68
69
AngleInterval
(
Base
const
& base) :
Base
(base) {}
70
};
71
72
std::ostream & operator<<(std::ostream &,
AngleInterval
const
&);
73
74
}}
// namespace lsst::sphgeom
75
76
#endif // LSST_SPHGEOM_ANGLEINTERVAL_H_
lsst::sphgeom::Interval
Definition:
Interval.h:48
lsst::sphgeom::AngleInterval
AngleInterval represents closed intervals of arbitrary angles.
Definition:
AngleInterval.h:39
Angle.h
This file declares a class for representing angles.
lsst::sphgeom::Angle
Definition:
Angle.h:43
Interval.h
This file defines a template representing closed real intervals.
Generated by
1.8.18