Orbit.hpp   Orbit.hpp 
skipping to change at line 45 skipping to change at line 45
EllipticalOrbit(double pericenterDistance, EllipticalOrbit(double pericenterDistance,
double eccentricity, double eccentricity,
double inclination, double inclination,
double ascendingNode, double ascendingNode,
double argOfPeriapsis, double argOfPeriapsis,
double meanAnomalyAtEpoch, double meanAnomalyAtEpoch,
double period, double period,
double epoch, // = 2451545.0, double epoch, // = 2451545.0,
double parentRotObliquity, // = 0.0, double parentRotObliquity, // = 0.0,
double parentRotAscendingnode, // = 0.0 double parentRotAscendingnode, // = 0.0
double parentRotJ2000Longitude // = 0.0 double parentRotJ2000Longitude // = 0.0
); );
// Compute position for a specified Julian date and return coordinat es // Compute position for a specified Julian date and return coordinat es
// given in "dynamical equinox and ecliptic J2000" // given in "dynamical equinox and ecliptic J2000"
// which is the reference frame for VSOP87 // which is the reference frame for VSOP87
// In order to rotate to VSOP87 // In order to rotate to VSOP87
// parentRotObliquity and parentRotAscendingnode must be supplied. // parentRotObliquity and parentRotAscendingnode must be supplied.
void positionAtTimevInVSOP87Coordinates(const double JD, double* v) const; void positionAtTimevInVSOP87Coordinates(const double JD, double* v) const;
// Original one // Original one
skipping to change at line 92 skipping to change at line 92
double ascendingNode, double ascendingNode,
double argOfPerhelion, double argOfPerhelion,
double timeAtPerihelion, double timeAtPerihelion,
double orbitGoodDays, double orbitGoodDays,
double meanMotion, // GZ: for parabolics, this is W/dt in Heafner's lettering double meanMotion, // GZ: for parabolics, this is W/dt in Heafner's lettering
double parentRotObliquity, // Comets only have paren t==sun, no need for these? Oh yes, VSOP/J2000 eq frames! double parentRotObliquity, // Comets only have paren t==sun, no need for these? Oh yes, VSOP/J2000 eq frames!
double parentRotAscendingnode, double parentRotAscendingnode,
double parentRotJ2000Longitude double parentRotJ2000Longitude
); );
// Compute the orbit for a specified Julian date and return a "stellari // Compute the orbit for a specified Julian day and return a "stellariu
um compliant" function m compliant" function
// GZ: new optional variable: updateSpeedVector, true required for dust // GZ: new optional variable: updateVelocityVector, true required for d
tail orientation! ust tail orientation!
void positionAtTimevInVSOP87Coordinates(double JD, double* v, bool update VelocityVector=true); void positionAtTimevInVSOP87Coordinates(double JD, double* v, bool update VelocityVector=true);
// updating the tails is a bit expensive. try not to overdo it. // updating the tails is a bit expensive. try not to overdo it.
bool getUpdateTails() const {return updateTails;} bool getUpdateTails() const {return updateTails;}
void setUpdateTails(const bool update){updateTails=update;} void setUpdateTails(const bool update){updateTails=update;}
Vec3d getVelocity() const {return rdot;} //! return speed value [AU/d] la st computed by positionAtTimevInVSOP87Coordinates(JD, v, true) Vec3d getVelocity() const {return rdot;} //! return speed value [AU/d] la st computed by positionAtTimevInVSOP87Coordinates(JD, v, true)
bool objectDateValid(const double JD) const {return (fabs(t0-JD)<orbitGoo d);} bool objectDateValid(const double JD) const {return (fabs(t0-JD)<orbitGoo d);}
private: private:
const double q; //! perihel distance const double q; //! perihel distance
const double e; //! eccentricity const double e; //! eccentricity
const double i; //! inclination const double i; //! inclination
const double Om; //! longitude of ascending node const double Om; //! longitude of ascending node
const double w; //! argument of perihel // GZ RENAMED from o const double w; //! argument of perihel
const double t0; //! time of perihel, JDE const double t0; //! time of perihel, JDE
const double n; //! mean motion (for parabolic orbits: W/dt in Heafner's presentation) const double n; //! mean motion (for parabolic orbits: W/dt in Heafner's presentation)
Vec3d rdot; //! GZ: velocity vector. Caches velocity from last posit ion computation, [AU/d] Vec3d rdot; //! GZ: velocity vector. Caches velocity from last posit ion computation, [AU/d]
double rotateToVsop87[9]; //! Rotation matrix double rotateToVsop87[9]; //! Rotation matrix
bool updateTails; //! flag to signal that tails must be recomputed. bool updateTails; //! flag to signal that tails must be recomputed.
const double orbitGood; //! orb. elements are only valid for this time [d ays]. Don't draw the object outside. const double orbitGood; //! orb. elements are only valid for this time [d ays]. Don't draw the object outside.
}; };
class OrbitSampleProc class OrbitSampleProc
{ {
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/