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); }
66 void setRadius(Radius
const& radius) { _radius = radius; }
99 explicit Separable(
double e1 = 0.0,
double e2 = 0.0,
double radius =
Radius(),
bool normalize =
true);
105 explicit Separable(Ellipticity
const& ellipticity,
double radius =
Radius(),
bool normalize =
true);
133 void _assignToAxes(
double&
a,
double&
b,
double& theta)
const override;
145 Ellipticity _ellipticity;
153 #endif // !LSST_AFW_GEOM_ELLIPSES_Separable_h_INCLUDED void _assignFromAxes(double a, double b, double theta) override
std::shared_ptr< Separable > clone() const
Deep copy the ellipse core.
void setRadius(Radius const &radius)
Separable(Separable &&other)
void _assignToQuadrupole(double &ixx, double &iyy, double &ixy) const override
~Separable() override=default
Jacobian _dAssignFromQuadrupole(double ixx, double iyy, double ixy) override
Jacobian _dAssignFromAxes(double a, double b, double theta) override
Jacobian _dAssignToAxes(double &a, double &b, double &theta) const override
void writeParameters(double *iter) const override
Jacobian _dAssignToQuadrupole(double &ixx, double &iyy, double &ixy) const override
std::string getName() const override
Return a string that identifies this parametrization.
void normalize() override
Put the parameters into a "standard form", and throw InvalidParameterError if they cannot be normaliz...
BaseCore & operator=(BaseCore const &other)
Set the parameters of this ellipse core from another.
A base class for image defects.
Separable(double e1=0.0, double e2=0.0, double radius=Radius(), bool normalize=true)
Construct from parameter values.
Eigen::Vector3d ParameterVector
Parameter vector type.
std::shared_ptr< BaseCore > _clone() const override
T static_pointer_cast(T... args)
double const getE1() const
Separable(BaseCore::Convolution const &convolution)
Converting copy constructor.
Separable(BaseCore::Transformer const &transformer)
Converting copy constructor.
An ellipse core with a complex ellipticity and radius parameterization.
Eigen::Matrix3d Jacobian
Parameter Jacobian matrix type.
void readParameters(double const *iter) override
A base class for parametrizations of the "core" of an ellipse - the ellipticity and size...
Separable(Separable const &other)
Copy constructor.
Separable(BaseCore const &other)
Converting copy constructor.
void _assignFromQuadrupole(double ixx, double iyy, double ixy) override
Separable & operator=(BaseCore const &other)
Converting assignment.
Separable & operator=(Separable const &other)
Standard assignment.
ItemVariant const * other
void apply(BaseCore &result) const
double const getE2() const
Ellipticity & getEllipticity()
Radius const & getRadius() const
void _assignToAxes(double &a, double &b, double &theta) const override
A temporary-only expression object for ellipse core convolution.
void setRadius(double radius)
Ellipticity const & getEllipticity() const