Loading [MathJax]/extensions/tex2jax.js
LSST Applications g0000d66e7c+4a51730b0a,g0485b4d2cb+be65c9c1d7,g0fba68d861+f95c35e0c3,g1ec0fe41b4+3ea9d11450,g1fd858c14a+41d169aaf2,g2440f9efcc+8c5ae1fdc5,g35bb328faa+8c5ae1fdc5,g4d2262a081+30937b6477,g53246c7159+8c5ae1fdc5,g55585698de+c657de43f9,g56a49b3a55+7eddd92ad8,g60b5630c4e+c657de43f9,g67b6fd64d1+97cc007aa2,g78460c75b0+7e33a9eb6d,g786e29fd12+668abc6043,g7ac00fbb6c+9304e3655a,g8352419a5c+8c5ae1fdc5,g8852436030+3f3bba821f,g89139ef638+97cc007aa2,g94187f82dc+c657de43f9,g989de1cb63+97cc007aa2,g9d31334357+c657de43f9,g9f33ca652e+06d39d8afb,ga815be3f0b+8e7c4d07ad,gabe3b4be73+8856018cbb,gabf8522325+977d9fabaf,gb1101e3267+12c96a40b1,gb89ab40317+97cc007aa2,gc91f06edcd+2ffb87f22b,gcf25f946ba+3f3bba821f,gd6cbbdb0b4+1cc2750d2e,gde0f65d7ad+bbe98f05bf,ge278dab8ac+6b863515ed,ge410e46f29+97cc007aa2,gf35d7ec915+97dd712d81,gf5e32f922b+8c5ae1fdc5,gf67bdafdda+97cc007aa2,gf6800124b1+bb7d8e732a,w.2025.19
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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.
 
 Scaling2d (Scaling2d const &) noexcept=default
 Default copy constructor.
 
 Scaling2d (Scaling2d &&) noexcept=default
 Default move constructor.
 
Scaling2doperator= (Scaling2d const &) noexcept=default
 Default copy assignment.
 
Scaling2doperator= (Scaling2d &&) noexcept=default
 Default move assignment.
 
Scaling1d const & getX () const noexcept
 Return the 1-d scaling in the X direction.
 
Scaling1d const & getY () const noexcept
 Return the 1-d scaling in the Y direction.
 
geom::Point2D applyForward (geom::Point2D const &p) const noexcept
 Apply the transform in the forward direction.
 
geom::Point2D applyInverse (geom::Point2D const &p) const noexcept
 Apply the inverse of the forward transform.
 
Scaling2d inverted () const noexcept
 Invert the transform.
 
Scaling2d then (Scaling2d const &second) const noexcept
 Compose two transforms.
 

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) {}

◆ 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 }
geom::Point2D applyForward(geom::Point2D const &p) const noexcept
Apply the transform in the forward direction.
Definition Scaling2d.h:73
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
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: