lsst.sphgeom
gdcc65144bf+d801c9999e
Toggle main menu visibility
Loading...
Searching...
No Matches
utils.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_UTILS_H_
31
#define LSST_SPHGEOM_UTILS_H_
32
35
36
#include "
Angle.h
"
37
38
39
namespace
lsst {
40
namespace
sphgeom
{
41
42
// Forward declarations
43
class
Vector3d
;
44
class
UnitVector3d
;
45
52
double
getMinSquaredChordLength
(
Vector3d
const
& v,
53
Vector3d
const
& a,
54
Vector3d
const
& b,
55
Vector3d
const
& n);
56
62
double
getMaxSquaredChordLength
(
Vector3d
const
& v,
63
Vector3d
const
& a,
64
Vector3d
const
& b,
65
Vector3d
const
& n);
66
69
inline
Angle
getMinAngleToCircle
(
Angle
x,
Angle
c) {
70
return
abs(x - c);
71
}
72
75
inline
Angle
getMaxAngleToCircle
(
Angle
x,
Angle
c) {
76
Angle
a =
getMinAngleToCircle
(x, c);
77
if
(abs(x) <= abs(c)) {
78
return
a +
Angle
(PI) - 2.0 * abs(c);
79
}
80
if
(a < abs(x)) {
81
return
Angle
(PI) - 2.0 * abs(c) - a;
82
}
83
return
Angle
(PI) + 2.0 * abs(c) - a;
84
}
85
89
Vector3d
getWeightedCentroid
(UnitVector3d
const
& v0,
90
UnitVector3d
const
& v1,
91
UnitVector3d
const
& v2);
92
93
}}
// namespace lsst::sphgeom
94
95
#endif
// LSST_SPHGEOM_UTILS_H_
Angle.h
This file declares a class for representing angles.
lsst::sphgeom::Angle
Definition
Angle.h:50
lsst::sphgeom::UnitVector3d
Definition
UnitVector3d.h:62
lsst::sphgeom::Vector3d
Vector3d is a vector in ℝ³ with components stored in double precision.
Definition
Vector3d.h:51
lsst::sphgeom
Definition
Angle.h:45
lsst::sphgeom::getMaxAngleToCircle
Angle getMaxAngleToCircle(Angle x, Angle c)
Definition
utils.h:75
lsst::sphgeom::getMinAngleToCircle
Angle getMinAngleToCircle(Angle x, Angle c)
Definition
utils.h:69
lsst::sphgeom::getMaxSquaredChordLength
double getMaxSquaredChordLength(Vector3d const &v, Vector3d const &a, Vector3d const &b, Vector3d const &n)
Definition
utils.cc:65
lsst::sphgeom::getWeightedCentroid
Vector3d getWeightedCentroid(UnitVector3d const &v0, UnitVector3d const &v1, UnitVector3d const &v2)
Definition
utils.cc:86
lsst::sphgeom::getMinSquaredChordLength
double getMinSquaredChordLength(Vector3d const &v, Vector3d const &a, Vector3d const &b, Vector3d const &n)
Definition
utils.cc:43
include
lsst
sphgeom
utils.h
Generated by
1.17.0