lsst.sphgeom
gdcc65144bf+d801c9999e
Toggle main menu visibility
Loading...
Searching...
No Matches
AngleInterval.h
Go to the documentation of this file.
1
/*
2
* This file is part of sphgeom.
3
*
4
* Developed for the LSST Data Management System.
5
* This product includes software developed by the LSST Project
6
* (http://www.lsst.org).
7
* See the COPYRIGHT file at the top-level directory of this distribution
8
* for details of code ownership.
9
*
10
* This software is dual licensed under the GNU General Public License and also
11
* under a 3-clause BSD license. Recipients may choose which of these licenses
12
* to use; please see the files gpl-3.0.txt and/or bsd_license.txt,
13
* respectively. If you choose the GPL option then the following text applies
14
* (but note that there is still no warranty even if you opt for BSD instead):
15
*
16
* This program is free software: you can redistribute it and/or modify
17
* it under the terms of the GNU General Public License as published by
18
* the Free Software Foundation, either version 3 of the License, or
19
* (at your option) any later version.
20
*
21
* This program is distributed in the hope that it will be useful,
22
* but WITHOUT ANY WARRANTY; without even the implied warranty of
23
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24
* GNU General Public License for more details.
25
*
26
* You should have received a copy of the GNU General Public License
27
* along with this program. If not, see <http://www.gnu.org/licenses/>.
28
*/
29
30
#ifndef LSST_SPHGEOM_ANGLEINTERVAL_H_
31
#define LSST_SPHGEOM_ANGLEINTERVAL_H_
32
35
36
#include <iosfwd>
37
#include <limits>
38
39
#include "
Angle.h
"
40
#include "
Interval.h
"
41
42
43
namespace
lsst {
44
namespace
sphgeom
{
45
47
class
AngleInterval :
public
Interval
<AngleInterval, Angle> {
48
typedef
Interval<AngleInterval, Angle>
Base;
49
public
:
50
// Factory functions
51
static
AngleInterval fromDegrees(
double
x,
double
y) {
52
return
AngleInterval(Angle::fromDegrees(x),
53
Angle::fromDegrees(y));
54
}
55
56
static
AngleInterval fromRadians(
double
x,
double
y) {
57
return
AngleInterval(Angle::fromRadians(x),
58
Angle::fromRadians(y));
59
}
60
61
static
AngleInterval empty() {
62
return
AngleInterval();
63
}
64
65
static
AngleInterval full() {
66
return
AngleInterval(
Angle
(-std::numeric_limits<double>::infinity()),
67
Angle
(std::numeric_limits<double>::infinity()));
68
}
69
70
// Delegation to base class constructors
71
AngleInterval() : Base() {}
72
73
explicit
AngleInterval(
Angle
x) : Base(x) {}
74
75
AngleInterval(
Angle
x,
Angle
y) : Base(x, y) {}
76
77
AngleInterval(Base
const
& base) : Base(base) {}
78
};
79
80
std::ostream & operator<<(std::ostream &,
AngleInterval
const
&);
81
82
}}
// namespace lsst::sphgeom
83
84
#endif
// LSST_SPHGEOM_ANGLEINTERVAL_H_
Angle.h
This file declares a class for representing angles.
lsst::sphgeom::Angle
Definition
Angle.h:50
lsst::sphgeom::AngleInterval
AngleInterval represents closed intervals of arbitrary angles.
Definition
AngleInterval.h:47
lsst::sphgeom::Interval< AngleInterval, Angle >::Interval
Interval()
Definition
Interval.h:58
Interval.h
This file defines a template representing closed real intervals.
lsst::sphgeom
Definition
Angle.h:45
include
lsst
sphgeom
AngleInterval.h
Generated by
1.17.0