TwiceAsNice  2019-02-18
Public Member Functions | Protected Attributes | List of all members
INDI::AlignmentSubsystem::MathPlugin Class Referenceabstract

Provides alignment subsystem functions to INDI alignment math plugins. More...

#include <MathPlugin.h>

Inheritance diagram for INDI::AlignmentSubsystem::MathPlugin:
Inheritance graph
Collaboration diagram for INDI::AlignmentSubsystem::MathPlugin:
Collaboration graph

Public Member Functions

 MathPlugin (MountAlignment_t ApproximateAlignment=ZENITH)
 Default constructor. More...
 
virtual ~MathPlugin ()
 Virtual destructor. More...
 
virtual MountAlignment_t GetApproximateMountAlignment ()
 Get the approximate alognment of the mount. More...
 
virtual bool Initialise (InMemoryDatabase *pInMemoryDatabase)
 Initialise or re-initialise the math plugin. More...
 
virtual void SetApproximateMountAlignment (MountAlignment_t ApproximateAlignment)
 Set the approximate alognment of the mount. More...
 
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. More...
 
virtual bool TransformTelescopeToCelestial (const TelescopeDirectionVector &ApparentTelescopeDirectionVector, double &RightAscension, double &Declination)=0
 Get the true celestial coordinates for the supplied telescope pointing direction. More...
 

Protected Attributes

MountAlignment_t ApproximateMountAlignment
 Describe the approximate alignment of the mount. More...
 
InMemoryDatabasepInMemoryDatabase
 

Detailed Description

Provides alignment subsystem functions to INDI alignment math plugins.

Note
This class is intended to be implemented within a dynamic shared object. If the implementation of this class uses a standard 3 by 3 transformation matrix to convert between coordinate systems then it will not normally need to know the handedness of either the celestial or telescope coordinate systems, as the necessary rotations and scaling will be handled in the derivation of the matrix coefficients. This will normally be done using the three reference (sync) points method. Knowledge of the handedness of the coordinate systems is needed when only two reference points are available and a third reference point has to artificially generated in order to derive the matrix coefficients.

Constructor & Destructor Documentation

◆ MathPlugin()

INDI::AlignmentSubsystem::MathPlugin::MathPlugin ( MountAlignment_t  ApproximateAlignment = ZENITH)
inline

Default constructor.

◆ ~MathPlugin()

virtual INDI::AlignmentSubsystem::MathPlugin::~MathPlugin ( )
inlinevirtual

Virtual destructor.

Member Function Documentation

◆ GetApproximateMountAlignment()

virtual MountAlignment_t INDI::AlignmentSubsystem::MathPlugin::GetApproximateMountAlignment ( )
inlinevirtual

Get the approximate alognment of the mount.

Returns
the approximate alignment

Reimplemented in INDI::AlignmentSubsystem::MathPluginManagement.

◆ Initialise()

bool INDI::AlignmentSubsystem::MathPlugin::Initialise ( InMemoryDatabase pInMemoryDatabase)
virtual

Initialise or re-initialise the math plugin.

Re-reading the in memory database as necessary.

Returns
True if successful

Reimplemented in INDI::AlignmentSubsystem::MathPluginManagement, INDI::AlignmentSubsystem::BasicMathPlugin, and INDI::AlignmentSubsystem::DummyMathPlugin.

◆ SetApproximateMountAlignment()

virtual void INDI::AlignmentSubsystem::MathPlugin::SetApproximateMountAlignment ( MountAlignment_t  ApproximateAlignment)
inlinevirtual

Set the approximate alognment of the mount.

Parameters
[in]ApproximateAlignment- the approximate alignment of the mount

Reimplemented in INDI::AlignmentSubsystem::MathPluginManagement.

◆ TransformCelestialToTelescope()

virtual bool INDI::AlignmentSubsystem::MathPlugin::TransformCelestialToTelescope ( const double  RightAscension,
const double  Declination,
double  JulianOffset,
TelescopeDirectionVector ApparentTelescopeDirectionVector 
)
pure virtual

Get the alignment corrected telescope pointing direction for the supplied celestial coordinates.

Parameters
[in]RightAscensionRight Ascension (Decimal Hours).
[in]DeclinationDeclination (Decimal Degrees).
[in]JulianOffsetto be applied to the current julian date.
[out]ApparentTelescopeDirectionVectorParameter to receive the corrected telescope direction
Returns
True if successful

Implemented in INDI::AlignmentSubsystem::MathPluginManagement, INDI::AlignmentSubsystem::BasicMathPlugin, and INDI::AlignmentSubsystem::DummyMathPlugin.

◆ TransformTelescopeToCelestial()

virtual bool INDI::AlignmentSubsystem::MathPlugin::TransformTelescopeToCelestial ( const TelescopeDirectionVector ApparentTelescopeDirectionVector,
double &  RightAscension,
double &  Declination 
)
pure virtual

Get the true celestial coordinates for the supplied telescope pointing direction.

Parameters
[in]ApparentTelescopeDirectionVectorthe telescope direction
[out]RightAscensionParameter to receive the Right Ascension (Decimal Hours).
[out]DeclinationParameter to receive the Declination (Decimal Degrees).
Returns
True if successful

Implemented in INDI::AlignmentSubsystem::MathPluginManagement, INDI::AlignmentSubsystem::BasicMathPlugin, and INDI::AlignmentSubsystem::DummyMathPlugin.

Member Data Documentation

◆ ApproximateMountAlignment

MountAlignment_t INDI::AlignmentSubsystem::MathPlugin::ApproximateMountAlignment
protected

Describe the approximate alignment of the mount.

This information is normally used in a one star alignment calculation.

◆ pInMemoryDatabase

InMemoryDatabase* INDI::AlignmentSubsystem::MathPlugin::pInMemoryDatabase
protected

The documentation for this class was generated from the following files: