LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lsst::afw::geom::ellipses::detail::EllipticityBase Class Reference

EllipticityBase is a base class for complex ellipticity types. More...

#include <EllipticityBase.h>

Inheritance diagram for lsst::afw::geom::ellipses::detail::EllipticityBase:
lsst::afw::geom::ellipses::ConformalShear lsst::afw::geom::ellipses::Distortion lsst::afw::geom::ellipses::ReducedShear

Public Types

enum  ParameterEnum { E1 =0, E2 =1 }
 
typedef Eigen::Matrix2d Jacobian
 

Public Member Functions

std::complex< double > & getComplex ()
 
std::complex< double > const & getComplex () const
 
void setComplex (std::complex< double > const &v)
 
double getE1 () const
 
void setE1 (double e1)
 
double getE2 () const
 
void setE2 (double e2)
 
double getE () const
 
void setE (double e)
 
double getTheta () const
 

Protected Member Functions

 EllipticityBase (std::complex< double > const &complex)
 
 EllipticityBase (double e1=0.0, double e2=0.0)
 

Protected Attributes

std::complex< double > _complex
 

Detailed Description

EllipticityBase is a base class for complex ellipticity types.

EllipticityBase does not have a virtual destructor, and only exists for code reuse purposes. The ellipticity classes are not polymorphic simply to keep them small.

Definition at line 42 of file EllipticityBase.h.

Member Typedef Documentation

Definition at line 45 of file EllipticityBase.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

lsst::afw::geom::ellipses::detail::EllipticityBase::EllipticityBase ( std::complex< double > const &  complex)
inlineexplicitprotected

Definition at line 80 of file EllipticityBase.h.

80 : _complex(complex) {}
lsst::afw::geom::ellipses::detail::EllipticityBase::EllipticityBase ( double  e1 = 0.0,
double  e2 = 0.0 
)
inlineexplicitprotected

Definition at line 82 of file EllipticityBase.h.

82 : _complex(e1, e2) {}

Member Function Documentation

std::complex<double>& lsst::afw::geom::ellipses::detail::EllipticityBase::getComplex ( )
inline

Definition at line 49 of file EllipticityBase.h.

49 { return _complex; }
std::complex<double> const& lsst::afw::geom::ellipses::detail::EllipticityBase::getComplex ( ) const
inline

Definition at line 51 of file EllipticityBase.h.

51 { return _complex; }
double lsst::afw::geom::ellipses::detail::EllipticityBase::getE ( ) const
inline

Definition at line 73 of file EllipticityBase.h.

73 { return std::sqrt(std::norm(_complex)); }
T norm(const T &x)
Definition: Integrate.h:191
double lsst::afw::geom::ellipses::detail::EllipticityBase::getE1 ( ) const
inline

Definition at line 55 of file EllipticityBase.h.

55 { return _complex.real(); }
double lsst::afw::geom::ellipses::detail::EllipticityBase::getE2 ( ) const
inline

Definition at line 64 of file EllipticityBase.h.

64 { return _complex.imag(); }
double lsst::afw::geom::ellipses::detail::EllipticityBase::getTheta ( ) const
inline

Definition at line 76 of file EllipticityBase.h.

76 { return 0.5 * std::arg(_complex); }
void lsst::afw::geom::ellipses::detail::EllipticityBase::setComplex ( std::complex< double > const &  v)
inline

Definition at line 53 of file EllipticityBase.h.

53 { _complex = v; }
void lsst::afw::geom::ellipses::detail::EllipticityBase::setE ( double  e)
inline

Definition at line 74 of file EllipticityBase.h.

void lsst::afw::geom::ellipses::detail::EllipticityBase::setE1 ( double  e1)
inline

Definition at line 56 of file EllipticityBase.h.

56  {
57 #if __cplusplus < 201103L
58  _complex = std::complex<double>(e1, _complex.imag());
59 #else
60  _complex.real(e1);
61 #endif
62  }
void lsst::afw::geom::ellipses::detail::EllipticityBase::setE2 ( double  e2)
inline

Definition at line 65 of file EllipticityBase.h.

65  {
66 #if __cplusplus < 201103L
67  _complex = std::complex<double>(_complex.real(), e2);
68 #else
69  _complex.imag(e2);
70 #endif
71  }

Member Data Documentation

std::complex<double> lsst::afw::geom::ellipses::detail::EllipticityBase::_complex
protected

Definition at line 84 of file EllipticityBase.h.


The documentation for this class was generated from the following file: