25#ifndef LSST_AFW_GEOM_ELLIPSES_Separable_h_INCLUDED
26#define LSST_AFW_GEOM_ELLIPSES_Separable_h_INCLUDED
49template <
typename Ellipticity_,
typename Radius_>
57 double const getE1()
const {
return _ellipticity.getE1(); }
58 void setE1(
double e1) { _ellipticity.setE1(e1); }
60 double const getE2()
const {
return _ellipticity.getE2(); }
61 void setE2(
double e2) { _ellipticity.setE2(e2); }
133 void _assignToAxes(
double&
a,
double&
b,
double& theta)
const override;
A temporary-only expression object for ellipse core convolution.
void apply(BaseCore &result) const
A base class for parametrizations of the "core" of an ellipse - the ellipticity and size.
Eigen::Vector3d ParameterVector
Parameter vector type.
BaseCore & operator=(BaseCore const &other)
Set the parameters of this ellipse core from another.
Eigen::Matrix3d Jacobian
Parameter Jacobian matrix type.
An ellipse core with a complex ellipticity and radius parameterization.
double const getE1() const
Jacobian _dAssignToQuadrupole(double &ixx, double &iyy, double &ixy) const override
Return the size of the bounding box for the ellipse core.
void readParameters(double const *iter) override
Return the size of the bounding box for the ellipse core.
Jacobian _dAssignToAxes(double &a, double &b, double &theta) const override
Return the size of the bounding box for the ellipse core.
void _assignToAxes(double &a, double &b, double &theta) const override
Return the size of the bounding box for the ellipse core.
Radius const & getRadius() const
Separable & operator=(Separable const &other)
Standard assignment.
Separable(Separable &&other)
Separable(BaseCore const &other)
Converting copy constructor.
Separable(Separable const &other)
Copy constructor.
Ellipticity const & getEllipticity() const
Separable(BaseCore::Convolution const &convolution)
Converting copy constructor.
void _assignFromAxes(double a, double b, double theta) override
Return the size of the bounding box for the ellipse core.
Ellipticity & getEllipticity()
~Separable() override=default
double const getE2() const
Jacobian _dAssignFromAxes(double a, double b, double theta) override
Return the size of the bounding box for the ellipse core.
void setRadius(double radius)
void _assignFromQuadrupole(double ixx, double iyy, double ixy) override
Return the size of the bounding box for the ellipse core.
std::shared_ptr< Separable > clone() const
Deep copy the ellipse core.
Separable & operator=(BaseCore const &other)
Converting assignment.
Separable(BaseCore::Transformer const &transformer)
Converting copy constructor.
void _assignToQuadrupole(double &ixx, double &iyy, double &ixy) const override
Return the size of the bounding box for the ellipse core.
void setRadius(Radius const &radius)
std::string getName() const override
Return a string that identifies this parametrization.
void writeParameters(double *iter) const override
Return the size of the bounding box for the ellipse core.
Jacobian _dAssignFromQuadrupole(double ixx, double iyy, double ixy) override
Return the size of the bounding box for the ellipse core.
std::shared_ptr< BaseCore > _clone() const override
Return the size of the bounding box for the ellipse core.
void normalize() override
Put the parameters into a "standard form", and throw InvalidParameterError if they cannot be normaliz...