ApproachSolver
#include <approachsolver.h>
Signals | |
void | solverMadeProgress (int progress) |
Public Member Functions | |
ApproachSolver (QObject *parent=nullptr) | |
QMap< long double, dms > | findClosestApproach (long double startJD, long double stopJD, const std::function< void(long double, dms)> &callback={}) |
GeoLocation * | getGeoLocation () |
void | setGeoLocation (GeoLocation *geo) |
void | setMaxSeparation (dms sep) |
void | setMaxSeparation (double sep) |
Public Member Functions inherited from QObject | |
QObject (QObject *parent) | |
QBindable< QString > | bindableObjectName () |
bool | blockSignals (bool block) |
const QObjectList & | children () const const |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectInfo () const const |
void | dumpObjectTree () const const |
QList< QByteArray > | dynamicPropertyNames () const const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (Qt::FindChildOptions options) const const |
bool | inherits (const char *className) const const |
void | installEventFilter (QObject *filterObj) |
bool | isQuickItemType () const const |
bool | isWidgetType () const const |
bool | isWindowType () const const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const const |
void | moveToThread (QThread *targetThread) |
QString | objectName () const const |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
QVariant | property (const char *name) const const |
Q_CLASSINFO (Name, Value) | |
Q_EMIT Q_EMIT | |
Q_ENUM (...) | |
Q_ENUM_NS (...) | |
Q_ENUMS (...) | |
Q_FLAG (...) | |
Q_FLAG_NS (...) | |
Q_FLAGS (...) | |
Q_GADGET Q_GADGET | |
Q_GADGET_EXPORT (EXPORT_MACRO) | |
Q_INTERFACES (...) | |
Q_INVOKABLE Q_INVOKABLE | |
Q_MOC_INCLUDE Q_MOC_INCLUDE | |
Q_NAMESPACE Q_NAMESPACE | |
Q_NAMESPACE_EXPORT (EXPORT_MACRO) | |
Q_OBJECT Q_OBJECT | |
Q_PROPERTY (...) | |
Q_REVISION Q_REVISION | |
Q_SET_OBJECT_NAME (Object) | |
Q_SIGNAL Q_SIGNAL | |
Q_SIGNALS Q_SIGNALS | |
Q_SLOT Q_SLOT | |
Q_SLOTS Q_SLOTS | |
T | qobject_cast (const QObject *object) |
T | qobject_cast (QObject *object) |
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
void | removeEventFilter (QObject *obj) |
void | setObjectName (const QString &name) |
void | setObjectName (QAnyStringView name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | setProperty (const char *name, QVariant &&value) |
bool | signalsBlocked () const const |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType) |
QThread * | thread () const const |
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 |
Additional Inherited Members | |
Public Types inherited from QObject | |
typedef | QObjectList |
Properties inherited from QObject | |
objectName | |
Static Public Member Functions inherited from QObject | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
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()
|
explicit |
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()
|
protectedpure virtual |
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 KSConjunct, and LunarEclipseHandler.
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 Mon Nov 18 2024 12:16:42 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.