lsst.geom  15.0-2-ga7c72c5
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Related Functions | List of all members
lsst::geom::Point< T, N > Class Template Reference

A coordinate class intended to represent absolute positions. More...

#include <CoordinateBase.h>

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

Public Types

typedef Super::EigenVector EigenVector
 
typedef T Element
 

Public Member Functions

 Point (T val=static_cast< T >(0))
 Construct a Point with all elements set to the same scalar value. More...
 
 Point (Point const &)=default
 
 Point (Point &&)=default
 
 ~Point ()=default
 
Pointoperator= (Point const &)=default
 
Pointoperator= (Point &&)=default
 
template<typename U >
 Point (Point< U, N > const &other)
 Explicit converting constructor. More...
 
 Point (EigenVector const &vector)
 Construct a Point from an Eigen vector. More...
 
 Point (Extent< T, N > const &other)
 Explicit constructor from Extent. More...
 
void swap (Point &other)
 
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 > eq (T scalar) const
 
CoordinateExpr< N > ne (Point< T, N > const &other) const
 
CoordinateExpr< N > ne (T scalar) const
 
CoordinateExpr< N > lt (Point< T, N > const &other) const
 
CoordinateExpr< N > lt (T scalar) const
 
CoordinateExpr< N > le (Point< T, N > const &other) const
 
CoordinateExpr< N > le (T scalar) const
 
CoordinateExpr< N > gt (Point< T, N > const &other) const
 
CoordinateExpr< N > gt (T scalar) const
 
CoordinateExpr< N > ge (Point< T, N > const &other) 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

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::Point< T, N >

A coordinate class intended to represent absolute positions.

See Operators on Point and Extent for mathematical operators on Point.

Definition at line 38 of file CoordinateBase.h.

Member Typedef Documentation

◆ EigenVector

template<typename T, int N>
typedef Super::EigenVector lsst::geom::Point< T, N >::EigenVector

Definition at line 157 of file Point.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

◆ Point() [1/6]

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

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

Definition at line 160 of file Point.h.

◆ Point() [2/6]

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

◆ Point() [3/6]

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

◆ ~Point()

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

◆ Point() [4/6]

template<typename T , int N>
template<typename U >
lsst::geom::Point< T, N >::Point ( Point< U, N > const &  other)
explicit

Explicit converting constructor.

Converting from floating point to integer rounds to the nearest integer instead of truncating. This ensures that a floating-point pixel coordinate converts to the coordinate of the pixel it lies on (assuming the floating point origin is the center of the first pixel).

Definition at line 53 of file Point.cc.

◆ Point() [5/6]

template<typename T, int N>
lsst::geom::Point< T, N >::Point ( EigenVector const &  vector)
inlineexplicit

Construct a Point from an Eigen vector.

Definition at line 180 of file Point.h.

◆ Point() [6/6]

template<typename T, int N>
lsst::geom::Point< T, N >::Point ( Extent< T, N > const &  other)
inlineexplicit

Explicit constructor from Extent.

Definition at line 183 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
inlineinherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

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)
inlineinherited

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
inlineinherited

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
inlineinherited

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)
inlineinherited

Definition at line 108 of file Point.h.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ operator==()

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

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)
inlineinherited

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)
inlineinherited

Shift the point by the given offset.

Definition at line 118 of file Point.h.

◆ swap()

template<typename T, int N>
void lsst::geom::Point< T, N >::swap ( Point< T, N > &  other)
inline

Definition at line 185 of file Point.h.

◆ toString()

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

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: