LSST Applications g02d81e74bb+86cf3d8bc9,g180d380827+7a4e862ed4,g2079a07aa2+86d27d4dc4,g2305ad1205+e1ca1c66fa,g29320951ab+012e1474a1,g295015adf3+341ea1ce94,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+c429d67c83,g48712c4677+f88676dd22,g487adcacf7+27e1e21933,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+b41db86c35,g5a732f18d5+53520f316c,g64a986408d+86cf3d8bc9,g858d7b2824+86cf3d8bc9,g8a8a8dda67+585e252eca,g99cad8db69+84912a7fdc,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+a2b54eae19,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+6681f309db,gc120e1dc64+f0fcc2f6d8,gc28159a63d+0e5473021a,gcf0d15dbbd+c429d67c83,gdaeeff99f8+f9a426f77a,ge6526c86ff+0433e6603d,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+86cf3d8bc9,w.2024.17
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
lsst::afw::geom::GenericEndpoint Class Reference

A generic endpoint for data in the format used by ast::Mapping. More...

#include <Endpoint.h>

Inheritance diagram for lsst::afw::geom::GenericEndpoint:
lsst::afw::geom::BaseEndpoint< std::vector< double >, ndarray::Array< double, 2, 2 > >

Public Types

using Point
 
using Array
 

Public Member Functions

 GenericEndpoint (GenericEndpoint const &)=default
 
 GenericEndpoint (GenericEndpoint &&)=default
 
GenericEndpointoperator= (GenericEndpoint const &)=delete
 
GenericEndpointoperator= (GenericEndpoint &&)=delete
 
 GenericEndpoint (int nAxes)
 Construct a GenericEndpoint with the specified number of axes.
 
 ~GenericEndpoint () override=default
 
int getNPoints (Array const &arr) const override
 Return the number of points in an array.
 
std::vector< doubledataFromPoint (Point const &point) const override
 Get raw data from a single point.
 
ndarray::Array< double, 2, 2 > dataFromArray (Array const &arr) const override
 Get raw data from an array of points.
 
Point pointFromData (std::vector< double > const &data) const override
 Get a single point from raw data.
 
Array arrayFromData (ndarray::Array< double, 2, 2 > const &data) const override
 Get an array of points from raw data.
 
int getNAxes () const
 
virtual bool operator== (BaseEndpoint const &other) const noexcept
 Determine whether two endpoints represent the same conversion.
 
bool operator!= (BaseEndpoint const &other) const noexcept
 Determine whether two endpoints do not represent the same conversion.
 
virtual std::shared_ptr< ast::FramemakeFrame () const
 Create a Frame that can be used with this end point in a Transform.
 
virtual void normalizeFrame (std::shared_ptr< ast::Frame > framePtr) const
 Adjust and check the frame as needed.
 

Static Public Member Functions

static std::string getClassPrefix ()
 Get the class name prefix, e.g. "Point2" for "Point2Endpoint".
 

Protected Member Functions

void _assertNAxes (int nAxes) const
 
int _getNAxes (ndarray::Array< double, 2, 2 > const &data) const
 
int _getNAxes (ndarray::Array< double, 1, 1 > const &data) const
 
int _getNAxes (std::vector< double > const &data) const
 
int _getNPoints (ndarray::Array< double, 2, 2 > const &data) const
 

Detailed Description

A generic endpoint for data in the format used by ast::Mapping.

Thus supports all ast frame classes and any number of axes, and thus can be used as an endpoint for any ast::Mapping.

Definition at line 226 of file Endpoint.h.

Member Typedef Documentation

◆ Array

using lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::Array
inherited

Definition at line 70 of file Endpoint.h.

◆ Point

using lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::Point
inherited

Definition at line 69 of file Endpoint.h.

Constructor & Destructor Documentation

◆ GenericEndpoint() [1/3]

lsst::afw::geom::GenericEndpoint::GenericEndpoint ( GenericEndpoint const & )
default

◆ GenericEndpoint() [2/3]

lsst::afw::geom::GenericEndpoint::GenericEndpoint ( GenericEndpoint && )
default

◆ GenericEndpoint() [3/3]

lsst::afw::geom::GenericEndpoint::GenericEndpoint ( int nAxes)
inlineexplicit

Construct a GenericEndpoint with the specified number of axes.

Parameters
[in]nAxesThe number of axes in a point; must be > 0
Exceptions
lsst.pex.exceptions.InvalidParameterErrorif nAxes <= 0

Definition at line 240 of file Endpoint.h.

◆ ~GenericEndpoint()

lsst::afw::geom::GenericEndpoint::~GenericEndpoint ( )
overridedefault

Member Function Documentation

◆ _assertNAxes()

void lsst::afw::geom::BaseEndpoint< Point, Array >::_assertNAxes ( int nAxes) const
protectedinherited

Definition at line 175 of file Endpoint.cc.

◆ _getNAxes() [1/3]

int lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::_getNAxes ( ndarray::Array< double, 1, 1 > const & data) const
inlineprotectedinherited

Definition at line 179 of file Endpoint.h.

◆ _getNAxes() [2/3]

int lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::_getNAxes ( ndarray::Array< double, 2, 2 > const & data) const
inlineprotectedinherited

Definition at line 177 of file Endpoint.h.

◆ _getNAxes() [3/3]

int lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::_getNAxes ( std::vector< double > const & data) const
inlineprotectedinherited

Definition at line 181 of file Endpoint.h.

◆ _getNPoints()

int lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::_getNPoints ( ndarray::Array< double, 2, 2 > const & data) const
inlineprotectedinherited

Definition at line 183 of file Endpoint.h.

◆ arrayFromData()

ndarray::Array< double, 2, 2 > lsst::afw::geom::GenericEndpoint::arrayFromData ( ndarray::Array< double, 2, 2 > const & data) const
overridevirtual

Get an array of points from raw data.

Parameters
[in]dataRaw data for an array of points, as a 2-D ndarray array [nPoints, nAxes] in C order, so the in-memory view is, for example, x0, y0, x1, y1, x2, y2, ...
Returns
an array of points
Exceptions
lsst::pex::exceptions::InvalidParameterErrorif the array has the wrong nAxes dimension

Implements lsst::afw::geom::BaseEndpoint< std::vector< double >, ndarray::Array< double, 2, 2 > >.

Definition at line 101 of file Endpoint.cc.

101 {
103 return ndarray::copy(data);
104}
char * data
Definition BaseRecord.cc:61
int _getNAxes(ndarray::Array< double, 2, 2 > const &data) const
Definition Endpoint.h:177

◆ dataFromArray()

ndarray::Array< double, 2, 2 > lsst::afw::geom::GenericEndpoint::dataFromArray ( Array const & arr) const
overridevirtual

Get raw data from an array of points.

Parameters
[in]arrArray of points
Returns
the data as a 2-D ndarray array [nAxes, nPoints] in C order, so the in-memory view is, for example, x0, x1, x2, ..., y0, y1, y2, ...
Exceptions
lsst::pex::exceptions::InvalidParameterErrorif the array has the wrong nAxes dimension

Implements lsst::afw::geom::BaseEndpoint< std::vector< double >, ndarray::Array< double, 2, 2 > >.

Definition at line 91 of file Endpoint.cc.

91 {
93 return ndarray::copy(arr);
94}

◆ dataFromPoint()

std::vector< double > lsst::afw::geom::GenericEndpoint::dataFromPoint ( Point const & point) const
overridevirtual

Get raw data from a single point.

Parameters
[in]pointdata for a single point
Returns
the values in the point as a vector of size NAxess
Exceptions
lsst::pex::exceptions::InvalidParameterErrorif the point has the wrong number of axes

Implements lsst::afw::geom::BaseEndpoint< std::vector< double >, ndarray::Array< double, 2, 2 > >.

Definition at line 86 of file Endpoint.cc.

86 {
87 this->_assertNAxes(_getNAxes(point));
88 return point;
89}

◆ getClassPrefix()

static std::string lsst::afw::geom::GenericEndpoint::getClassPrefix ( )
inlinestatic

Get the class name prefix, e.g. "Point2" for "Point2Endpoint".

Definition at line 255 of file Endpoint.h.

255{ return "Generic"; };

◆ getNAxes()

int lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::getNAxes ( ) const
inlineinherited

Definition at line 79 of file Endpoint.h.

◆ getNPoints()

int lsst::afw::geom::GenericEndpoint::getNPoints ( Array const & arr) const
inlineoverridevirtual

Return the number of points in an array.

Implements lsst::afw::geom::BaseEndpoint< std::vector< double >, ndarray::Array< double, 2, 2 > >.

Definition at line 244 of file Endpoint.h.

244{ return arr.getSize<1>(); }

◆ makeFrame()

std::shared_ptr< ast::Frame > lsst::afw::geom::BaseEndpoint< Point, Array >::makeFrame ( ) const
virtualinherited

Create a Frame that can be used with this end point in a Transform.

Definition at line 154 of file Endpoint.cc.

◆ normalizeFrame()

virtual void lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::normalizeFrame ( std::shared_ptr< ast::Frame > framePtr) const
inlinevirtualinherited

Adjust and check the frame as needed.

Do not bother to check the number of axes because that is done elsewhere.

The base implementation does nothing.

Definition at line 163 of file Endpoint.h.

◆ operator!=()

bool lsst::afw::geom::BaseEndpoint< std::vector< double > , ndarray::Array< double, 2, 2 > >::operator!= ( BaseEndpoint< std::vector< double >, ndarray::Array< double, 2, 2 > > const & other) const
inlinenoexceptinherited

Determine whether two endpoints do not represent the same conversion.

Returns
the inverse of operator==. See that operator's documentation for important caveats.

Definition at line 109 of file Endpoint.h.

◆ operator=() [1/2]

GenericEndpoint & lsst::afw::geom::GenericEndpoint::operator= ( GenericEndpoint && )
delete

◆ operator=() [2/2]

GenericEndpoint & lsst::afw::geom::GenericEndpoint::operator= ( GenericEndpoint const & )
delete

◆ operator==()

bool lsst::afw::geom::BaseEndpoint< Point, Array >::operator== ( BaseEndpoint< std::vector< double >, ndarray::Array< double, 2, 2 > > const & other) const
virtualnoexceptinherited

Determine whether two endpoints represent the same conversion.

Parameters
otherthe endpoint to compare
Returns
true iff this object and other are of exactly the same class and all visible properties are identical. This implementation requires that the objects have the same number of axes.
Warning
Two endpoints with different implementation classes will never compare equal, even if one class is conceptually equivalent to the other (e.g., a decorator). This may cause unexpected behavior when mixing related concrete endpoint classes.

Definition at line 101 of file Endpoint.cc.

◆ pointFromData()

std::vector< double > lsst::afw::geom::GenericEndpoint::pointFromData ( std::vector< double > const & data) const
overridevirtual

Get a single point from raw data.

Parameters
[in]dataData as a vector of length NAxes
Returns
the corresponding point

Implements lsst::afw::geom::BaseEndpoint< std::vector< double >, ndarray::Array< double, 2, 2 > >.

Definition at line 96 of file Endpoint.cc.

96 {
97 this->_assertNAxes(data.size());
98 return data;
99}
T size(T... args)

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