lsst.geom
g19811a7679+d02280c829
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
geom
SphereTransform.h
Go to the documentation of this file.
1
/*
2
* Developed for the LSST Data Management System.
3
* This product includes software developed by the LSST Project
4
* (https://www.lsst.org).
5
* See the COPYRIGHT file at the top-level directory of this distribution
6
* for details of code ownership.
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 GNU General Public License
19
* along with this program. If not, see <https://www.gnu.org/licenses/>.
20
*/
21
22
#ifndef LSST_GEOM_SPHERETRANSFORM_H_
23
#define LSST_GEOM_SPHERETRANSFORM_H_
24
25
#include "ndarray.h"
26
#include "Eigen/Core"
27
28
#include "
lsst/sphgeom/UnitVector3d.h
"
29
#include "
lsst/geom/SpherePoint.h
"
30
31
namespace
lsst
{
32
namespace
geom
{
33
34
38
class
SphereTransform
{
39
public
:
40
using
Matrix
= Eigen::Matrix<double, 3, 3, Eigen::DontAlign>;
41
43
SphereTransform
() noexcept;
44
51
explicit
SphereTransform
(
Matrix
const& matrix) noexcept;
52
53
SphereTransform
(
SphereTransform
const& other) noexcept = default;
54
SphereTransform
(
SphereTransform
&& other) noexcept = default;
55
~
SphereTransform
() noexcept = default;
56
67
static
SphereTransform
fit_unit_vectors
(
68
ndarray::Array<
double
const, 2> const& from, ndarray::Array<
double
const, 2> const& to,
69
ndarray::Array<
double
const, 1> const& weights = ndarray::Array<
double
const, 1>());
70
77
Matrix
const&
getMatrix
() const noexcept {
return
_matrix; }
78
85
SphereTransform
operator*
(
SphereTransform
const
& other)
const
noexcept
;
86
90
SpherePoint
operator()
(
SpherePoint
const
& point)
const
noexcept
;
91
95
sphgeom::UnitVector3d
operator()
(
sphgeom::UnitVector3d
const
& vector)
const
noexcept
;
96
98
104
double
applyX
(
double
x,
double
y,
double
z)
const
noexcept
;
105
double
applyY
(
double
x,
double
y,
double
z)
const
noexcept
;
106
double
applyZ
(
double
x,
double
y,
double
z)
const
noexcept
;
108
110
SphereTransform
const
inverted
() const noexcept;
111
112
private:
113
Matrix
_matrix;
114
};
115
116
}
// namespace geom
117
}
// namespace lsst
118
119
#endif
/* LSST_GEOM_SPHERETRANSFORM_H_ */
UnitVector3d.h
SpherePoint.h
lsst::geom::SpherePoint
Point in an unspecified spherical coordinate system.
Definition
SpherePoint.h:57
lsst::geom::SphereTransform
A rigid 3-d transform on the sphere.
Definition
SphereTransform.h:38
lsst::geom::SphereTransform::applyY
double applyY(double x, double y, double z) const noexcept
Definition
SphereTransform.cc:97
lsst::geom::SphereTransform::SphereTransform
SphereTransform() noexcept
Construct an empty (identity) SphereTransform.
Definition
SphereTransform.cc:36
lsst::geom::SphereTransform::inverted
SphereTransform const inverted() const noexcept
Return the inverse transform.
Definition
SphereTransform.cc:104
lsst::geom::SphereTransform::Matrix
Eigen::Matrix< double, 3, 3, Eigen::DontAlign > Matrix
Definition
SphereTransform.h:40
lsst::geom::SphereTransform::fit_unit_vectors
static SphereTransform fit_unit_vectors(ndarray::Array< double const, 2 > const &from, ndarray::Array< double const, 2 > const &to, ndarray::Array< double const, 1 > const &weights=ndarray::Array< double const, 1 >())
Fit for the transform that best maps (in a least-squares sense) one set of unit vectors onto another.
Definition
SphereTransform.cc:40
lsst::geom::SphereTransform::operator*
SphereTransform operator*(SphereTransform const &other) const noexcept
Compose two transforms.
Definition
SphereTransform.cc:81
lsst::geom::SphereTransform::getMatrix
Matrix const & getMatrix() const noexcept
Return the matrix representation of the transform.
Definition
SphereTransform.h:77
lsst::geom::SphereTransform::operator()
SpherePoint operator()(SpherePoint const &point) const noexcept
Apply the transform to a SpherePoint.
Definition
SphereTransform.cc:85
lsst::geom::SphereTransform::applyZ
double applyZ(double x, double y, double z) const noexcept
Definition
SphereTransform.cc:100
lsst::geom::SphereTransform::applyX
double applyX(double x, double y, double z) const noexcept
Transform a 3-d unit vector given and returned as separate double values.
Definition
SphereTransform.cc:94
lsst::sphgeom::UnitVector3d
lsst::geom
Definition
AffineTransform.h:36
lsst
Generated on
for lsst.geom by
1.17.0