source: BAORadio/libindi/libindi/communs/astro.h @ 682

Last change on this file since 682 was 682, checked in by frichard, 12 years ago
File size: 3.7 KB
Line 
1////////////////////////////////
2// Classe Astro               //
3// Franck RICHARD             //
4// BAORadio                   //
5// franckrichard033@gmail.com //
6// juin 2011                  //
7////////////////////////////////
8
9#ifndef Astro_class
10#define Astro_class
11
12#include "math.h"
13#include "../communs/const.h"
14#include "stdio.h"
15#include "stdlib.h"
16#include <iostream>
17#include <string.h>
18#include <sstream>
19#include <iomanip>
20#include "const.h"
21
22using namespace std;
23
24
25
26
27struct CoordonneesHoraires
28{
29    string ar;                          // Coordonnées horaires d'un objet
30    string dec;
31};
32
33struct CoordonneesHorairesDouble
34{
35    double ar;                          // Coordonnées horaires d'un objet
36    double dec;
37};
38
39class Astro
40{
41public:
42    Astro();
43    ~Astro();
44
45       
46    void   DefinirDateHeure(double Annee, double Mois, double Jour, double Heu, double Min, double Sec);
47    void   DefinirPressionTemp(double P, double T);
48    void   DefinirLongitudeLatitude(double log, double lat);
49    double VerifAngle(double Angle);
50    double VerifDistance(double Angle);
51    double DistanceAngulaireEntre2Points(double az1, double ha1, double az2, double ha2);
52    double Arrondi(double a);
53    string DHMS(double mema, bool HMS);
54     void   Azimut(double Ar, double De, double *azi, double *hau);
55    void   AzHa2ADDe(double Az, double Ha, double *AD, double *Dec);
56    void   RechercheAzimutFinSuivi(double AD, double Dec, long int *azmin, long int *azmax);
57    void   AzHa2ADDe(double Az, double Ha, double *AD, double *Dec);
58    void   RechercheAzimutFinSuivi(double AD, double Dec, long int *azmin, long int *azmax);
59    void   Precession(double *ar, double *de);
60    void   NutationEtoile(double *ar, double *de);
61    void   AberrationAnnuelle(double *ar, double *de);
62    void   CalculJJ(double Heure);
63    double CalculJJ(double A, double M, double J, double Heure);
64    void   CalculTSL(); 
65    double RefractionAtmospherique(double ht);
66    double CalculLongitudeSoleil();
67    double TSL(double JJ,double HeureSiderale,double Longitude);
68    bool    Decomposition(string chaine, char type, float *a1, float *a2, float *a3);
69    void   Nutation();
70    void   Obliquite(double JJ);
71    void   atms ( double rt, double tt, double dnt, double gamal, double r,
72                   double *dn, double *rdndr );
73    void   atmt ( double robs, double tdkok, double alpha, double gamm2,
74                   double delm2, double c1, double c2, double c3,
75                   double c4, double c5, double c6, double r,
76                   double *t, double *dn, double *rdndr );
77    void   slaRefro ( double zobs, double hm, double tdk, double pmb,
78                double rh, double wl, double phi, double tlr,
79                double eps, double *ref );
80    float  slaRange(float angle );
81    double slaDrange(double angle );
82    void   CalculARDecSoleil(CoordonneesHorairesDouble *Soleil);
83   
84    double GetLatitude()    { return Latitude;  }
85    double GetLongitude()   { return Longitude; }
86    double GetPression()    { return Pression;  }
87    double GetTemperature() { return Temp;  }
88    double GetAnnee()       { return Annee; }
89    double GetMois()        { return Mois;  }
90    double GetJour()        { return Jour;  }
91    double GetHeure()       { return Heure; }
92    double GetMin()         { return Min;   }
93    double GetSec()         { return Sec;   }
94    double GetJJ()          { return JJ;    } 
95    double GetTSL()         { return tsl;   } 
96
97 
98     
99private:
100   
101    double Pression;
102    double Temp;
103    double Longitude;
104    double Latitude;
105    double JJ;
106    double CorP;
107    double CorEP;
108    double Annee;
109    double Mois;
110    double Jour;
111    double Heure;
112    double Min;
113    double Sec;
114    double ep;
115    double hs;
116    double UTCP;
117    double tsl;
118    double LongitudeSoleil;
119 
120};
121
122
123#endif
Note: See TracBrowser for help on using the repository browser.