LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
afw
11.0-2-g04d2804
include
lsst
afw
geom
CoordinateExpr.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2008, 2009, 2010 LSST Corporation.
6
*
7
* This product includes software developed by the
8
* LSST Project (http://www.lsst.org/).
9
*
10
* This program is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the LSST License Statement and
21
* the GNU General Public License along with this program. If not,
22
* see <http://www.lsstcorp.org/LegalNotices/>.
23
*/
24
29
#ifndef LSST_AFW_GEOM_COORDINATEEXPR_H
30
#define LSST_AFW_GEOM_COORDINATEEXPR_H
31
32
#include "
lsst/afw/geom/CoordinateBase.h
"
33
34
namespace
lsst {
namespace
afw {
namespace
geom {
35
53
template
<
int
N>
54
class
CoordinateExpr
:
public
CoordinateBase
<CoordinateExpr<N>,bool,N> {
55
typedef
CoordinateBase<CoordinateExpr<N>
,bool,N>
Super
;
56
public
:
57
59
explicit
CoordinateExpr
(
bool
val
=
false
) :
Super
(
val
) {}
60
62
template
<
typename
Vector>
63
explicit
CoordinateExpr
(Eigen::MatrixBase<Vector>
const
& vector) :
Super
(vector) {}
64
71
CoordinateExpr
and_
(
CoordinateExpr
const
& rhs)
const
;
72
CoordinateExpr
or_
(
CoordinateExpr
const
& rhs)
const
;
73
CoordinateExpr
not_
()
const
;
75
76
};
77
79
template
<
int
N>
80
inline
bool
all
(
CoordinateExpr<N>
const
& expr) {
81
for
(
int
n=0; n<N; ++n)
if
(!expr[n])
return
false
;
82
return
true
;
83
}
84
86
template
<
int
N>
87
inline
bool
any
(
CoordinateExpr<N>
const
& expr) {
88
for
(
int
n=0; n<N; ++n)
if
(expr[n])
return
true
;
89
return
false
;
90
}
91
92
typedef
CoordinateExpr<2>
CoordinateExpr2
;
93
typedef
CoordinateExpr<3>
CoordinateExpr3
;
94
95
}}}
96
97
#endif
lsst::afw::geom::CoordinateExpr
A boolean coordinate.
Definition:
CoordinateExpr.h:54
lsst::afw::geom::CoordinateExpr::CoordinateExpr
CoordinateExpr(bool val=false)
Construct a CoordinateExpr with all elements set to the same scalar value.
Definition:
CoordinateExpr.h:59
lsst::afw::geom::all
bool all(CoordinateExpr< N > const &expr)
Return true if all elements are true.
Definition:
CoordinateExpr.h:80
lsst::afw::geom::CoordinateExpr::not_
CoordinateExpr not_() const
lsst::afw::geom::CoordinateExpr::and_
CoordinateExpr and_(CoordinateExpr const &rhs) const
lsst::afw::geom::CoordinateExpr2
CoordinateExpr< 2 > CoordinateExpr2
Definition:
CoordinateExpr.h:92
lsst::afw::geom::CoordinateExpr::Super
CoordinateBase< CoordinateExpr< N >, bool, N > Super
Definition:
CoordinateExpr.h:55
lsst::afw::geom::CoordinateExpr3
CoordinateExpr< 3 > CoordinateExpr3
Definition:
CoordinateExpr.h:93
lsst::afw::geom::CoordinateExpr::or_
CoordinateExpr or_(CoordinateExpr const &rhs) const
lsst::afw::geom::CoordinateBase
A CRTP base class for coordinate objects.
Definition:
CoordinateBase.h:49
val
bool val
Definition:
DevicePreference.cc:55
lsst::afw::geom::any
bool any(CoordinateExpr< N > const &expr)
Return true if any elements are true.
Definition:
CoordinateExpr.h:87
lsst::afw::geom::CoordinateExpr::CoordinateExpr
CoordinateExpr(Eigen::MatrixBase< Vector > const &vector)
Construct a CoordinateExpr from an Eigen vector.
Definition:
CoordinateExpr.h:63
CoordinateBase.h
A CRTP base class for coordinate objects, providing partial specializations for 2D and 3D...
Generated on Thu Sep 24 2015 02:29:14 for LSSTApplications by
1.8.5