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); }
A temporary-only expression object for ellipse core convolution.
void apply(BaseCore &result) const
Eigen::Vector3d ParameterVector
Parameter vector type.
BaseCore()=default
Return the size of the bounding box for the ellipse core.
BaseCore & operator=(BaseCore const &other)
Set the parameters of this ellipse core from another.
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
Separable(double e1=0.0, double e2=0.0, double radius=Radius(), bool normalize=true)
Construct from parameter values.
double const getE2() const
Jacobian _dAssignFromAxes(double a, double b, double theta) override
Return the size of the bounding box for the ellipse core.
Separable & operator=(Separable &&other)
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.
Separable(BaseCore::ParameterVector const &vector, bool normalize=false)
Construct from a parameter vector.
Separable(Ellipticity const &ellipticity, double radius=Radius(), bool normalize=true)
Construct from parameter values.
void writeParameters(double *iter) const override
Return the size of the bounding box for the ellipse core.
Separable(std::complex< double > const &complex, double radius=Radius(), bool normalize=true)
Construct from parameter values.
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...
T static_pointer_cast(T... args)