LSSTApplications  10.0-2-g4f67435,11.0.rc2+1,11.0.rc2+12,11.0.rc2+3,11.0.rc2+4,11.0.rc2+5,11.0.rc2+6,11.0.rc2+7,11.0.rc2+8
LSSTDataManagementBasePackage
Public Member Functions | Private Types | List of all members
lsst.afw.geom::CoordinateExpr< N > Class Template Reference

A boolean coordinate. More...

#include <CoordinateExpr.h>

Inheritance diagram for lsst.afw.geom::CoordinateExpr< N >:
lsst.afw.geom::CoordinateBase< CoordinateExpr< N >, bool, N >

Public Member Functions

 CoordinateExpr (bool val=false)
 Construct a CoordinateExpr with all elements set to the same scalar value. More...
 
template<typename Vector >
 CoordinateExpr (Eigen::MatrixBase< Vector > const &vector)
 Construct a CoordinateExpr from an Eigen vector. More...
 
Logical operators

These operators do not provide interoperability with scalars.

CoordinateExpr and_ (CoordinateExpr const &rhs) const
 
CoordinateExpr or_ (CoordinateExpr const &rhs) const
 
CoordinateExpr not_ () const
 
- Public Member Functions inherited from lsst.afw.geom::CoordinateBase< CoordinateExpr< N >, bool, N >
bool & operator[] (int n)
 
boolconst & operator[] (int n) const
 
bool & coeffRef (int n)
 
boolconst & coeffRef (int n) const
 
EigenVector const & asEigen () const
 Return a fixed-size Eigen representation of the coordinate object. More...
 

Private Types

typedef CoordinateBase
< CoordinateExpr< N >, bool, N > 
Super
 

Additional Inherited Members

- Public Types inherited from lsst.afw.geom::CoordinateBase< CoordinateExpr< N >, bool, N >
typedef bool Element
 
typedef Eigen::Matrix< bool, N,
1, Eigen::DontAlign > 
EigenVector
 
- Static Public Attributes inherited from lsst.afw.geom::CoordinateBase< CoordinateExpr< N >, bool, N >
static int const dimensions
 
- Protected Member Functions inherited from lsst.afw.geom::CoordinateBase< CoordinateExpr< N >, bool, N >
 CoordinateBase (boolval=static_cast< bool >(0))
 Initialize all elements to a scalar. More...
 
 CoordinateBase (Eigen::MatrixBase< Vector > const &vector)
 Initialize all elements from an N-d Eigen vector. More...
 
void _swap (CoordinateBase &other)
 
- Protected Attributes inherited from lsst.afw.geom::CoordinateBase< CoordinateExpr< N >, bool, N >
EigenVector _vector
 

Detailed Description

template<int N>
class lsst.afw.geom::CoordinateExpr< N >

A boolean coordinate.

CoordinateExpr is intended to be used as a temporary in coordinate comparisons:

* Point2D a(3.5,1.2);
* Point2D b(-1.5,4.3);
* std::cout << all(a.lt(b)) << std::endl; // false
* std::cout << any(a.lt(b)) << std::endl; // true
*

CoordinateExpr is not a true lazy-evaluation expression template, as that seems unnecessary when the object is typically only two bools large (smaller than the raw pointers necessary to implement a lazy solution). The consequence is that there's no short-circuiting of logical operators, but I don't think that will even remotely matter for most use cases. The any() and all() functions do support short-circuiting.

Definition at line 54 of file CoordinateExpr.h.

Member Typedef Documentation

template<int N>
typedef CoordinateBase<CoordinateExpr<N>,bool,N> lsst.afw.geom::CoordinateExpr< N >::Super
private

Definition at line 55 of file CoordinateExpr.h.

Constructor & Destructor Documentation

template<int N>
lsst.afw.geom::CoordinateExpr< N >::CoordinateExpr ( bool  val = false)
inlineexplicit

Construct a CoordinateExpr with all elements set to the same scalar value.

Definition at line 59 of file CoordinateExpr.h.

59 : Super(val) {}
CoordinateBase< CoordinateExpr< N >, bool, N > Super
ImageT val
Definition: CR.cc:154
template<int N>
template<typename Vector >
lsst.afw.geom::CoordinateExpr< N >::CoordinateExpr ( Eigen::MatrixBase< Vector > const &  vector)
inlineexplicit

Construct a CoordinateExpr from an Eigen vector.

Definition at line 63 of file CoordinateExpr.h.

63 : Super(vector) {}
CoordinateBase< CoordinateExpr< N >, bool, N > Super

Member Function Documentation

template<int N>
CoordinateExpr lsst.afw.geom::CoordinateExpr< N >::and_ ( CoordinateExpr< N > const &  rhs) const
template<int N>
CoordinateExpr lsst.afw.geom::CoordinateExpr< N >::not_ ( ) const
template<int N>
CoordinateExpr lsst.afw.geom::CoordinateExpr< N >::or_ ( CoordinateExpr< N > const &  rhs) const

The documentation for this class was generated from the following file: