lsst.sphgeom
20.0.0+2
include
lsst
sphgeom
utils.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_UTILS_H_
24
#define LSST_SPHGEOM_UTILS_H_
25
28
29
#include "
Angle.h
"
30
31
32
namespace
lsst {
33
namespace
sphgeom {
34
35
// Forward declarations
36
class
Vector3d;
37
class
UnitVector3d;
38
45
double
getMinSquaredChordLength
(Vector3d
const
& v,
46
Vector3d
const
& a,
47
Vector3d
const
& b,
48
Vector3d
const
& n);
49
55
double
getMaxSquaredChordLength
(Vector3d
const
& v,
56
Vector3d
const
& a,
57
Vector3d
const
& b,
58
Vector3d
const
& n);
59
62
inline
Angle
getMinAngleToCircle
(
Angle
x,
Angle
c) {
63
return
abs(x - c);
64
}
65
68
inline
Angle
getMaxAngleToCircle
(
Angle
x,
Angle
c) {
69
Angle
a =
getMinAngleToCircle
(x, c);
70
if
(abs(x) <= abs(c)) {
71
return
a +
Angle
(PI) - 2.0 * abs(c);
72
}
73
if
(a < abs(x)) {
74
return
Angle
(PI) - 2.0 * abs(c) - a;
75
}
76
return
Angle
(PI) + 2.0 * abs(c) - a;
77
}
78
82
Vector3d getWeightedCentroid(UnitVector3d
const
& v0,
83
UnitVector3d
const
& v1,
84
UnitVector3d
const
& v2);
85
86
}}
// namespace lsst::sphgeom
87
88
#endif // LSST_SPHGEOM_UTILS_H_
lsst::sphgeom::getMinSquaredChordLength
double getMinSquaredChordLength(Vector3d const &v, Vector3d const &a, Vector3d const &b, Vector3d const &n)
Definition:
utils.cc:36
lsst::sphgeom::getMaxAngleToCircle
Angle getMaxAngleToCircle(Angle x, Angle c)
Definition:
utils.h:68
lsst::sphgeom::getMinAngleToCircle
Angle getMinAngleToCircle(Angle x, Angle c)
Definition:
utils.h:62
lsst::sphgeom::getMaxSquaredChordLength
double getMaxSquaredChordLength(Vector3d const &v, Vector3d const &a, Vector3d const &b, Vector3d const &n)
Definition:
utils.cc:58
Angle.h
This file declares a class for representing angles.
lsst::sphgeom::Angle
Definition:
Angle.h:43
Generated by
1.8.18