LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | List of all members
lsst::geom::polynomials::Scaling2d Class Reference

A 2-d separable affine transform that can be used to map one interval to another. More...

#include <Scaling2d.h>

Public Member Functions

 Scaling2d (Scaling1d const &x, Scaling1d const &y) noexcept
 Construct from the given 1-d scalings. More...
 
 Scaling2d (Scaling2d const &) noexcept=default
 Default copy constructor. More...
 
 Scaling2d (Scaling2d &&) noexcept=default
 Default move constructor. More...
 
Scaling2doperator= (Scaling2d const &) noexcept=default
 Default copy assignment. More...
 
Scaling2doperator= (Scaling2d &&) noexcept=default
 Default move assignment. More...
 
Scaling1d const & getX () const noexcept
 Return the 1-d scaling in the X direction. More...
 
Scaling1d const & getY () const noexcept
 Return the 1-d scaling in the Y direction. More...
 
geom::Point2D applyForward (geom::Point2D const &p) const noexcept
 Apply the transform in the forward direction. More...
 
geom::Point2D applyInverse (geom::Point2D const &p) const noexcept
 Apply the inverse of the forward transform. More...
 
Scaling2d inverted () const noexcept
 Invert the transform. More...
 
Scaling2d then (Scaling2d const &second) const noexcept
 Compose two transforms. More...
 

Detailed Description

A 2-d separable affine transform that can be used to map one interval to another.

The transform is represented in each dimension as an additive shift followed by a multiplicative scaling. Unlike a full affine transform, Scaling2d cannot include rotations.

Note
This class (and to a lesser extent its 1-d counterpart, Scaling1d) has a lot in common with geom::AffineTransform, and ideally they should share code and be highly interoperable. Doing that well would require a larger-scale rethink of geom, however, and at present we don't actually have a use case for that interoperability, so it's something we should keep in mind for the future, not a high priority for the present.
See also
makeUnitRangeScaling2d

Definition at line 48 of file Scaling2d.h.

Constructor & Destructor Documentation

◆ Scaling2d() [1/3]

lsst::geom::polynomials::Scaling2d::Scaling2d ( Scaling1d const &  x,
Scaling1d const &  y 
)
inlinenoexcept

Construct from the given 1-d scalings.

Definition at line 52 of file Scaling2d.h.

52 : _x(x), _y(y) {}
double x
int y
Definition: SpanSet.cc:48

◆ Scaling2d() [2/3]

lsst::geom::polynomials::Scaling2d::Scaling2d ( Scaling2d const &  )
defaultnoexcept

Default copy constructor.

◆ Scaling2d() [3/3]

lsst::geom::polynomials::Scaling2d::Scaling2d ( Scaling2d &&  )
defaultnoexcept

Default move constructor.

Member Function Documentation

◆ applyForward()

geom::Point2D lsst::geom::polynomials::Scaling2d::applyForward ( geom::Point2D const &  p) const
inlinenoexcept

Apply the transform in the forward direction.

Definition at line 73 of file Scaling2d.h.

73  {
74  return geom::Point2D(getX().applyForward(p.getX()), getY().applyForward(p.getY()));
75  }
Scaling1d const & getX() const noexcept
Return the 1-d scaling in the X direction.
Definition: Scaling2d.h:67
Scaling1d const & getY() const noexcept
Return the 1-d scaling in the Y direction.
Definition: Scaling2d.h:70
geom::Point2D applyForward(geom::Point2D const &p) const noexcept
Apply the transform in the forward direction.
Definition: Scaling2d.h:73
Point< double, 2 > Point2D
Definition: Point.h:324

◆ applyInverse()

geom::Point2D lsst::geom::polynomials::Scaling2d::applyInverse ( geom::Point2D const &  p) const
inlinenoexcept

Apply the inverse of the forward transform.

Definition at line 78 of file Scaling2d.h.

78  {
79  return geom::Point2D(getX().applyInverse(p.getX()), getY().applyInverse(p.getY()));
80  }
geom::Point2D applyInverse(geom::Point2D const &p) const noexcept
Apply the inverse of the forward transform.
Definition: Scaling2d.h:78

◆ getX()

Scaling1d const& lsst::geom::polynomials::Scaling2d::getX ( ) const
inlinenoexcept

Return the 1-d scaling in the X direction.

Definition at line 67 of file Scaling2d.h.

67 { return _x; }

◆ getY()

Scaling1d const& lsst::geom::polynomials::Scaling2d::getY ( ) const
inlinenoexcept

Return the 1-d scaling in the Y direction.

Definition at line 70 of file Scaling2d.h.

70 { return _y; }

◆ inverted()

Scaling2d lsst::geom::polynomials::Scaling2d::inverted ( ) const
inlinenoexcept

Invert the transform.

If r = t.inverted(), then r.applyForward(p) is equivalent to t.applyInverse(p) and r.applyInverse(q) is equivalent to t.applyForward(q).

Definition at line 89 of file Scaling2d.h.

89  {
90  return Scaling2d(getX().inverted(), getY().inverted());
91  }
Scaling2d inverted() const noexcept
Invert the transform.
Definition: Scaling2d.h:89
Scaling2d(Scaling1d const &x, Scaling1d const &y) noexcept
Construct from the given 1-d scalings.
Definition: Scaling2d.h:52

◆ operator=() [1/2]

Scaling2d& lsst::geom::polynomials::Scaling2d::operator= ( Scaling2d &&  )
defaultnoexcept

Default move assignment.

◆ operator=() [2/2]

Scaling2d& lsst::geom::polynomials::Scaling2d::operator= ( Scaling2d const &  )
defaultnoexcept

Default copy assignment.

◆ then()

Scaling2d lsst::geom::polynomials::Scaling2d::then ( Scaling2d const &  second) const
inlinenoexcept

Compose two transforms.

If r = a.then(b), then r.applyForward(p) is equivalent to b.applyForward(a.applyForward(p)) and r.applyInverse(q) is equivalent to a.applyInverse(b.applyInverse(q)).

Definition at line 100 of file Scaling2d.h.

100  {
101  return Scaling2d(getX().then(second.getX()), getY().then(second.getY()));
102  }
Scaling2d then(Scaling2d const &second) const noexcept
Compose two transforms.
Definition: Scaling2d.h:100

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