25 #ifndef LSST_AFW_GEOM_ELLIPSES_Separable_h_INCLUDED
26 #define LSST_AFW_GEOM_ELLIPSES_Separable_h_INCLUDED
49 template <
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
Radius const & getRadius() 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.
Separable & operator=(Separable const &other)
Standard assignment.
Separable(Separable &&other)
Separable(BaseCore const &other)
Converting copy constructor.
Ellipticity & getEllipticity()
Separable(Separable const &other)
Copy constructor.
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.
std::shared_ptr< BaseCore > _clone() const override
Return the size of the bounding box for the ellipse core.
~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
Separable & operator=(BaseCore const &other)
Converting assignment.
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.
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.
Ellipticity const & getEllipticity() const
std::shared_ptr< Separable > clone() const
Deep copy the ellipse core.
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.
void normalize() override
Put the parameters into a "standard form", and throw InvalidParameterError if they cannot be normaliz...
A base class for image defects.