Instrument Neutral Distributed Interface INDI 2.2.5
MathPlugin.h
Go to the documentation of this file.
1
9#pragma once
10
11#include "InMemoryDatabase.h"
13
14namespace INDI
15{
16namespace AlignmentSubsystem
17{
31{
32 public:
34 MathPlugin(MountAlignment_t ApproximateAlignment = ZENITH)
35 : ApproximateMountAlignment(ApproximateAlignment), pInMemoryDatabase(NULL)
36 {
37 }
38
40 virtual ~MathPlugin() {}
41
42 // Public methods
49
53
56 virtual void SetApproximateMountAlignment(MountAlignment_t ApproximateAlignment)
57 {
58 ApproximateMountAlignment = ApproximateAlignment;
59 }
60
71 virtual bool TransformCelestialToTelescopeJD(double RightAscension, double Declination,
72 double JulianDate,
73 TelescopeDirectionVector &ApparentTelescopeDirectionVector);
74
84 virtual bool TransformTelescopeToCelestialJD(const TelescopeDirectionVector &ApparentTelescopeDirectionVector,
85 double &RightAscension, double &Declination, double JulianDate);
86
95 virtual bool TransformCelestialToTelescope(const double RightAscension, const double Declination,
96 double JulianOffset,
97 TelescopeDirectionVector &ApparentTelescopeDirectionVector) = 0;
98
107 virtual bool TransformTelescopeToCelestial(const TelescopeDirectionVector &ApparentTelescopeDirectionVector,
108 double &RightAscension, double &Declination, double JulianOffset = 0) = 0;
109
122 MountAlignment_t mountAlignment);
123
124 protected:
125 // Protected properties
130};
131
132} // namespace AlignmentSubsystem
133} // namespace INDI
This class provides the driver side API to the in memory alignment database.
Provides alignment subsystem functions to INDI alignment math plugins.
Definition MathPlugin.h:31
virtual bool TransformCelestialToTelescope(const double RightAscension, const double Declination, double JulianOffset, TelescopeDirectionVector &ApparentTelescopeDirectionVector)=0
Get the alignment corrected telescope pointing direction for the supplied celestial coordinates.
virtual ~MathPlugin()
Virtual destructor.
Definition MathPlugin.h:40
virtual bool Initialise(InMemoryDatabase *pInMemoryDatabase)
Initialise or re-initialise the math plugin. Re-reading the in memory database as necessary.
virtual void SetApproximateMountAlignment(MountAlignment_t ApproximateAlignment)
Set the approximate alignment of the mount.
Definition MathPlugin.h:56
virtual bool TransformTelescopeToCelestialJD(const TelescopeDirectionVector &ApparentTelescopeDirectionVector, double &RightAscension, double &Declination, double JulianDate)
Get the true celestial coordinates for the supplied telescope pointing direction.
virtual MountAlignment_t GetApproximateMountAlignment()
Get the approximate alignment of the mount.
Definition MathPlugin.h:45
MathPlugin(MountAlignment_t ApproximateAlignment=ZENITH)
Default constructor.
Definition MathPlugin.h:34
static void SanitizePolarEntries(InMemoryDatabase *pInMemoryDatabase, MountAlignment_t mountAlignment)
Sanitize alignment database entries that are near the pole (EQ) or zenith (altaz)....
virtual bool TransformTelescopeToCelestial(const TelescopeDirectionVector &ApparentTelescopeDirectionVector, double &RightAscension, double &Declination, double JulianOffset=0)=0
Get the true celestial coordinates for the supplied telescope pointing direction.
MountAlignment_t ApproximateMountAlignment
Describe the approximate alignment of the mount. This information is normally used in a one star alig...
Definition MathPlugin.h:128
virtual bool TransformCelestialToTelescopeJD(double RightAscension, double Declination, double JulianDate, TelescopeDirectionVector &ApparentTelescopeDirectionVector)
Get the alignment corrected telescope pointing direction for the supplied celestial coordinates.
enum INDI::AlignmentSubsystem::MountAlignment MountAlignment_t
Namespace to encapsulate INDI client, drivers, and mediator classes.
Holds a normalised direction vector (direction cosines)
Definition Common.h:69