Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

SynchronousOrbit Class Reference

#include <orbit.h>

Inheritance diagram for SynchronousOrbit:

Inheritance graph
Collaboration diagram for SynchronousOrbit:

Collaboration graph
List of all members.

Public Member Functions

virtual double getBoundingRadius () const
virtual double getPeriod () const
Point3d positionAtTime (double jd) const
virtual void sample (double, double, int, OrbitSampleProc &proc) const
 SynchronousOrbit (const Body &_body, const Point3d &_position)
virtual ~SynchronousOrbit ()

Private Attributes

const Bodybody
Point3d position

Detailed Description

An object in a synchronous orbit will always hover of the same spot on the surface of the body it orbits. Only equatorial orbits of a certain radius are stable in the real world. In Celestia, synchronous orbits are a convenient way to fix objects to a planet surface.

Definition at line 129 of file orbit.h.


Constructor & Destructor Documentation

SynchronousOrbit::SynchronousOrbit const Body _body,
const Point3d _position
 

Definition at line 395 of file orbit.cpp.

00396                                                              :
00397     body(_body),
00398     position(_position)
00399 {
00400 }

SynchronousOrbit::~SynchronousOrbit  )  [virtual]
 

Definition at line 403 of file orbit.cpp.

00404 {
00405 }


Member Function Documentation

double SynchronousOrbit::getBoundingRadius  )  const [virtual]
 

Implements Orbit.

Definition at line 422 of file orbit.cpp.

References Point3< T >::distanceFromOrigin(), and position.

00423 {
00424     return position.distanceFromOrigin();
00425 }

double SynchronousOrbit::getPeriod  )  const [virtual]
 

Implements Orbit.

Definition at line 416 of file orbit.cpp.

References body, Body::getRotationElements(), and RotationElements::period.

00417 {
00418     return body.getRotationElements().period;
00419 }

Point3d SynchronousOrbit::positionAtTime double  jd  )  const [virtual]
 

Implements Orbit.

Definition at line 408 of file orbit.cpp.

References body, Body::getEquatorialToGeographic(), position, and Quaternion< T >::toMatrix3().

00409 {
00410     //Quatd q = body.getEclipticalToGeographic(jd);
00411     Quatd q = body.getEquatorialToGeographic(jd);
00412     return position * q.toMatrix3();
00413 }

void SynchronousOrbit::sample double  ,
double  ,
int  ,
OrbitSampleProc proc
const [virtual]
 

Implements Orbit.

Definition at line 428 of file orbit.cpp.

00429 {
00430     // Empty method--we never want to show a synchronous orbit.
00431 }


Member Data Documentation

const Body& SynchronousOrbit::body [private]
 

Definition at line 141 of file orbit.h.

Referenced by getPeriod(), and positionAtTime().

Point3d SynchronousOrbit::position [private]
 

Definition at line 142 of file orbit.h.

Referenced by getBoundingRadius(), and positionAtTime().


The documentation for this class was generated from the following files:
Generated on Sat Jan 14 22:33:38 2006 for Celestia by  doxygen 1.4.1