LSSTApplications  18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Public Attributes | List of all members
lsst::afw::geom::ellipses::Ellipse::Transformer Class Referencefinal

A temporary-only expression object for ellipse transformations. More...

#include <Transformer.h>

Public Types

typedef Eigen::Matrix< double, 5, 5 > DerivativeMatrix
 Matrix type for derivative with respect to input ellipse parameters. More...
 
typedef Eigen::Matrix< double, 5, 6 > TransformDerivativeMatrix
 Matrix type for derivative with respect to transform parameters. More...
 

Public Member Functions

 Transformer (Ellipse &input_, lsst::geom::AffineTransform const &transform_)
 Standard constructor. More...
 
std::shared_ptr< Ellipsecopy () const
 Return a new transformed ellipse. More...
 
void inPlace ()
 Transform the ellipse in-place. More...
 
void apply (Ellipse &other) const
 
DerivativeMatrix d () const
 Return the derivative of transform output ellipse with respect to input ellipse. More...
 
TransformDerivativeMatrix dTransform () const
 Return the derivative of transform output ellipse with respect to transform parameters. More...
 

Public Attributes

Ellipseinput
 input ellipse to be transformed More...
 
lsst::geom::AffineTransform const & transform
 transform object More...
 

Detailed Description

A temporary-only expression object for ellipse transformations.

Transformer simply provides a clean syntax for transform-related operations, including in-place and new-object transformations, derivatives of the transformations, and implicit conversion to an auto_ptr to a new transformed ellipse.

Definition at line 86 of file Transformer.h.

Member Typedef Documentation

◆ DerivativeMatrix

Matrix type for derivative with respect to input ellipse parameters.

Definition at line 89 of file Transformer.h.

◆ TransformDerivativeMatrix

Matrix type for derivative with respect to transform parameters.

Definition at line 92 of file Transformer.h.

Constructor & Destructor Documentation

◆ Transformer()

lsst::afw::geom::ellipses::Ellipse::Transformer::Transformer ( Ellipse input_,
lsst::geom::AffineTransform const &  transform_ 
)
inline

Standard constructor.

Definition at line 95 of file Transformer.h.

96  : input(input_), transform(transform_) {}
lsst::geom::AffineTransform const & transform
transform object
Definition: Transformer.h:113
Ellipse & input
input ellipse to be transformed
Definition: Transformer.h:112

Member Function Documentation

◆ apply()

void lsst::afw::geom::ellipses::Ellipse::Transformer::apply ( Ellipse other) const

◆ copy()

std::shared_ptr< Ellipse > lsst::afw::geom::ellipses::Ellipse::Transformer::copy ( ) const

Return a new transformed ellipse.

Definition at line 97 of file Transformer.cc.

97  {
98  std::shared_ptr<Ellipse> r = std::make_shared<Ellipse>(
100  return r;
101 }
lsst::geom::AffineTransform const & transform
transform object
Definition: Transformer.h:113
lsst::geom::Point2D const & getCenter() const
Return the center point.
Definition: Ellipse.h:62
Ellipse & input
input ellipse to be transformed
Definition: Transformer.h:112
BaseCore const & getCore() const
Return the ellipse core.
Definition: Ellipse.h:71
std::shared_ptr< Ellipse > copy() const
Return a new transformed ellipse.
Definition: Transformer.cc:97
Transformer transform(lsst::geom::LinearTransform const &transform)
Definition: Transformer.h:116

◆ d()

Ellipse::Transformer::DerivativeMatrix lsst::afw::geom::ellipses::Ellipse::Transformer::d ( ) const

Return the derivative of transform output ellipse with respect to input ellipse.

Definition at line 108 of file Transformer.cc.

108  {
109  DerivativeMatrix r = DerivativeMatrix::Zero();
110  r.block<2, 2>(3, 3) = transform.getLinear().getMatrix();
111  r.block<3, 3>(0, 0) = input.getCore().transform(transform.getLinear()).d();
112  return r;
113 }
Eigen::Matrix< double, 5, 5 > DerivativeMatrix
Matrix type for derivative with respect to input ellipse parameters.
Definition: Transformer.h:89
Ellipse & input
input ellipse to be transformed
Definition: Transformer.h:112
BaseCore const & getCore() const
Return the ellipse core.
Definition: Ellipse.h:71
Transformer transform(lsst::geom::LinearTransform const &transform)
Definition: Transformer.h:116
DerivativeMatrix d() const
Return the derivative of transform output ellipse with respect to input ellipse.
Definition: Transformer.cc:108

◆ dTransform()

Ellipse::Transformer::TransformDerivativeMatrix lsst::afw::geom::ellipses::Ellipse::Transformer::dTransform ( ) const

Return the derivative of transform output ellipse with respect to transform parameters.

Definition at line 115 of file Transformer.cc.

115  {
116  TransformDerivativeMatrix r = TransformDerivativeMatrix::Zero();
117  r.block<2, 6>(3, 0) = transform.dTransform(input.getCenter());
118  r.block<3, 4>(0, 0) = input.getCore().transform(transform.getLinear()).dTransform();
119  return r;
120 }
lsst::geom::Point2D const & getCenter() const
Return the center point.
Definition: Ellipse.h:62
Ellipse & input
input ellipse to be transformed
Definition: Transformer.h:112
BaseCore const & getCore() const
Return the ellipse core.
Definition: Ellipse.h:71
TransformDerivativeMatrix dTransform() const
Return the derivative of transform output ellipse with respect to transform parameters.
Definition: Transformer.cc:115
Eigen::Matrix< double, 5, 6 > TransformDerivativeMatrix
Matrix type for derivative with respect to transform parameters.
Definition: Transformer.h:92
Transformer transform(lsst::geom::LinearTransform const &transform)
Definition: Transformer.h:116

◆ inPlace()

void lsst::afw::geom::ellipses::Ellipse::Transformer::inPlace ( )

Transform the ellipse in-place.

Definition at line 103 of file Transformer.cc.

103  {
105  input.getCore().transform(transform.getLinear()).inPlace();
106 }
lsst::geom::AffineTransform const & transform
transform object
Definition: Transformer.h:113
lsst::geom::Point2D const & getCenter() const
Return the center point.
Definition: Ellipse.h:62
Ellipse & input
input ellipse to be transformed
Definition: Transformer.h:112
BaseCore const & getCore() const
Return the ellipse core.
Definition: Ellipse.h:71
void setCenter(lsst::geom::Point2D const &center)
Set the center point.
Definition: Ellipse.h:68
void inPlace()
Transform the ellipse in-place.
Definition: Transformer.cc:103
Transformer transform(lsst::geom::LinearTransform const &transform)
Definition: Transformer.h:116

Member Data Documentation

◆ input

Ellipse& lsst::afw::geom::ellipses::Ellipse::Transformer::input

input ellipse to be transformed

Definition at line 112 of file Transformer.h.

◆ transform

lsst::geom::AffineTransform const& lsst::afw::geom::ellipses::Ellipse::Transformer::transform

transform object

Definition at line 113 of file Transformer.h.


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