lsst.sphgeom
gdcc65144bf+d801c9999e
Toggle main menu visibility
Loading...
Searching...
No Matches
LonLat.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_LONLAT_H_
31
#define LSST_SPHGEOM_LONLAT_H_
32
35
36
#include <iosfwd>
37
#include <stdexcept>
38
39
#include "
NormalizedAngle.h
"
40
41
42
namespace
lsst{
43
namespace
sphgeom
{
44
45
class
Vector3d
;
46
55
class
LonLat
{
56
public
:
57
static
LonLat
fromDegrees(
double
lon,
double
lat) {
58
return
LonLat
(NormalizedAngle::fromDegrees(lon),
59
Angle::fromDegrees(lat));
60
}
61
62
static
LonLat
fromRadians(
double
lon,
double
lat) {
63
return
LonLat
(NormalizedAngle::fromRadians(lon),
64
Angle::fromRadians(lat));
65
}
66
69
static
Angle
latitudeOf
(
Vector3d
const
& v);
70
73
static
NormalizedAngle
longitudeOf
(
Vector3d
const
& v);
74
77
LonLat
() {}
78
81
LonLat
(
NormalizedAngle
lon,
Angle
lat);
82
85
LonLat
(
Vector3d
const
& v);
86
87
bool
operator==(
LonLat
const
& p)
const
{
88
return
_lon == p._lon && _lat == p._lat;
89
}
90
91
bool
operator!=(
LonLat
const
& p)
const
{
92
return
_lon != p._lon || _lat != p._lat;
93
}
94
95
NormalizedAngle getLon()
const
{
return
_lon; }
96
97
Angle getLat()
const
{
return
_lat; }
98
99
private
:
100
void
_enforceInvariants();
101
102
NormalizedAngle _lon;
103
Angle _lat;
104
};
105
106
std::ostream & operator<<(std::ostream &,
LonLat
const
&);
107
108
}}
// namespace lsst::sphgeom
109
110
#endif
// LSST_SPHGEOM_LONLAT_H_
NormalizedAngle.h
This file declares a class for representing normalized angles.
lsst::sphgeom::Angle
Definition
Angle.h:50
lsst::sphgeom::LonLat
Definition
LonLat.h:55
lsst::sphgeom::LonLat::latitudeOf
static Angle latitudeOf(Vector3d const &v)
Definition
LonLat.cc:44
lsst::sphgeom::LonLat::LonLat
LonLat()
Definition
LonLat.h:77
lsst::sphgeom::LonLat::longitudeOf
static NormalizedAngle longitudeOf(Vector3d const &v)
Definition
LonLat.cc:56
lsst::sphgeom::NormalizedAngle
Definition
NormalizedAngle.h:50
lsst::sphgeom::Vector3d
Vector3d is a vector in ℝ³ with components stored in double precision.
Definition
Vector3d.h:51
lsst::sphgeom
Definition
Angle.h:45
include
lsst
sphgeom
LonLat.h
Generated by
1.17.0