24#ifndef LSST_AFW_GEOM_ENDPOINT_H
25#define LSST_AFW_GEOM_ENDPOINT_H
66template <
typename Po
intT,
typename ArrayT>
194template <
typename Po
intT>
Virtual base class for endpoints, which are helper classes for Transform.
int _getNPoints(ndarray::Array< double, 2, 2 > const &data) const
BaseEndpoint(BaseEndpoint &&)=default
BaseEndpoint & operator=(BaseEndpoint &&)=delete
virtual void normalizeFrame(std::shared_ptr< ast::Frame > framePtr) const
Adjust and check the frame as needed.
bool operator!=(BaseEndpoint const &other) const noexcept
Determine whether two endpoints do not represent the same conversion.
virtual std::shared_ptr< ast::Frame > makeFrame() const
Create a Frame that can be used with this end point in a Transform.
virtual Point pointFromData(std::vector< double > const &data) const =0
Get a single point from raw data.
virtual ndarray::Array< double, 2, 2 > dataFromArray(Array const &arr) const =0
Get raw data from an array of points.
virtual std::vector< double > dataFromPoint(Point const &point) const =0
Get raw data from a single point.
BaseEndpoint(BaseEndpoint const &)=default
int _getNAxes(ndarray::Array< double, 1, 1 > const &data) const
virtual bool operator==(BaseEndpoint const &other) const noexcept
Determine whether two endpoints represent the same conversion.
int _getNAxes(std::vector< double > const &data) const
virtual int getNPoints(Array const &arr) const =0
Return the number of points in an array.
void _assertNAxes(int nAxes) const
int _getNAxes(ndarray::Array< double, 2, 2 > const &data) const
virtual Array arrayFromData(ndarray::Array< double, 2, 2 > const &data) const =0
Get an array of points from raw data.
BaseEndpoint & operator=(BaseEndpoint const &)=delete
virtual ~BaseEndpoint()=default
Base class for endpoints with Array = std::vector<Point> where Point has 2 dimensions.
BaseVectorEndpoint(BaseVectorEndpoint &&)=default
BaseVectorEndpoint(int nAxes)
Construct a BaseVectorEndpoint.
BaseVectorEndpoint & operator=(BaseVectorEndpoint const &)=delete
BaseVectorEndpoint(BaseVectorEndpoint const &)=default
int getNPoints(Array const &arr) const override
Return the number of points in an array.
BaseVectorEndpoint & operator=(BaseVectorEndpoint &&)=delete
~BaseVectorEndpoint() override=default
A generic endpoint for data in the format used by ast::Mapping.
GenericEndpoint(int nAxes)
Construct a GenericEndpoint with the specified number of axes.
std::vector< double > dataFromPoint(Point const &point) const override
Get raw data from a single point.
Array arrayFromData(ndarray::Array< double, 2, 2 > const &data) const override
Get an array of points from raw data.
GenericEndpoint(GenericEndpoint &&)=default
GenericEndpoint(GenericEndpoint const &)=default
Point pointFromData(std::vector< double > const &data) const override
Get a single point from raw data.
int getNPoints(Array const &arr) const override
Return the number of points in an array.
ndarray::Array< double, 2, 2 > dataFromArray(Array const &arr) const override
Get raw data from an array of points.
GenericEndpoint & operator=(GenericEndpoint const &)=delete
static std::string getClassPrefix()
Get the class name prefix, e.g. "Point2" for "Point2Endpoint".
~GenericEndpoint() override=default
GenericEndpoint & operator=(GenericEndpoint &&)=delete
An endpoint for lsst::geom::Point2D.
Point2Endpoint & operator=(Point2Endpoint const &)=delete
Point2Endpoint()
Construct a Point2Endpoint.
ndarray::Array< double, 2, 2 > dataFromArray(Array const &arr) const override
Get raw data from an array of points.
~Point2Endpoint() override=default
std::vector< double > dataFromPoint(Point const &point) const override
Get raw data from a single point.
Point2Endpoint(Point2Endpoint const &)=default
static std::string getClassPrefix()
Get the class name prefix, e.g. "Point2" for "Point2Endpoint".
Point2Endpoint & operator=(Point2Endpoint &&)=delete
Point pointFromData(std::vector< double > const &data) const override
Get a single point from raw data.
Point2Endpoint(Point2Endpoint &&)=default
Array arrayFromData(ndarray::Array< double, 2, 2 > const &data) const override
Get an array of points from raw data.
void normalizeFrame(std::shared_ptr< ast::Frame > framePtr) const override
Check that framePtr points to a Frame, not a subclass.
An endpoint for lsst::geom::SpherePoint.
ndarray::Array< double, 2, 2 > dataFromArray(Array const &arr) const override
Get raw data from an array of points.
std::vector< double > dataFromPoint(Point const &point) const override
Get raw data from a single point.
SpherePointEndpoint()
Construct a SpherePointEndpoint.
SpherePointEndpoint(SpherePointEndpoint &&)=default
Array arrayFromData(ndarray::Array< double, 2, 2 > const &data) const override
Get an array of points from raw data.
std::shared_ptr< ast::Frame > makeFrame() const override
Create a Frame that can be used with this end point in a Transform.
static std::string getClassPrefix()
Get the class name prefix, e.g. "Point2" for "Point2Endpoint".
SpherePointEndpoint & operator=(SpherePointEndpoint &&)=delete
SpherePointEndpoint(SpherePointEndpoint const &)=default
SpherePointEndpoint & operator=(SpherePointEndpoint const &)=delete
Point pointFromData(std::vector< double > const &data) const override
Get a single point from raw data.
void normalizeFrame(std::shared_ptr< ast::Frame > framePtr) const override
Check that framePtr points to a SkyFrame and set longitude axis to 0, latitude to 1.
~SpherePointEndpoint() override=default
std::ostream & operator<<(std::ostream &os, GenericEndpoint const &endpoint)
Print "GenericEndpoint(_n_)" to the ostream where _n_ is the number of axes, e.g. "GenericAxes(4)".