All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions
QGpCoreTools::Ellipse Class Reference

Brief description of class still missing. More...

#include <Ellipse.h>

List of all members.

Public Member Functions

const Point2Dcenter () 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 Angleorientation () 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 ()

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Default constructor

  {
    _majorRadius=0.0;
    _minorRadius=0.0;
  }
QGpCoreTools::Ellipse::Ellipse ( const Point2D c,
double  rmaj,
double  rmin = 0.0,
double  orientation = 0.0 
)

Copy constructor

  {
    _center=o._center;
    _majorRadius=o._majorRadius;
    _minorRadius=o._minorRadius;
    _orientation=o._orientation;
  }
{}

Member Function Documentation

const Point2D& QGpCoreTools::Ellipse::center ( ) const [inline]
double QGpCoreTools::Ellipse::majorRadius ( ) const [inline]
double QGpCoreTools::Ellipse::minorRadius ( ) const [inline]
const Angle& QGpCoreTools::Ellipse::orientation ( ) const [inline]
void QGpCoreTools::Ellipse::setCenter ( const Point2D c) [inline]
void QGpCoreTools::Ellipse::setMajorRadius ( double  r) [inline]
void QGpCoreTools::Ellipse::setMinorRadius ( double  r) [inline]

References QGpCoreTools::Angle::degrees(), and QGpCoreTools::Point2D::toString().

Referenced by CoordReader::terminate().

  {
    return QString("%1 %2 %3 %4").arg(_center.toString())
        .arg(_majorRadius).arg(_minorRadius).arg(_orientation.degrees());
  }

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

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

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines