14 #include <gsl/gsl_matrix.h>
18 namespace AlignmentSubsystem
42 double &RightAscension,
double &Declination);
58 gsl_matrix *pAlphaToBeta, gsl_matrix *pBetaToAlpha) = 0;
63 void Dump3(
const char *Label, gsl_vector *pVector);
68 void Dump3x3(
const char *Label, gsl_matrix *pMatrix);
This class implements the common functionality for the built in and SVD math plugins.
bool MatrixInvert3x3(gsl_matrix *pInput, gsl_matrix *pInversion)
Calculate the inverse of the supplied matrix.
gsl_matrix * pApparentToActualTransform
gsl_matrix * pActualToApparentTransform
double Matrix3x3Determinant(gsl_matrix *pMatrix)
Caluclate the determinant of the supplied matrix.
void MatrixMatrixMultiply(gsl_matrix *pA, gsl_matrix *pB, gsl_matrix *pC)
Multiply matrix A by matrix B and put the result in C.
void Dump3(const char *Label, gsl_vector *pVector)
Print out a 3 vector to debug.
virtual void CalculateTransformMatrices(const TelescopeDirectionVector &Alpha1, const TelescopeDirectionVector &Alpha2, const TelescopeDirectionVector &Alpha3, const TelescopeDirectionVector &Beta1, const TelescopeDirectionVector &Beta2, const TelescopeDirectionVector &Beta3, gsl_matrix *pAlphaToBeta, gsl_matrix *pBetaToAlpha)=0
Calculate tranformation matrices from the supplied vectors.
std::vector< TelescopeDirectionVector > ActualDirectionCosines
ConvexHull ActualConvexHull
virtual bool TransformTelescopeToCelestial(const TelescopeDirectionVector &ApparentTelescopeDirectionVector, double &RightAscension, double &Declination)
Override for the base class virtual function.
void MatrixVectorMultiply(gsl_matrix *pA, gsl_vector *pB, gsl_vector *pC)
Multiply matrix A by vector B and put the result in vector C.
BasicMathPlugin()
Default constructor.
virtual ~BasicMathPlugin()
Virtual destructor.
bool RayTriangleIntersection(TelescopeDirectionVector &Ray, TelescopeDirectionVector &TriangleVertex1, TelescopeDirectionVector &TriangleVertex2, TelescopeDirectionVector &TriangleVertex3)
Test if a ray intersects a triangle in 3d space.
virtual bool TransformCelestialToTelescope(const double RightAscension, const double Declination, double JulianOffset, TelescopeDirectionVector &ApparentTelescopeDirectionVector)
Override for the base class virtual function.
ConvexHull ApparentConvexHull
virtual bool Initialise(InMemoryDatabase *pInMemoryDatabase)
Override for the base class virtual function.
void Dump3x3(const char *Label, gsl_matrix *pMatrix)
Print out a 3x3 matrix to debug.
This class computes the convex hull of a set of 3d points.
This class provides the driver side API to the in memory alignment database.
InMemoryDatabase * pInMemoryDatabase
Namespace to encapsulate INDI client, drivers, and mediator classes.
Holds a nomalised direction vector (direction cosines)