Brief description of class still missing. More...
#include <Ellipse.h>
Public Member Functions | |
const Point2D & | center () const |
Ellipse () | |
Ellipse (const Point2D &c, double rmaj, double rmin=0.0, double orientation=0.0) | |
Ellipse (const Ellipse &o) | |
double | majorRadius () const |
double | minorRadius () const |
const Angle & | orientation () const |
void | setCenter (const Point2D &c) |
void | setMajorRadius (double r) |
void | setMinorRadius (double r) |
void | setOrientation (double o) |
QString | toString () const |
double | xRadius () const |
double | yRadius () const |
~Ellipse () |
Brief description of class still missing.
Full description of class still missing
Default constructor
{ _majorRadius=0.0; _minorRadius=0.0; }
QGpCoreTools::Ellipse::Ellipse | ( | const Point2D & | c, |
double | rmaj, | ||
double | rmin = 0.0 , |
||
double | orientation = 0.0 |
||
) |
QGpCoreTools::Ellipse::Ellipse | ( | const Ellipse & | o | ) |
Copy constructor
{ _center=o._center; _majorRadius=o._majorRadius; _minorRadius=o._minorRadius; _orientation=o._orientation; }
QGpCoreTools::Ellipse::~Ellipse | ( | ) | [inline] |
{}
const Point2D& QGpCoreTools::Ellipse::center | ( | ) | const [inline] |
double QGpCoreTools::Ellipse::majorRadius | ( | ) | const [inline] |
Referenced by SciFigs::CircleMask::paintData(), SciFigs::CircleViewer::paintData(), SciFigs::CircleViewer::Limits::polarLimits(), and SciFigs::CircleViewer::xml_writeProperties().
{return _majorRadius;}
double QGpCoreTools::Ellipse::minorRadius | ( | ) | const [inline] |
Referenced by SciFigs::CircleMask::paintData(), SciFigs::CircleViewer::paintData(), and SciFigs::CircleViewer::xml_writeProperties().
{return _minorRadius;}
const Angle& QGpCoreTools::Ellipse::orientation | ( | ) | const [inline] |
Referenced by SciFigs::CircleViewer::paintData(), and SciFigs::CircleViewer::xml_writeProperties().
{return _orientation;}
void QGpCoreTools::Ellipse::setCenter | ( | const Point2D & | c | ) | [inline] |
Referenced by SciFigs::CircleViewer::add(), SciFigs::CircleViewer::insert(), SciFigs::CircleViewer::set(), and QGpCoreTools::Covariance::stddev2D().
{_center=c;}
void QGpCoreTools::Ellipse::setMajorRadius | ( | double | r | ) | [inline] |
Referenced by SciFigs::CircleViewer::add(), SciFigs::CircleViewer::insert(), SciFigs::CircleViewer::set(), and QGpCoreTools::Covariance::stddev2D().
{_majorRadius=fabs(r);}
void QGpCoreTools::Ellipse::setMinorRadius | ( | double | r | ) | [inline] |
Referenced by SciFigs::CircleViewer::add(), SciFigs::CircleViewer::insert(), SciFigs::CircleViewer::set(), and QGpCoreTools::Covariance::stddev2D().
{_minorRadius=fabs(r);}
void QGpCoreTools::Ellipse::setOrientation | ( | double | o | ) |
References QGpCoreTools::Angle::initDegrees(), and QGpCoreTools::Angle::setRadians().
Referenced by SciFigs::CircleViewer::add(), SciFigs::CircleViewer::insert(), SciFigs::CircleViewer::set(), and QGpCoreTools::Covariance::stddev2D().
{ _orientation.setRadians(o); _orientation.initDegrees(); }
QString QGpCoreTools::Ellipse::toString | ( | ) | const |
References QGpCoreTools::Angle::degrees(), and QGpCoreTools::Point2D::toString().
Referenced by CoordReader::terminate().
double QGpCoreTools::Ellipse::xRadius | ( | ) | const |
Returns the radii projected along X axis.
References QGpCoreTools::Angle::cos(), QGpCoreTools::cos(), QGpCoreTools::Angle::sin(), QGpCoreTools::sin(), and QGpCoreTools::Angle::tan().
Referenced by SciFigs::CircleMask::boundingRect(), and SciFigs::CircleViewer::boundingRect().
{ /* Parametric form of the ellipse: X(t)=Xc+a*cos(t)*cos(phi)-b*sin(t)*sin(phi) The xRadius is the maximum X X'(t)=-a*sin(t)*cos(phi)-b*cos(t)*sin(phi)=0 tan(t)=-b*tan(phi)/a */ if(_majorRadius>0.0) { double t=atan(-_minorRadius/_majorRadius*_orientation.tan()); return fabs(_majorRadius*cos(t)*_orientation.cos()-_minorRadius*sin(t)*_orientation.sin()); } else { return 0.0; } }
double QGpCoreTools::Ellipse::yRadius | ( | ) | const |
Returns the radii projected along Y axis.
References QGpCoreTools::Angle::cos(), QGpCoreTools::cos(), QGpCoreTools::Angle::radians(), QGpCoreTools::Angle::sin(), QGpCoreTools::sin(), and QGpCoreTools::Angle::tan().
Referenced by SciFigs::CircleMask::boundingRect(), and SciFigs::CircleViewer::boundingRect().
{ /* Parametric form of the ellipse: Y(t)=Yc+a*cos(t)*sin(phi)+b*sin(t)*cos(phi) The yRadius is the maximum Y Y'(t)=-a*sin(t)*sin(phi)+b*cos(t)*cos(phi)=0 tan(t)=b/(a*tan(phi)) */ if(_majorRadius>0.0) { if(_orientation.radians()!=0.0) { double t=atan(_minorRadius/(_majorRadius*_orientation.tan())); return fabs(_majorRadius*cos(t)*_orientation.sin()+_minorRadius*sin(t)*_orientation.cos()); } else { return _minorRadius; } } else { return 0.0; } }