25 #ifndef LSST_AFW_GEOM_ELLIPSES_Separable_h_INCLUDED
26 #define LSST_AFW_GEOM_ELLIPSES_Separable_h_INCLUDED
40 namespace lsst {
namespace afw {
namespace geom {
namespace ellipses {
47 template <
typename Ellipticity_,
typename Radius_>
51 typedef boost::shared_ptr<Separable>
Ptr;
52 typedef boost::shared_ptr<Separable const>
ConstPtr;
77 virtual std::string
getName()
const;
99 explicit Separable(std::complex<double>
const & complex,
117 transformer.
apply(*
this);
122 convolution.
apply(*
this);
132 virtual void _assignToAxes(
double & a,
double &
b,
double & theta)
const;
151 #endif // !LSST_AFW_GEOM_ELLIPSES_Separable_h_INCLUDED
virtual Jacobian _dAssignToAxes(double &a, double &b, double &theta) const
void setRadius(Radius const &radius)
virtual void normalize()
Put the parameters into a "standard form", and throw InvalidEllipseParameters if they cannot be norma...
boost::shared_ptr< BaseCore > Ptr
Definitions for BaseEllipse::Convolution and BaseCore::Convolution.
BaseCore & operator=(BaseCore const &other)
Set the parameters of this ellipse core from another.
Radius const & getRadius() const
Ellipticity const & getEllipticity() const
virtual std::string getName() const
Return a string that identifies this parametrization.
void apply(BaseCore &result) const
virtual void _assignFromAxes(double a, double b, double theta)
virtual void _assignToAxes(double &a, double &b, double &theta) const
Ptr clone() const
Deep copy the ellipse core.
Forward declarations, typedefs, and definitions for BaseCore.
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.
virtual Jacobian _dAssignToQuadrupole(double &ixx, double &iyy, double &ixy) const
double const getE1() const
virtual Jacobian _dAssignFromQuadrupole(double ixx, double iyy, double ixy)
virtual void _assignFromQuadrupole(double ixx, double iyy, double ixy)
Separable(BaseCore::Convolution const &convolution)
Converting copy constructor.
boost::shared_ptr< Separable const > ConstPtr
An ellipse core with a complex ellipticity and radius parameterization.
Eigen::Matrix3d Jacobian
Parameter Jacobian matrix type.
virtual void readParameters(double const *iter)
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.
afw::table::Key< double > b
virtual void _assignToQuadrupole(double &ixx, double &iyy, double &ixy) const
Separable & operator=(BaseCore const &other)
Converting assignment.
double const getE2() const
Ellipticity & getEllipticity()
static BaseCore::Registrar< Separable > registrar
Separable & operator=(Separable const &other)
Standard assignment.
virtual void writeParameters(double *iter) const
boost::shared_ptr< Separable > Ptr
A temporary-only expression object for ellipse core convolution.
virtual Jacobian _dAssignFromAxes(double a, double b, double theta)
void setRadius(double radius)
virtual BaseCore::Ptr _clone() const