ApproachSolver
#include <approachsolver.h>
Signals | |
void | solverMadeProgress (int progress) |
Protected Member Functions | |
virtual dms | findDistance ()=0 |
virtual double | findInitialStep (long double startJD, long double stopJD)=0 |
bool | findPrecise (QPair< long double, dms > *out, long double jd, double step, int prevSign) |
dms | findSkyPointDistance (SkyPoint *obj1, SkyPoint *obj2) |
virtual double | getMaxSeparation () |
virtual void | updatePositions (long double jd)=0 |
Protected Member Functions inherited from QObject | |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
bool | isSignalConnected (const QMetaMethod &signal) const const |
int | receivers (const char *signal) const const |
QObject * | sender () const const |
int | senderSignalIndex () const const |
virtual void | timerEvent (QTimerEvent *event) |
Protected Attributes | |
KSPlanet | m_Earth |
Detailed Description
Implements algorithms to find close approaches of two objects on the sky.
A class that implements a method to compute close approaches between any two solar system objects excluding planetary moons. Given two such objects, this class has implementations of algorithms required to find the time of closest approach in a given range of time. It is meant to be subclassed and provides the boilerplate (+ common interface) for classes like KSKonjunct and EclipseHandler.
- Version
- 2.0
Definition at line 29 of file approachsolver.h.
Constructor & Destructor Documentation
◆ ApproachSolver()
Definition at line 11 of file approachsolver.cpp.
Member Function Documentation
◆ findClosestApproach()
QMap< long double, dms > ApproachSolver::findClosestApproach | ( | long double | startJD, |
long double | stopJD, | ||
const std::function< void(long double, dms)> & | callback = {} ) |
Compute the closest approach of two planets in the given range.
- Parameters
-
startJD Julian Day corresponding to start of the calculation period stopJD Julian Day corresponding to end of the calculation period callback A callback function
- Returns
- Hash containing julian days of close conjunctions against separation
Definition at line 26 of file approachsolver.cpp.
◆ findDistance()
Finds the angular distance between two solar system objects.
- Returns
- The angular distance between the two bodies.
Implemented in LunarEclipseHandler.
◆ findInitialStep()
|
protectedpure virtual |
findStep
- Returns
- the step size used by findClosestApproach (in Julian Days)
Make this as big as possible. The bigger it is, the more likely is a skip over...
Implemented in EclipseHandler, KSConjunct, and LunarEclipseHandler.
◆ findPrecise()
|
protected |
Compute the precise value of the extremum once the extremum has been detected.
- Parameters
-
out A pointer to a QPair that stores the Julian Day and Separation corresponding to the extremum jd Julian day corresponding to the endpoint of the interval where extremum was detected. step The step in jd taken during computation earlier. (Defines the interval size) prevSign The previous sign of increment in moving from jd - step to jd
- Returns
- true if the extremum is a minimum
Definition at line 113 of file approachsolver.cpp.
◆ findSkyPointDistance()
findSkyPointDistance
- Parameters
-
obj1 obj2
- Returns
- the angular distance between two SkyPoints in arcminutes
Definition at line 157 of file approachsolver.cpp.
◆ getGeoLocation()
|
inline |
◆ getMaxSeparation()
|
inlineprotectedvirtual |
getMaxSeparation
- Returns
- the maximum separation allowed, based on the (guaranteed to be up-to-date) parameters of the objects if overwritten. Here it's just a constant.
Reimplemented in LunarEclipseHandler.
Definition at line 83 of file approachsolver.h.
◆ setGeoLocation()
void ApproachSolver::setGeoLocation | ( | GeoLocation * | geo | ) |
Sets the geographic location to compute conjunctions at.
- Parameters
-
geo Pointer to the GeoLocation object
Definition at line 17 of file approachsolver.cpp.
◆ setMaxSeparation() [1/2]
|
inline |
Definition at line 66 of file approachsolver.h.
◆ setMaxSeparation() [2/2]
|
inline |
setMaxSeparation
- Parameters
-
sep - maximum allowed anglar separation
Definition at line 65 of file approachsolver.h.
◆ solverMadeProgress
|
signal |
solverMadeProgress
- Parameters
-
progress - progress in percent
◆ updatePositions()
|
protectedpure virtual |
updatePositions
Update the positions of the objects involved.
- Parameters
-
jd Julian Day corresponding to the time of computation
Implemented in LunarEclipseHandler, and KSConjunct.
Member Data Documentation
◆ m_Earth
|
protected |
Definition at line 127 of file approachsolver.h.
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:19:04 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.