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
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
bool val
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: