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 | Private Attributes | Static Private Attributes | List of all members
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ > Class Template Reference

An ellipse core with a complex ellipticity and radius parameterization. More...

#include <radii.h>

Inheritance diagram for lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >:
lsst::afw::geom::ellipses::BaseCore

Public Types

enum  ParameterEnum { E1 =0, E2 =1, RADIUS =2 }
 
typedef boost::shared_ptr
< Separable
Ptr
 
typedef boost::shared_ptr
< Separable const > 
ConstPtr
 
typedef Ellipticity_ Ellipticity
 
typedef Radius_ Radius
 
- Public Types inherited from lsst::afw::geom::ellipses::BaseCore
typedef boost::shared_ptr
< BaseCore
Ptr
 
typedef boost::shared_ptr
< BaseCore const > 
ConstPtr
 
typedef Eigen::Vector3d ParameterVector
 Parameter vector type. More...
 
typedef Eigen::Matrix3d Jacobian
 Parameter Jacobian matrix type. More...
 

Public Member Functions

double const getE1 () const
 
void setE1 (double e1)
 
double const getE2 () const
 
void setE2 (double e2)
 
Radius const & getRadius () const
 
RadiusgetRadius ()
 
void setRadius (double radius)
 
void setRadius (Radius const &radius)
 
Ellipticity const & getEllipticity () const
 
EllipticitygetEllipticity ()
 
Ptr clone () const
 Deep copy the ellipse core. More...
 
virtual std::string getName () const
 Return a string that identifies this parametrization. More...
 
virtual void normalize ()
 Put the parameters into a "standard form", and throw InvalidEllipseParameters if they cannot be normalized. More...
 
virtual void readParameters (double const *iter)
 
virtual void writeParameters (double *iter) const
 
Separableoperator= (Separable const &other)
 Standard assignment. More...
 
Separableoperator= (BaseCore const &other)
 Converting assignment. More...
 
 Separable (double e1=0.0, double e2=0.0, double radius=Radius(), bool normalize=true)
 Construct from parameter values. More...
 
 Separable (std::complex< double > const &complex, double radius=Radius(), bool normalize=true)
 Construct from parameter values. More...
 
 Separable (Ellipticity const &ellipticity, double radius=Radius(), bool normalize=true)
 Construct from parameter values. More...
 
 Separable (BaseCore::ParameterVector const &vector, bool normalize=false)
 Construct from a parameter vector. More...
 
 Separable (Separable const &other)
 Copy constructor. More...
 
 Separable (BaseCore const &other)
 Converting copy constructor. More...
 
 Separable (BaseCore::Transformer const &transformer)
 Converting copy constructor. More...
 
 Separable (BaseCore::Convolution const &convolution)
 Converting copy constructor. More...
 
- Public Member Functions inherited from lsst::afw::geom::ellipses::BaseCore
Ptr clone () const
 Deep-copy the Core. More...
 
void grow (double buffer)
 Increase the major and minor radii of the ellipse core by the given buffer. More...
 
void scale (double factor)
 Scale the size of the ellipse core by the given factor. More...
 
double getArea () const
 Return the area of the ellipse core. More...
 
double getDeterminantRadius () const
 Return the radius defined as the 4th root of the determinant of the quadrupole matrix. More...
 
double getTraceRadius () const
 Return the radius defined as the square root of one half the trace of the quadrupole matrix. More...
 
GridTransform const getGridTransform () const
 Return the transform that maps the ellipse to the unit circle. More...
 
Extent2D computeDimensions () const
 Return the size of the bounding box for the ellipse core. More...
 
ParameterVector const getParameterVector () const
 Return the core parameters as a vector. More...
 
void setParameterVector (ParameterVector const &vector)
 Set the core parameters from a vector. More...
 
bool operator== (BaseCore const &other) const
 Compare two ellipse cores for equality. More...
 
bool operator!= (BaseCore const &other) const
 Compare two ellipse cores for inequality. More...
 
BaseCoreoperator= (BaseCore const &other)
 Set the parameters of this ellipse core from another. More...
 
Jacobian dAssign (BaseCore const &other)
 Assign other to this and return the derivative of the conversion, d(this)/d(other). More...
 
template<typename Output >
Converter< Output > as () const
 Convert this to the core type specified as a template parameter. More...
 
virtual ~BaseCore ()
 
Transformer transform (LinearTransform const &transform)
 
Transformer const transform (LinearTransform const &transform) const
 
Convolution convolve (BaseCore const &other)
 
Convolution const convolve (BaseCore const &other) const
 

Protected Member Functions

virtual BaseCore::Ptr _clone () const
 
virtual void _assignToQuadrupole (double &ixx, double &iyy, double &ixy) const
 
virtual void _assignFromQuadrupole (double ixx, double iyy, double ixy)
 
virtual void _assignToAxes (double &a, double &b, double &theta) const
 
virtual void _assignFromAxes (double a, double b, double theta)
 
virtual Jacobian _dAssignToQuadrupole (double &ixx, double &iyy, double &ixy) const
 
virtual Jacobian _dAssignFromQuadrupole (double ixx, double iyy, double ixy)
 
virtual Jacobian _dAssignToAxes (double &a, double &b, double &theta) const
 
virtual Jacobian _dAssignFromAxes (double a, double b, double theta)
 

Private Attributes

Ellipticity _ellipticity
 
Radius _radius
 

Static Private Attributes

static BaseCore::Registrar
< Separable
registrar
 

Additional Inherited Members

- Static Public Member Functions inherited from lsst::afw::geom::ellipses::BaseCore
static Ptr make (std::string const &name)
 
static Ptr make (std::string const &name, ParameterVector const &parameters)
 
static Ptr make (std::string const &name, double v1, double v2, double v3)
 
static Ptr make (std::string const &name, BaseCore const &other)
 
static Ptr make (std::string const &name, Transformer const &other)
 
static Ptr make (std::string const &name, Convolution const &other)
 
- Static Protected Member Functions inherited from lsst::afw::geom::ellipses::BaseCore
static void registerSubclass (Ptr const &example)
 
static void _assignQuadrupoleToAxes (double ixx, double iyy, double ixy, double &a, double &b, double &theta)
 
static Jacobian _dAssignQuadrupoleToAxes (double ixx, double iyy, double ixy, double &a, double &b, double &theta)
 
static void _assignAxesToQuadrupole (double a, double b, double theta, double &ixx, double &iyy, double &ixy)
 
static Jacobian _dAssignAxesToQuadrupole (double a, double b, double theta, double &ixx, double &iyy, double &ixy)
 

Detailed Description

template<typename Ellipticity_, typename Radius_>
class lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >

An ellipse core with a complex ellipticity and radius parameterization.

Definition at line 43 of file radii.h.

Member Typedef Documentation

template<typename Ellipticity_ , typename Radius_ >
typedef boost::shared_ptr<Separable const> lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::ConstPtr

Definition at line 52 of file Separable.h.

template<typename Ellipticity_ , typename Radius_ >
typedef Ellipticity_ lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Ellipticity

Definition at line 56 of file Separable.h.

template<typename Ellipticity_ , typename Radius_ >
typedef boost::shared_ptr<Separable> lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Ptr

Definition at line 51 of file Separable.h.

template<typename Ellipticity_ , typename Radius_ >
typedef Radius_ lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Radius

Definition at line 57 of file Separable.h.

Member Enumeration Documentation

template<typename Ellipticity_ , typename Radius_ >
enum lsst::afw::geom::ellipses::Separable::ParameterEnum

Constructor & Destructor Documentation

template<typename Ellipticity_ , typename Radius_ >
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Separable ( double  e1 = 0.0,
double  e2 = 0.0,
double  radius = Radius(),
bool  normalize = true 
)
explicit

Construct from parameter values.

template<typename Ellipticity_ , typename Radius_ >
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Separable ( std::complex< double > const &  complex,
double  radius = Radius(),
bool  normalize = true 
)
explicit

Construct from parameter values.

template<typename Ellipticity_ , typename Radius_ >
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Separable ( Ellipticity const &  ellipticity,
double  radius = Radius(),
bool  normalize = true 
)
explicit

Construct from parameter values.

template<typename Ellipticity_ , typename Radius_ >
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Separable ( BaseCore::ParameterVector const &  vector,
bool  normalize = false 
)
explicit

Construct from a parameter vector.

template<typename Ellipticity_ , typename Radius_ >
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Separable ( Separable< Ellipticity_, Radius_ > const &  other)
inline

Copy constructor.

Definition at line 109 of file Separable.h.

109 : _ellipticity(other._ellipticity), _radius(other._radius) {}
template<typename Ellipticity_ , typename Radius_ >
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Separable ( BaseCore const &  other)
inline

Converting copy constructor.

Definition at line 112 of file Separable.h.

112 { *this = other; }
template<typename Ellipticity_ , typename Radius_ >
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Separable ( BaseCore::Transformer const &  transformer)
inline

Converting copy constructor.

Definition at line 116 of file Separable.h.

116  {
117  transformer.apply(*this);
118  }
template<typename Ellipticity_ , typename Radius_ >
lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::Separable ( BaseCore::Convolution const &  convolution)
inline

Converting copy constructor.

Definition at line 121 of file Separable.h.

121  {
122  convolution.apply(*this);
123  }

Member Function Documentation

template<typename Ellipticity_ , typename Radius_ >
virtual void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_assignFromAxes ( double  a,
double  b,
double  theta 
)
protectedvirtual
template<typename Ellipticity_ , typename Radius_ >
virtual void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_assignFromQuadrupole ( double  ixx,
double  iyy,
double  ixy 
)
protectedvirtual
template<typename Ellipticity_ , typename Radius_ >
virtual void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_assignToAxes ( double &  a,
double &  b,
double &  theta 
) const
protectedvirtual
template<typename Ellipticity_ , typename Radius_ >
virtual void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_assignToQuadrupole ( double &  ixx,
double &  iyy,
double &  ixy 
) const
protectedvirtual
template<typename Ellipticity_ , typename Radius_ >
virtual BaseCore::Ptr lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_clone ( ) const
inlineprotectedvirtual

Implements lsst::afw::geom::ellipses::BaseCore.

Definition at line 127 of file Separable.h.

127 { return boost::make_shared<Separable>(*this); }
template<typename Ellipticity_ , typename Radius_ >
virtual Jacobian lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_dAssignFromAxes ( double  a,
double  b,
double  theta 
)
protectedvirtual
template<typename Ellipticity_ , typename Radius_ >
virtual Jacobian lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_dAssignFromQuadrupole ( double  ixx,
double  iyy,
double  ixy 
)
protectedvirtual
template<typename Ellipticity_ , typename Radius_ >
virtual Jacobian lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_dAssignToAxes ( double &  a,
double &  b,
double &  theta 
) const
protectedvirtual
template<typename Ellipticity_ , typename Radius_ >
virtual Jacobian lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_dAssignToQuadrupole ( double &  ixx,
double &  iyy,
double &  ixy 
) const
protectedvirtual
template<typename Ellipticity_ , typename Radius_ >
Ptr lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::clone ( ) const
inline

Deep copy the ellipse core.

Definition at line 74 of file Separable.h.

74 { return boost::static_pointer_cast<Separable>(_clone()); }
Separable(double e1=0.0, double e2=0.0, double radius=Radius(), bool normalize=true)
Construct from parameter values.
virtual BaseCore::Ptr _clone() const
Definition: Separable.h:127
template<typename Ellipticity_ , typename Radius_ >
double const lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::getE1 ( ) const
inline

Definition at line 59 of file Separable.h.

59 { return _ellipticity.getE1(); }
template<typename Ellipticity_ , typename Radius_ >
double const lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::getE2 ( ) const
inline

Definition at line 62 of file Separable.h.

62 { return _ellipticity.getE2(); }
template<typename Ellipticity_ , typename Radius_ >
Ellipticity const& lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::getEllipticity ( ) const
inline

Definition at line 70 of file Separable.h.

70 { return _ellipticity; }
template<typename Ellipticity_ , typename Radius_ >
Ellipticity& lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::getEllipticity ( )
inline

Definition at line 71 of file Separable.h.

71 { return _ellipticity; }
template<typename Ellipticity_ , typename Radius_ >
virtual std::string lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::getName ( ) const
virtual

Return a string that identifies this parametrization.

Implements lsst::afw::geom::ellipses::BaseCore.

template<typename Ellipticity_ , typename Radius_ >
Radius const& lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::getRadius ( ) const
inline

Definition at line 65 of file Separable.h.

65 { return _radius; }
template<typename Ellipticity_ , typename Radius_ >
Radius& lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::getRadius ( )
inline

Definition at line 66 of file Separable.h.

66 { return _radius; }
template<typename Ellipticity_ , typename Radius_ >
virtual void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::normalize ( )
virtual

Put the parameters into a "standard form", and throw InvalidEllipseParameters if they cannot be normalized.

Implements lsst::afw::geom::ellipses::BaseCore.

template<typename Ellipticity_ , typename Radius_ >
Separable& lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::operator= ( Separable< Ellipticity_, Radius_ > const &  other)

Standard assignment.

template<typename Ellipticity_ , typename Radius_ >
Separable& lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::operator= ( BaseCore const &  other)
inline

Converting assignment.

Definition at line 93 of file Separable.h.

93 { BaseCore::operator=(other); return *this; }
BaseCore & operator=(BaseCore const &other)
Set the parameters of this ellipse core from another.
template<typename Ellipticity_ , typename Radius_ >
virtual void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::readParameters ( double const *  iter)
virtual
template<typename Ellipticity_ , typename Radius_ >
void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::setE1 ( double  e1)
inline

Definition at line 60 of file Separable.h.

60 { _ellipticity.setE1(e1); }
template<typename Ellipticity_ , typename Radius_ >
void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::setE2 ( double  e2)
inline

Definition at line 63 of file Separable.h.

63 { _ellipticity.setE2(e2); }
template<typename Ellipticity_ , typename Radius_ >
void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::setRadius ( double  radius)
inline

Definition at line 67 of file Separable.h.

67 { _radius = radius; }
template<typename Ellipticity_ , typename Radius_ >
void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::setRadius ( Radius const &  radius)
inline

Definition at line 68 of file Separable.h.

68 { _radius = radius; }
template<typename Ellipticity_ , typename Radius_ >
virtual void lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::writeParameters ( double *  iter) const
virtual

Member Data Documentation

template<typename Ellipticity_ , typename Radius_ >
Ellipticity lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_ellipticity
private

Definition at line 145 of file Separable.h.

template<typename Ellipticity_ , typename Radius_ >
Radius lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::_radius
private

Definition at line 146 of file Separable.h.

template<typename Ellipticity_ , typename Radius_ >
BaseCore::Registrar<Separable> lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >::registrar
staticprivate

Definition at line 143 of file Separable.h.


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