LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+bd2ed33bd6,g1470d8bcf6+de7501a2e0,g14a832a312+ff425fae3c,g2079a07aa2+86d27d4dc4,g2305ad1205+91a32aca49,g295015adf3+762506a1ad,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+c34e8be1fa,g487adcacf7+5fae3daba8,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ea1711114f,g5a732f18d5+53520f316c,g64a986408d+bd2ed33bd6,g858d7b2824+bd2ed33bd6,g8a8a8dda67+585e252eca,g99cad8db69+016a06b37a,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+09e12c87ab,gc120e1dc64+bc2e06c061,gc28159a63d+0e5473021a,gcf0d15dbbd+c34e8be1fa,gdaeeff99f8+f9a426f77a,ge6526c86ff+508d0e0a30,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+8d59551888,gf1cff7945b+bd2ed33bd6,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Related Symbols | List of all members
lsst::geom::Point< T, 3 > Class Template Reference

A coordinate class intended to represent absolute positions (3-d specialization). More...

#include <Point.h>

Inheritance diagram for lsst::geom::Point< T, 3 >:
lsst::geom::PointBase< T, 3 > 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)) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Construct a Point with all elements set to the same scalar value.
 
 Point (Point const &)=default
 
 Point (Point &&)=default
 
 ~Point ()=default
 
Pointoperator= (Point const &)=default
 
Pointoperator= (Point &&)=default
 
template<typename U >
 Point (Point< U, 3 > const &other) noexcept(IS_NOTHROW_CONVERTIBLE< T, U >)
 Explicit converting constructor.
 
 Point (EigenVector const &vector) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Construct a Point from an Eigen vector.
 
 Point (Extent< T, 3 > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Explicit constructor from Extent.
 
 Point (T x, T y, T z) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Explicit constructor from a sequence of doubles.
 
 Point (T const xyz[3]) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Construct from a two-element array.
 
 Point (std::tuple< T, T, T > const &xyz) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Construct from std::tuple.
 
void swap (Point &other) noexcept
 
bool operator== (Point< T, N > const &other) const noexcept
 Standard equality comparison.
 
bool operator!= (Point< T, N > const &other) const noexcept
 Standard inequality comparison.
 
T & operator[] (int n)
 
T const & operator[] (int n) const
 
T & coeffRef (int n)
 
T const & coeffRef (int n) const
 
EigenVector const & asEigen () const noexcept(IS_ELEMENT_NOTHROW_COPYABLE)
 Return a fixed-size Eigen representation of the coordinate object.
 
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 noexcept
 
CoordinateExpr< N > eq (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > ne (Point< T, N > const &other) const noexcept
 
CoordinateExpr< N > ne (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > lt (Point< T, N > const &other) const noexcept
 
CoordinateExpr< N > lt (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > le (Point< T, N > const &other) const noexcept
 
CoordinateExpr< N > le (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > gt (Point< T, N > const &other) const noexcept
 
CoordinateExpr< N > gt (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > ge (Point< T, N > const &other) const noexcept
 
CoordinateExpr< N > ge (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
Arithmetic operators

No scalar interoperability is provided for Point arithmetic operations.

Extent< T, N > operator- (Point< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Point< T, N > operator- (Extent< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Point< T, N > operator+ (Extent< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Point< T, N > & operator+= (Extent< T, N > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Point< T, N > & operator-= (Extent< T, N > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Extent< T, N > asExtent () const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
void shift (Extent< T, N > const &offset) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Shift the point by the given offset.
 
void scale (double factor) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
double distanceSquared (PointBase< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
std::string toString () const
 Cast this object to an Extent of the same numeric type and dimensionality.
 

Static Public Attributes

static int const dimensions
 
static bool constexpr IS_ELEMENT_NOTHROW_COPYABLE
 
static bool constexpr IS_ELEMENT_NOTHROW_ASSIGNABLE
 

Protected Member Functions

void _swap (CoordinateBase &other) noexcept
 

Protected Attributes

EigenVector _vector
 

Related Symbols

(Note that these are not member symbols.)

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)) noexcept(std::is_nothrow_copy_constructible< T >::value &&std::is_nothrow_copy_assignable< T >::value)
 Floating-point comparison with tolerance.
 

Detailed Description

template<typename T>
class lsst::geom::Point< T, 3 >

A coordinate class intended to represent absolute positions (3-d specialization).

See geomOps for mathematical operators on Point.

Definition at line 268 of file Point.h.

Member Typedef Documentation

◆ EigenVector

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

Definition at line 272 of file Point.h.

◆ Element

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

Definition at line 57 of file CoordinateBase.h.

Constructor & Destructor Documentation

◆ Point() [1/9]

template<typename T >
lsst::geom::Point< T, 3 >::Point ( T val = static_cast<T>(0))
inlineexplicitnoexcept

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

Definition at line 275 of file Point.h.

275: Super(val) {}
ImageT val
Definition CR.cc:146

◆ Point() [2/9]

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

◆ Point() [3/9]

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

◆ ~Point()

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

◆ Point() [4/9]

template<typename T >
template<typename U >
lsst::geom::Point< T, 3 >::Point ( Point< U, 3 > const & other)
explicitnoexcept

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 69 of file Point.cc.

69 : Super() {
70 for (int n = 0; n < 3; ++n) {
71 this->_vector[n] = detail::PointSpecialized<T>::template convert<U>(other[n]);
72 }
73}

◆ Point() [5/9]

template<typename T >
lsst::geom::Point< T, 3 >::Point ( EigenVector const & vector)
inlineexplicitnoexcept

Construct a Point from an Eigen vector.

Definition at line 295 of file Point.h.

295: Super(vector) {}

◆ Point() [6/9]

template<typename T >
lsst::geom::Point< T, 3 >::Point ( Extent< T, 3 > const & other)
inlineexplicitnoexcept

Explicit constructor from Extent.

Definition at line 298 of file Point.h.

299 : Super(other.asEigen()) {}

◆ Point() [7/9]

template<typename T >
lsst::geom::Point< T, 3 >::Point ( T x,
T y,
T z )
inlineexplicitnoexcept

Explicit constructor from a sequence of doubles.

Definition at line 302 of file Point.h.

303 : Super(EigenVector(x, y, z)) {}
double z
Definition Match.cc:44
int y
Definition SpanSet.cc:48
Super::EigenVector EigenVector
Definition Point.h:272

◆ Point() [8/9]

template<typename T >
lsst::geom::Point< T, 3 >::Point ( T const xyz[3])
inlineexplicitnoexcept

Construct from a two-element array.

Definition at line 306 of file Point.h.

307 : Super(EigenVector(xyz[0], xyz[1], xyz[2])) {}

◆ Point() [9/9]

template<typename T >
lsst::geom::Point< T, 3 >::Point ( std::tuple< T, T, T > const & xyz)
inlineexplicitnoexcept

Construct from std::tuple.

Definition at line 310 of file Point.h.

311 : Super(EigenVector(std::get<0>(xyz), std::get<1>(xyz), std::get<2>(xyz))) {}

Member Function Documentation

◆ _swap()

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

Definition at line 108 of file CoordinateBase.h.

◆ asEigen()

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

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 89 of file CoordinateBase.h.

◆ asExtent()

Extent< T, N > lsst::geom::PointBase< T, N >::asExtent ( ) const
inlinenoexceptinherited

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

Definition at line 127 of file Point.h.

◆ coeffRef() [1/2]

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

Definition at line 80 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 81 of file CoordinateBase.h.

◆ distanceSquared()

double lsst::geom::PointBase< T, N >::distanceSquared ( PointBase< T, N > const & other) const
inlinenoexceptinherited

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

Definition at line 138 of file Point.h.

◆ eq() [1/2]

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

Definition at line 75 of file Point.cc.

◆ eq() [2/2]

CoordinateExpr< N > lsst::geom::PointBase< T, N >::eq ( T scalar) const
inlinenoexceptinherited

Definition at line 81 of file Point.h.

◆ ge() [1/2]

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

Definition at line 80 of file Point.cc.

◆ ge() [2/2]

CoordinateExpr< N > lsst::geom::PointBase< T, N >::ge ( T scalar) const
inlinenoexceptinherited

Definition at line 96 of file Point.h.

◆ gt() [1/2]

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

Definition at line 79 of file Point.cc.

◆ gt() [2/2]

CoordinateExpr< N > lsst::geom::PointBase< T, N >::gt ( T scalar) const
inlinenoexceptinherited

Definition at line 93 of file Point.h.

◆ le() [1/2]

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

Definition at line 78 of file Point.cc.

◆ le() [2/2]

CoordinateExpr< N > lsst::geom::PointBase< T, N >::le ( T scalar) const
inlinenoexceptinherited

Definition at line 90 of file Point.h.

◆ lt() [1/2]

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

Definition at line 77 of file Point.cc.

◆ lt() [2/2]

CoordinateExpr< N > lsst::geom::PointBase< T, N >::lt ( T scalar) const
inlinenoexceptinherited

Definition at line 87 of file Point.h.

◆ ne() [1/2]

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

Definition at line 76 of file Point.cc.

◆ ne() [2/2]

CoordinateExpr< N > lsst::geom::PointBase< T, N >::ne ( T scalar) const
inlinenoexceptinherited

Definition at line 84 of file Point.h.

◆ operator!=()

bool lsst::geom::PointBase< T, N >::operator!= ( Point< T, N > const & other) const
inlinenoexceptinherited

Standard inequality comparison.

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

Definition at line 60 of file Point.h.

◆ operator+()

Point< T, N > lsst::geom::PointBase< T, N >::operator+ ( Extent< T, N > const & other) const
inlinenoexceptinherited

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

Definition at line 110 of file Point.h.

◆ operator+=()

Point< T, N > & lsst::geom::PointBase< T, N >::operator+= ( Extent< T, N > const & other)
inlinenoexceptinherited

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

Definition at line 116 of file Point.h.

◆ operator-() [1/2]

Point< T, N > lsst::geom::PointBase< T, N >::operator- ( Extent< T, N > const & other) const
inlinenoexceptinherited

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

Definition at line 113 of file Point.h.

◆ operator-() [2/2]

Extent< T, N > lsst::geom::PointBase< T, N >::operator- ( Point< T, N > const & other) const
inlinenoexceptinherited

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

Definition at line 107 of file Point.h.

◆ operator-=()

Point< T, N > & lsst::geom::PointBase< T, N >::operator-= ( Extent< T, N > const & other)
inlinenoexceptinherited

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

Definition at line 120 of file Point.h.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ operator==()

bool lsst::geom::PointBase< T, N >::operator== ( Point< T, N > const & other) const
inlinenoexceptinherited

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 78 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 79 of file CoordinateBase.h.

◆ scale()

void lsst::geom::PointBase< T, N >::scale ( double factor)
inlinenoexceptinherited

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

Definition at line 136 of file Point.h.

◆ shift()

void lsst::geom::PointBase< T, N >::shift ( Extent< T, N > const & offset)
inlinenoexceptinherited

Shift the point by the given offset.

Definition at line 132 of file Point.h.

◆ swap()

template<typename T >
void lsst::geom::Point< T, 3 >::swap ( Point< T, 3 > & other)
inlinenoexcept

Definition at line 313 of file Point.h.

313{ this->_swap(other); }
void _swap(CoordinateBase &other) noexcept

◆ toString()

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

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

Definition at line 143 of file Point.h.

Friends And Related Symbol Documentation

◆ allclose()

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

Floating-point comparison with tolerance.

Interface, naming, and default tolerances matches Numpy.

Definition at line 120 of file CoordinateBase.cc.

Member Data Documentation

◆ _vector

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

Definition at line 109 of file CoordinateBase.h.

◆ dimensions

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

Definition at line 58 of file CoordinateBase.h.

◆ IS_ELEMENT_NOTHROW_ASSIGNABLE

bool constexpr lsst::geom::CoordinateBase< Point< T, N > , T, N >::IS_ELEMENT_NOTHROW_ASSIGNABLE
staticconstexprinherited

Definition at line 61 of file CoordinateBase.h.

◆ IS_ELEMENT_NOTHROW_COPYABLE

bool constexpr lsst::geom::CoordinateBase< Point< T, N > , T, N >::IS_ELEMENT_NOTHROW_COPYABLE
staticconstexprinherited

Definition at line 60 of file CoordinateBase.h.


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