Loading [MathJax]/extensions/tex2jax.js
LSST Applications g04a91732dc+2945638123,g07dc498a13+7e3c5f68a2,g12483e3c20+e0fa9c8503,g1409bbee79+7e3c5f68a2,g1a7e361dbc+7e3c5f68a2,g1fd858c14a+9f35e23ec3,g35bb328faa+fcb1d3bbc8,g3ad4f90e5c+e0fa9c8503,g3bd4b5ce2c+36fb6ead7f,g4e0f332c67+5d362be553,g53246c7159+fcb1d3bbc8,g5477a8d5ce+db04660fe6,g60b5630c4e+e0fa9c8503,g75b6c65c88+55830bd904,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g7b71ed6315+fcb1d3bbc8,g8852436030+4639f750a5,g89139ef638+7e3c5f68a2,g8f1d76f86f+11a01f47f4,g9125e01d80+fcb1d3bbc8,g919ac25b3e+28db628500,g95236ca021+f7a31438ed,g989de1cb63+7e3c5f68a2,g9f33ca652e+d1e6496fea,ga365f290ef+26a6f9aaf0,gaaedd4e678+7e3c5f68a2,gabe3b4be73+1e0a283bba,gb1101e3267+c09b629e83,gb4a253aaf5+0122250889,gb58c049af0+f03b321e39,gbaa7868d32+e0fa9c8503,gc99c83e5f0+76d20ab76d,gcf25f946ba+4639f750a5,gd6cbbdb0b4+c8606af20c,gde0f65d7ad+021d0de224,ge278dab8ac+932305ba37,gfba249425e+fcb1d3bbc8,w.2025.08
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
lsst::geom::polynomials::Scaling1d Class Reference

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

#include <Scaling1d.h>

Public Member Functions

 Scaling1d (double scale, double shift) noexcept
 Construct from the given multiplicative scale and additive shift.
 
 Scaling1d (Scaling1d const &) noexcept=default
 Default copy constructor.
 
 Scaling1d (Scaling1d &&) noexcept=default
 Default move constructor.
 
Scaling1doperator= (Scaling1d const &) noexcept=default
 Default copy assignment.
 
Scaling1doperator= (Scaling1d &&) noexcept=default
 Default move assignment.
 
double applyForward (double x) const noexcept
 Apply the transform in the forward direction.
 
double applyInverse (double y) const noexcept
 Apply the inverse of the forward transform;.
 
double getScale () const noexcept
 Return the multiplicative scaling.
 
double getShift () const noexcept
 Return the additive shift.
 
Scaling1d inverted () const noexcept
 Invert the transform.
 
Scaling1d then (Scaling1d const &second) const noexcept
 Compose two transforms.
 

Detailed Description

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

The transform is represented as an additive shift followed by a multiplicative scaling.

Note
This class (and especially its 2-d counterpart, Scaling2d) 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.
Exception Safety
All operations on Scaling1d are noexcept.
See also
makeUnitRangeScaling1d

Definition at line 46 of file Scaling1d.h.

Constructor & Destructor Documentation

◆ Scaling1d() [1/3]

lsst::geom::polynomials::Scaling1d::Scaling1d ( double scale,
double shift )
inlinenoexcept

Construct from the given multiplicative scale and additive shift.

Definition at line 50 of file Scaling1d.h.

50 :
51 _scale(scale),
52 _shift(shift)
53 {}

◆ Scaling1d() [2/3]

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

Default copy constructor.

◆ Scaling1d() [3/3]

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

Default move constructor.

Member Function Documentation

◆ applyForward()

double lsst::geom::polynomials::Scaling1d::applyForward ( double x) const
inlinenoexcept

Apply the transform in the forward direction.

Result is defined to be (x + getShift()) * getScale().

Definition at line 72 of file Scaling1d.h.

72 {
73 return (x + getShift())*getScale();
74 }
double getShift() const noexcept
Return the additive shift.
Definition Scaling1d.h:87
double getScale() const noexcept
Return the multiplicative scaling.
Definition Scaling1d.h:84

◆ applyInverse()

double lsst::geom::polynomials::Scaling1d::applyInverse ( double y) const
inlinenoexcept

Apply the inverse of the forward transform;.

Definition at line 79 of file Scaling1d.h.

79 {
80 return y/_scale - _shift;
81 }

◆ getScale()

double lsst::geom::polynomials::Scaling1d::getScale ( ) const
inlinenoexcept

Return the multiplicative scaling.

Definition at line 84 of file Scaling1d.h.

84{ return _scale; }

◆ getShift()

double lsst::geom::polynomials::Scaling1d::getShift ( ) const
inlinenoexcept

Return the additive shift.

Definition at line 87 of file Scaling1d.h.

87{ return _shift; }

◆ inverted()

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

Invert the transform.

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

Definition at line 96 of file Scaling1d.h.

96 {
97 return Scaling1d(1.0/_scale, -_shift*_scale);
98 }
Scaling1d(double scale, double shift) noexcept
Construct from the given multiplicative scale and additive shift.
Definition Scaling1d.h:50

◆ operator=() [1/2]

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

Default move assignment.

◆ operator=() [2/2]

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

Default copy assignment.

◆ then()

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

Compose two transforms.

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

Definition at line 107 of file Scaling1d.h.

107 {
108 return Scaling1d(getScale()*second.getScale(),
109 getShift() + second.getShift()/getScale());
110 }

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