lsst.geom
g19811a7679+d02280c829
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
geom
CoordinateExpr.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
/*
23
* A boolean pair class used to express the output of spatial predicates on Point and Extent.
24
*/
25
#ifndef LSST_GEOM_COORDINATEEXPR_H
26
#define LSST_GEOM_COORDINATEEXPR_H
27
28
#include "
lsst/geom/CoordinateBase.h
"
29
30
namespace
lsst
{
31
namespace
geom
{
32
49
template
<
int
N>
50
class
CoordinateExpr
:
public
CoordinateBase
<CoordinateExpr<N>, bool, N> {
51
typedef
CoordinateBase<CoordinateExpr<N>
, bool, N> Super;
52
53
public
:
55
explicit
CoordinateExpr
(
bool
val =
false
) noexcept : Super(val) {}
56
58
template
<
typename
Vector>
59
explicit
CoordinateExpr
(Eigen::MatrixBase<Vector>
const
& vector) : Super(vector) {}
60
61
CoordinateExpr
(
CoordinateExpr
const
&)
noexcept
=
default
;
62
CoordinateExpr
(
CoordinateExpr
&&) noexcept = default;
63
CoordinateExpr
& operator=(
CoordinateExpr
const&) noexcept = default;
64
CoordinateExpr
& operator=(
CoordinateExpr
&&) noexcept = default;
65
~
CoordinateExpr
() noexcept = default;
66
73
CoordinateExpr
and_
(
CoordinateExpr
const& rhs) const noexcept;
74
CoordinateExpr
or_
(
CoordinateExpr
const& rhs) const noexcept;
75
CoordinateExpr
not_
() const noexcept;
77
};
78
80
template <
int
N>
81
inline
bool
all
(
CoordinateExpr
<N> const& expr) noexcept {
82
for
(
int
n = 0; n < N; ++n)
83
if
(!expr[n])
return
false
;
84
return
true
;
85
}
86
88
template
<
int
N>
89
inline
bool
any
(
CoordinateExpr<N>
const
& expr)
noexcept
{
90
for
(
int
n = 0; n < N; ++n)
91
if
(expr[n])
return
true
;
92
return
false
;
93
}
94
95
typedef
CoordinateExpr<2>
CoordinateExpr2
;
96
typedef
CoordinateExpr<3>
CoordinateExpr3
;
97
98
}
// namespace geom
99
}
// namespace lsst
100
101
#endif
CoordinateBase.h
lsst::geom::CoordinateBase< CoordinateExpr< N >, bool, N >::CoordinateBase
CoordinateBase(CoordinateBase const &other) noexcept(IS_ELEMENT_NOTHROW_COPYABLE)
Definition
CoordinateBase.h:64
lsst::geom::CoordinateExpr
A boolean coordinate.
Definition
CoordinateExpr.h:50
lsst::geom::CoordinateExpr< 2 >::not_
CoordinateExpr not_() const noexcept
lsst::geom::CoordinateExpr::CoordinateExpr
CoordinateExpr(bool val=false) noexcept
Construct a CoordinateExpr with all elements set to the same scalar value.
Definition
CoordinateExpr.h:55
lsst::geom::CoordinateExpr::CoordinateExpr
CoordinateExpr(Eigen::MatrixBase< Vector > const &vector)
Construct a CoordinateExpr from an Eigen vector.
Definition
CoordinateExpr.h:59
lsst::geom::CoordinateExpr< 2 >::and_
CoordinateExpr and_(CoordinateExpr const &rhs) const noexcept
lsst::geom::CoordinateExpr< 2 >::or_
CoordinateExpr or_(CoordinateExpr const &rhs) const noexcept
lsst::geom::CoordinateExpr::CoordinateExpr
CoordinateExpr(CoordinateExpr &&) noexcept=default
lsst::geom::CoordinateExpr::CoordinateExpr
CoordinateExpr(CoordinateExpr const &) noexcept=default
lsst::geom
Definition
AffineTransform.h:36
lsst::geom::CoordinateExpr3
CoordinateExpr< 3 > CoordinateExpr3
Definition
CoordinateExpr.h:96
lsst::geom::any
bool any(CoordinateExpr< N > const &expr) noexcept
Return true if any elements are true.
Definition
CoordinateExpr.h:89
lsst::geom::all
bool all(CoordinateExpr< N > const &expr) noexcept
Return true if all elements are true.
Definition
CoordinateExpr.h:81
lsst::geom::CoordinateExpr2
CoordinateExpr< 2 > CoordinateExpr2
Definition
CoordinateExpr.h:95
lsst
Generated on
for lsst.geom by
1.17.0