25 #ifndef LSST_AFW_GEOM_ELLIPSES_radii_h_INCLUDED
26 #define LSST_AFW_GEOM_ELLIPSES_radii_h_INCLUDED
39 namespace lsst {
namespace afw {
namespace geom {
43 template <
typename Ellipticity_,
typename Radius_>
class Separable;
62 throw LSST_EXCEPT(lsst::pex::exceptions::InvalidParameterError,
63 "Ellipse radius cannot be negative.");
66 static std::string
getName() {
return "DeterminantRadius"; }
72 operator double const & ()
const {
return _value; }
74 operator double & () {
return _value; }
82 template <
typename T1,
typename T2>
friend class Separable;
90 double ixx,
double iyy,
double ixy,
95 double ixx,
double iyy,
double ixy,
101 double & ixx,
double & iyy,
double & ixy
106 double & ixx,
double & iyy,
double & ixy
122 throw LSST_EXCEPT(lsst::pex::exceptions::InvalidParameterError,
123 "Ellipse radius cannot be negative.");
126 static std::string
getName() {
return "TraceRadius"; }
132 operator double const & ()
const {
return _value; }
142 template <
typename T1,
typename T2>
friend class Separable;
150 double ixx,
double iyy,
double ixy,
155 double ixx,
double iyy,
double ixy,
161 double & ixx,
double & iyy,
double & ixy
166 double & ixx,
double & iyy,
double & ixy
180 static std::string
getName() {
return "LogDeterminantRadius"; }
186 operator double const & ()
const {
return _value; }
196 template <
typename T1,
typename T2>
friend class Separable;
204 double ixx,
double iyy,
double ixy,
209 double ixx,
double iyy,
double ixy,
215 double & ixx,
double & iyy,
double & ixy
220 double & ixx,
double & iyy,
double & ixy
234 static std::string
getName() {
return "LogTraceRadius"; }
240 operator double const & ()
const {
return _value; }
250 template <
typename T1,
typename T2>
friend class Separable;
258 double ixx,
double iyy,
double ixy,
263 double ixx,
double iyy,
double ixy,
269 double & ixx,
double & iyy,
double & ixy
274 double & ixx,
double & iyy,
double & ixy
307 #endif // !LSST_AFW_GEOM_ELLIPSES_radii_h_INCLUDED
The natural logarithm of the TraceRadius.
BaseCore::Jacobian dAssignFromQuadrupole(double ixx, double iyy, double ixy, Distortion &distortion)
static std::string getName()
void assignToQuadrupole(Distortion const &distortion, double &ixx, double &iyy, double &ixy) const
LogTraceRadius(double value=0.0)
static std::string getName()
DeterminantRadius(double value=1.0)
LogDeterminantRadius(double value=0.0)
BaseCore::Jacobian dAssignToQuadrupole(Distortion const &distortion, double &ixx, double &iyy, double &ixy) const
BaseCore::Jacobian dAssignFromQuadrupole(double ixx, double iyy, double ixy, Distortion &distortion)
BaseCore::Jacobian dAssignToQuadrupole(Distortion const &distortion, double &ixx, double &iyy, double &ixy) const
TraceRadius & operator=(double value)
void assignToQuadrupole(Distortion const &distortion, double &ixx, double &iyy, double &ixy) const
LogTraceRadius & operator=(double value)
The natural logarithm of the DeterminantRadius.
void assignFromQuadrupole(double ixx, double iyy, double ixy, Distortion &distortion)
void assignFromQuadrupole(double ixx, double iyy, double ixy, Distortion &distortion)
Forward declarations, typedefs, and definitions for BaseCore.
void assignFromQuadrupole(double ixx, double iyy, double ixy, Distortion &distortion)
static std::string getName()
The radius defined as the 4th root of the determinant of the quadrupole matrix.
DeterminantRadius & operator=(double value)
void assignToQuadrupole(Distortion const &distortion, double &ixx, double &iyy, double &ixy) const
void assignToQuadrupole(Distortion const &distortion, double &ixx, double &iyy, double &ixy) const
BaseCore::Jacobian dAssignFromQuadrupole(double ixx, double iyy, double ixy, Distortion &distortion)
TraceRadius(double value=1.0)
BaseCore::Jacobian dAssignToQuadrupole(Distortion const &distortion, double &ixx, double &iyy, double &ixy) const
#define LSST_EXCEPT(type,...)
An ellipse core with a complex ellipticity and radius parameterization.
Eigen::Matrix3d Jacobian
Parameter Jacobian matrix type.
static std::string getName()
BaseCore::Jacobian dAssignToQuadrupole(Distortion const &distortion, double &ixx, double &iyy, double &ixy) const
void assignFromQuadrupole(double ixx, double iyy, double ixy, Distortion &distortion)
LogDeterminantRadius & operator=(double value)
A complex ellipticity with magnitude .
BaseCore::Jacobian dAssignFromQuadrupole(double ixx, double iyy, double ixy, Distortion &distortion)