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;
}
}