Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Orbit Class Reference

Calculates the position of a satellite in a low, circular orbit. The path is assumed to go to the east, with the rotation of the earth, as is the case for most satellite orbits. All angles are expressed in degrees. Longitude increases to the east. More...

#include <Orbit.h>

Inheritance diagram for Orbit:

StaticOrbit List of all members.

Public Methods

 Orbit (double asclon = 0., double alt = 600., double inc = 28.5, double phs = 0., double apitch = 0., double ayaw = 0., double aroll = 0.)
 default constructor. More...

double get_phase (double time) const
 phase of the orbit as a proportion of a single period.

std::pair<double,double> coords (double time) const
 returns position as a pair using specified time. More...

virtual double latitude (double time) const
 latitude as a function of time (in minutes). More...

virtual double longitude (double time) const
 longitude as a function of time, taking into account the starting longitude and the eastward rotation of the earth. More...

virtual double pitch (double time) const
 pitch of the spacecraft (rotation around E-W axis) zenith pointing is pitch == 0. More...

virtual double yaw (double time) const
 yaw of the spacecraft (rotation around zenith) square to E-W and N-S axis represents yaw == 0. More...

virtual double roll (double time) const
 roll of the spacecraft (rotation around N-S axis) zenith pointing is roll == 0. More...

virtual double phase (double time) const
 phase of the orbit at a given time. More...

void inclination ( double inc )
 set the inclination of the orbit. More...

void ascendingLon ( double asc )
 set the longitude of the ascending node. More...

void startphase ( double phi )
 set the phase of the orbit (in radians). More...

double startphase () const
 inlined access methods. More...

double period () const
double inclination () const
double altitude () const
double ascendingLon () const

Protected Methods

virtual void setlatitude ( double )
virtual void setlongitude ( double )
virtual void setpitch ( double )
virtual void setyaw ( double )
virtual void setroll ( double )

Private Attributes

double m_ascendingLon
double m_inclination
double m_altitude
double m_period
double m_sini
double m_cosi
double m_startphase

Friends

class  GPS

Detailed Description

Calculates the position of a satellite in a low, circular orbit. The path is assumed to go to the east, with the rotation of the earth, as is the case for most satellite orbits. All angles are expressed in degrees. Longitude increases to the east.

Constructor: The three arguments are 1. Longitude of the ascending node (where the orbit crosses the equator, moving northward) in degrees 2. Altitude in kilometers. Defaults to 600. 3. Orbital inclination in degrees. Defaults to 28.5.

Member functions: latitude(time) and longitude(time) give the position of the satellite (in degrees) when "time" minutes have elapsed since the ascending node passage. longitude is between 0 and 360. coords(time) returns the latitude and longitude as a pair<double,double>. period() returns the period of the orbit (in minutes). inclination(), altitude(), and ascendingLon() return the parameters used in the constructor, in case you forget.

There is no need for an explicit destructor, copy constructor, or assignment operator.

Definition at line 36 of file Orbit.h.


Constructor & Destructor Documentation

Orbit::Orbit ( double asclon = 0.,
double alt = 600.,
double inc = 28.5,
double phs = 0.,
double pitch = 0.,
double yaw = 0.,
double roll = 0. )
 

default constructor.

Definition at line 12 of file Orbit.cxx.


Member Function Documentation

double Orbit::altitude ( ) const [inline]
 

Definition at line 116 of file Orbit.h.

double Orbit::ascendingLon ( ) const [inline]
 

Definition at line 118 of file Orbit.h.

void Orbit::ascendingLon ( double asc )
 

set the longitude of the ascending node.

Definition at line 31 of file Orbit.cxx.

Referenced by GPS::ascendingLon(), and GPS::synch().

std::pair< double,double > Orbit::coords ( double time ) const
 

returns position as a pair using specified time.

Definition at line 75 of file Orbit.cxx.

double Orbit::get_phase ( double time ) const
 

phase of the orbit as a proportion of a single period.

double Orbit::inclination ( ) const [inline]
 

Definition at line 114 of file Orbit.h.

Referenced by Orbit().

void Orbit::inclination ( double inc )
 

set the inclination of the orbit.

Definition at line 24 of file Orbit.cxx.

double Orbit::latitude ( double time ) const [virtual]
 

latitude as a function of time (in minutes).

Definition at line 41 of file Orbit.cxx.

Referenced by coords(), and GPS::lat().

double Orbit::longitude ( double time ) const [virtual]
 

longitude as a function of time, taking into account the starting longitude and the eastward rotation of the earth.

Definition at line 46 of file Orbit.cxx.

Referenced by coords(), and GPS::lon().

double Orbit::period ( ) const [inline]
 

Definition at line 112 of file Orbit.h.

Referenced by phase(), and GPS::phase().

double Orbit::phase ( double time ) const [virtual]
 

phase of the orbit at a given time.

Definition at line 70 of file Orbit.cxx.

Referenced by GPS::phase(), and GPS::state().

double Orbit::pitch ( double time ) const [virtual]
 

pitch of the spacecraft (rotation around E-W axis) zenith pointing is pitch == 0.

Definition at line 58 of file Orbit.cxx.

Referenced by GPS::pitch().

double Orbit::roll ( double time ) const [virtual]
 

roll of the spacecraft (rotation around N-S axis) zenith pointing is roll == 0.

Definition at line 66 of file Orbit.cxx.

Referenced by GPS::roll().

void Orbit::setlatitude ( double l ) [inline, protected, virtual]
 

Reimplemented in StaticOrbit.

Definition at line 93 of file Orbit.h.

Referenced by GPS::lat(), and GPS::setState().

void Orbit::setlongitude ( double l ) [inline, protected, virtual]
 

Reimplemented in StaticOrbit.

Definition at line 94 of file Orbit.h.

Referenced by GPS::lon(), and GPS::setState().

void Orbit::setpitch ( double p ) [inline, protected, virtual]
 

Reimplemented in StaticOrbit.

Definition at line 95 of file Orbit.h.

Referenced by GPS::pitch(), and GPS::setState().

void Orbit::setroll ( double r ) [inline, protected, virtual]
 

Reimplemented in StaticOrbit.

Definition at line 97 of file Orbit.h.

Referenced by GPS::roll(), and GPS::setState().

void Orbit::setyaw ( double y ) [inline, protected, virtual]
 

Reimplemented in StaticOrbit.

Definition at line 96 of file Orbit.h.

Referenced by GPS::setState(), and GPS::yaw().

double Orbit::startphase ( ) const [inline]
 

inlined access methods.

Definition at line 120 of file Orbit.h.

Referenced by latitude(), longitude(), and phase().

void Orbit::startphase ( double phs )
 

set the phase of the orbit (in radians).

Definition at line 36 of file Orbit.cxx.

Referenced by GPS::phase().

double Orbit::yaw ( double time ) const [virtual]
 

yaw of the spacecraft (rotation around zenith) square to E-W and N-S axis represents yaw == 0.

Definition at line 62 of file Orbit.cxx.

Referenced by GPS::yaw().


Friends And Related Function Documentation

class GPS [friend]
 

Definition at line 100 of file Orbit.h.


Member Data Documentation

double Orbit::m_altitude [private]
 

Definition at line 105 of file Orbit.h.

double Orbit::m_ascendingLon [private]
 

Definition at line 103 of file Orbit.h.

double Orbit::m_cosi [private]
 

Definition at line 108 of file Orbit.h.

double Orbit::m_inclination [private]
 

Definition at line 104 of file Orbit.h.

double Orbit::m_period [private]
 

Definition at line 106 of file Orbit.h.

double Orbit::m_sini [private]
 

Definition at line 107 of file Orbit.h.

double Orbit::m_startphase [private]
 

Definition at line 109 of file Orbit.h.


The documentation for this class was generated from the following files:
Generated at Wed Nov 21 12:20:36 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000