lsst.geom  15.0-1-g417ea41+5
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Related Functions | List of all members
lsst::geom::PointBase< T, N > Class Template Reference

#include <Point.h>

Inheritance diagram for lsst::geom::PointBase< T, N >:
lsst::geom::CoordinateBase< Point< T, N >, T, N > lsst::geom::Point< T, N >

Public Types

typedef T Element
 
typedef Eigen::Matrix< T, N, 1, Eigen::DontAlign > EigenVector
 

Public Member Functions

 PointBase (PointBase const &)=default
 
 PointBase (PointBase &&)=default
 
PointBaseoperator= (PointBase const &)=default
 
PointBaseoperator= (PointBase &&)=default
 
 ~PointBase ()=default
 
bool operator== (Point< T, N > const &other) const
 Standard equality comparison. More...
 
bool operator!= (Point< T, N > const &other) const
 Standard inequality comparison. More...
 
Extent< T, N > asExtent () const
 Cast this object to an Extent of the same numeric type and dimensionality. More...
 
void shift (Extent< T, N > const &offset)
 Shift the point by the given offset. More...
 
void scale (double factor)
 
double distanceSquared (PointBase< T, N > const &other) const
 
std::string toString () const
 
T & operator[] (int n)
 
T const & operator[] (int n) const
 
T & coeffRef (int n)
 
T const & coeffRef (int n) const
 
EigenVector const & asEigen () const
 Return a fixed-size Eigen representation of the coordinate object. More...
 
Named vectorized comparison functions

Note that these return CoordinateExpr, not bool.

Unlike most arithmetic and assignment operators, scalar interoperability is provided for comparisons; expressions like

if (all(point.gt(0))) ...

are both ubiquitous and easy to interpret.

CoordinateExpr< N > eq (Point< T, N > const &other) const
 
CoordinateExpr< N > ne (Point< T, N > const &other) const
 
CoordinateExpr< N > lt (Point< T, N > const &other) const
 
CoordinateExpr< N > le (Point< T, N > const &other) const
 
CoordinateExpr< N > gt (Point< T, N > const &other) const
 
CoordinateExpr< N > ge (Point< T, N > const &other) const
 
CoordinateExpr< N > eq (T scalar) const
 
CoordinateExpr< N > ne (T scalar) const
 
CoordinateExpr< N > lt (T scalar) const
 
CoordinateExpr< N > le (T scalar) const
 
CoordinateExpr< N > gt (T scalar) const
 
CoordinateExpr< N > ge (T scalar) const
 
Arithmetic operators

No scalar interoperability is provided for Point arithmetic operations.

Extent< T, N > operator- (Point< T, N > const &other) const
 
Point< T, N > operator+ (Extent< T, N > const &other) const
 
Point< T, N > operator- (Extent< T, N > const &other) const
 
Point< T, N > & operator+= (Extent< T, N > const &other)
 
Point< T, N > & operator-= (Extent< T, N > const &other)
 

Static Public Attributes

static int const dimensions
 

Protected Member Functions

 PointBase (T val=static_cast< T >(0))
 
template<typename Vector >
 PointBase (Eigen::MatrixBase< Vector > const &vector)
 
void _swap (CoordinateBase &other)
 

Protected Attributes

EigenVector _vector
 

Related Functions

(Note that these are not member functions.)

bool allclose (CoordinateBase< Point< T, N >, T, N > const &a, CoordinateBase< Point< T, N >, T, N > const &b, T rtol=static_cast< T >(1E-5), T atol=static_cast< T >(1E-8))
 Floating-point comparison with tolerance. More...
 

Detailed Description

template<typename T, int N>
class lsst::geom::PointBase< T, N >

Definition at line 38 of file Point.h.

Member Typedef Documentation

◆ EigenVector

typedef Eigen::Matrix<T, N, 1, Eigen::DontAlign> lsst::geom::CoordinateBase< Point< T, N > , T, N >::EigenVector
inherited

Definition at line 52 of file CoordinateBase.h.

◆ Element

typedef T lsst::geom::CoordinateBase< Point< T, N > , T, N >::Element
inherited

Definition at line 50 of file CoordinateBase.h.

Constructor & Destructor Documentation

◆ PointBase() [1/4]

template<typename T, int N>
lsst::geom::PointBase< T, N >::PointBase ( PointBase< T, N > const &  )
default

◆ PointBase() [2/4]

template<typename T, int N>
lsst::geom::PointBase< T, N >::PointBase ( PointBase< T, N > &&  )
default

◆ ~PointBase()

template<typename T, int N>
lsst::geom::PointBase< T, N >::~PointBase ( )
default

◆ PointBase() [3/4]

template<typename T, int N>
lsst::geom::PointBase< T, N >::PointBase ( val = static_cast<T>(0))
inlineexplicitprotected

Definition at line 141 of file Point.h.

◆ PointBase() [4/4]

template<typename T, int N>
template<typename Vector >
lsst::geom::PointBase< T, N >::PointBase ( Eigen::MatrixBase< Vector > const &  vector)
inlineexplicitprotected

Definition at line 144 of file Point.h.

Member Function Documentation

◆ _swap()

void lsst::geom::CoordinateBase< Point< T, N > , T, N >::_swap ( CoordinateBase< Point< T, N >, T, N > &  other)
inlineprotectedinherited

Definition at line 89 of file CoordinateBase.h.

◆ asEigen()

EigenVector const& lsst::geom::CoordinateBase< Point< T, N > , T, N >::asEigen ( ) const
inlineinherited

Return a fixed-size Eigen representation of the coordinate object.

The fact that this returns by const reference rather than by value should not be considered part of the API; this is merely an optimization enabled by the implementation.

Definition at line 71 of file CoordinateBase.h.

◆ asExtent()

template<typename T, int N>
Extent<T, N> lsst::geom::PointBase< T, N >::asExtent ( ) const
inline

Cast this object to an Extent of the same numeric type and dimensionality.

Definition at line 115 of file Point.h.

◆ coeffRef() [1/2]

T& lsst::geom::CoordinateBase< Point< T, N > , T, N >::coeffRef ( int  n)
inlineinherited

Definition at line 62 of file CoordinateBase.h.

◆ coeffRef() [2/2]

T const& lsst::geom::CoordinateBase< Point< T, N > , T, N >::coeffRef ( int  n) const
inlineinherited

Definition at line 63 of file CoordinateBase.h.

◆ distanceSquared()

template<typename T, int N>
double lsst::geom::PointBase< T, N >::distanceSquared ( PointBase< T, N > const &  other) const
inline

Definition at line 122 of file Point.h.

◆ eq() [1/2]

template<typename T, int N>
CoordinateExpr< N > lsst::geom::PointBase< T, N >::eq ( Point< T, N > const &  other) const

Definition at line 76 of file Point.cc.

◆ eq() [2/2]

template<typename T, int N>
CoordinateExpr<N> lsst::geom::PointBase< T, N >::eq ( scalar) const
inline

Definition at line 81 of file Point.h.

◆ ge() [1/2]

template<typename T, int N>
CoordinateExpr< N > lsst::geom::PointBase< T, N >::ge ( Point< T, N > const &  other) const

Definition at line 111 of file Point.cc.

◆ ge() [2/2]

template<typename T, int N>
CoordinateExpr<N> lsst::geom::PointBase< T, N >::ge ( scalar) const
inline

Definition at line 86 of file Point.h.

◆ gt() [1/2]

template<typename T, int N>
CoordinateExpr< N > lsst::geom::PointBase< T, N >::gt ( Point< T, N > const &  other) const

Definition at line 104 of file Point.cc.

◆ gt() [2/2]

template<typename T, int N>
CoordinateExpr<N> lsst::geom::PointBase< T, N >::gt ( scalar) const
inline

Definition at line 85 of file Point.h.

◆ le() [1/2]

template<typename T, int N>
CoordinateExpr< N > lsst::geom::PointBase< T, N >::le ( Point< T, N > const &  other) const

Definition at line 97 of file Point.cc.

◆ le() [2/2]

template<typename T, int N>
CoordinateExpr<N> lsst::geom::PointBase< T, N >::le ( scalar) const
inline

Definition at line 84 of file Point.h.

◆ lt() [1/2]

template<typename T, int N>
CoordinateExpr< N > lsst::geom::PointBase< T, N >::lt ( Point< T, N > const &  other) const

Definition at line 90 of file Point.cc.

◆ lt() [2/2]

template<typename T, int N>
CoordinateExpr<N> lsst::geom::PointBase< T, N >::lt ( scalar) const
inline

Definition at line 83 of file Point.h.

◆ ne() [1/2]

template<typename T, int N>
CoordinateExpr< N > lsst::geom::PointBase< T, N >::ne ( Point< T, N > const &  other) const

Definition at line 83 of file Point.cc.

◆ ne() [2/2]

template<typename T, int N>
CoordinateExpr<N> lsst::geom::PointBase< T, N >::ne ( scalar) const
inline

Definition at line 82 of file Point.h.

◆ operator!=()

template<typename T, int N>
bool lsst::geom::PointBase< T, N >::operator!= ( Point< T, N > const &  other) const
inline

Standard inequality comparison.

Returns true iff any(this->ne(other));

Definition at line 60 of file Point.h.

◆ operator+()

template<typename T, int N>
Point<T, N> lsst::geom::PointBase< T, N >::operator+ ( Extent< T, N > const &  other) const
inline

Definition at line 98 of file Point.h.

◆ operator+=()

template<typename T, int N>
Point<T, N>& lsst::geom::PointBase< T, N >::operator+= ( Extent< T, N > const &  other)
inline

Definition at line 104 of file Point.h.

◆ operator-() [1/2]

template<typename T, int N>
Extent<T, N> lsst::geom::PointBase< T, N >::operator- ( Point< T, N > const &  other) const
inline

Definition at line 95 of file Point.h.

◆ operator-() [2/2]

template<typename T, int N>
Point<T, N> lsst::geom::PointBase< T, N >::operator- ( Extent< T, N > const &  other) const
inline

Definition at line 101 of file Point.h.

◆ operator-=()

template<typename T, int N>
Point<T, N>& lsst::geom::PointBase< T, N >::operator-= ( Extent< T, N > const &  other)
inline

Definition at line 108 of file Point.h.

◆ operator=() [1/2]

template<typename T, int N>
PointBase& lsst::geom::PointBase< T, N >::operator= ( PointBase< T, N > const &  )
default

◆ operator=() [2/2]

template<typename T, int N>
PointBase& lsst::geom::PointBase< T, N >::operator= ( PointBase< T, N > &&  )
default

◆ operator==()

template<typename T, int N>
bool lsst::geom::PointBase< T, N >::operator== ( Point< T, N > const &  other) const
inline

Standard equality comparison.

Returns true iff all(this->eq(other));

Definition at line 53 of file Point.h.

◆ operator[]() [1/2]

T& lsst::geom::CoordinateBase< Point< T, N > , T, N >::operator[] ( int  n)
inlineinherited

Definition at line 60 of file CoordinateBase.h.

◆ operator[]() [2/2]

T const& lsst::geom::CoordinateBase< Point< T, N > , T, N >::operator[] ( int  n) const
inlineinherited

Definition at line 61 of file CoordinateBase.h.

◆ scale()

template<typename T, int N>
void lsst::geom::PointBase< T, N >::scale ( double  factor)
inline

Definition at line 120 of file Point.h.

◆ shift()

template<typename T, int N>
void lsst::geom::PointBase< T, N >::shift ( Extent< T, N > const &  offset)
inline

Shift the point by the given offset.

Definition at line 118 of file Point.h.

◆ toString()

template<typename T, int N>
std::string lsst::geom::PointBase< T, N >::toString ( ) const
inline

Definition at line 127 of file Point.h.

Friends And Related Function Documentation

◆ allclose()

bool allclose ( CoordinateBase< Point< T, N > , T, N > const &  a,
CoordinateBase< Point< T, N > , T, N > const &  b,
rtol = static_cast<T>(1E-5),
atol = static_cast<T>(1E-8) 
)
related

Floating-point comparison with tolerance.

Interface, naming, and default tolerances matches Numpy.

Definition at line 30 of file CoordinateBase.cc.

Member Data Documentation

◆ _vector

EigenVector lsst::geom::CoordinateBase< Point< T, N > , T, N >::_vector
protectedinherited

Definition at line 90 of file CoordinateBase.h.

◆ dimensions

int const lsst::geom::CoordinateBase< Point< T, N > , T, N >::dimensions
staticinherited

Definition at line 51 of file CoordinateBase.h.


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