source: BAORadio/libindi/libindi/drivers/telescope/astro.h @ 623

Last change on this file since 623 was 504, checked in by frichard, 13 years ago

-Version 0.8 de libini
-Formule de Marc
-Nouvelles fonctionnalités (goto nom-de l'objet etc...)

File size: 3.1 KB
RevLine 
[504]1////////////////////////////////
2// Classe Astro               //
3// Franck RICHARD             //
4// BAORadio                   //
5// franckrichard033@gmail.com //
6// juin 2011                  //
7////////////////////////////////
[490]8
9#ifndef Astro_class
10#define Astro_class
11
12#include "math.h"
[504]13#include "stdio.h"
14#include <iostream>
15#include <string.h>
16#include <sstream>
17#include <iomanip>
[490]18
[504]19using namespace std;
20
[490]21//////////////////////////////
22// Constantes Mathématiques //
23//////////////////////////////
24
25#define Pi              3.14159265358979323846264338327
26#define Pidiv180        0.01745329251994329576923690768
27#define N180divPi       57.2957795130823208767981548141
28#define Pi2             6.28318530717958647692528676655
29#define Pidiv2          1.57079632679489661923132169163
30
[504]31#define gmax(A,B) ((A)>(B)?(A):(B))
[490]32
[504]33#define gmin(A,B) ((A)<(B)?(A):(B))
34
35
36struct Coordonnees
[490]37{
[504]38    string ar;                          // Coordonnées horaires d'un objet
39    string dec;
40};
41
42class Astro
43{
[490]44public:
45    Astro();
46    ~Astro();
47
[504]48    void   DefinirDateHeure(double Annee, double Mois, double Jour, double Heu, double Min, double Sec);
49    void   DefinirPressionTemp(double P, double T);
50    void   DefinirLongitudeLatitude(double log, double lat);
[490]51    double VerifAngle(double Angle);
[504]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   Precession(double *ar, double *de);
56    void   NutationEtoile(double *ar, double *de);
57    void   AberrationAnnuelle(double *ar, double *de);
58    void   CalculJJ(double Heure);
59    double CalculJJ(double A, double M, double J, double Heure);
60    void   CalculTSL(); 
61    double RefractionAtmospherique(double ht);
62    double CalculLongitudeSoleil();
[490]63    double TSL(double JJ,double HeureSiderale,double Longitude);
[504]64    void   Nutation();
65    void   Obliquite(double JJ);
66    void   atms ( double rt, double tt, double dnt, double gamal, double r,
67                   double *dn, double *rdndr );
68    void   atmt ( double robs, double tdkok, double alpha, double gamm2,
69                   double delm2, double c1, double c2, double c3,
70                   double c4, double c5, double c6, double r,
71                   double *t, double *dn, double *rdndr );
72    void   slaRefro ( double zobs, double hm, double tdk, double pmb,
73                double rh, double wl, double phi, double tlr,
74                double eps, double *ref );
75    float  slaRange(float angle );
76    double slaDrange(double angle );
77    void   CalculARDecSoleil(Coordonnees *Soleil);
[490]78   
[504]79   
80    double GetAnnee() { return Annee; }
81    double GetMois()  { return Mois;  }
82    double GetJour()  { return Jour;  }
83    double GetHeure() { return Heure; }
84    double GetMin()   { return Min;   }
85    double GetSec()   { return Sec;   }
86    double GetJJ()    { return JJ;    } 
87
88 
89   
90   
91private:
[490]92    double Longitude;
93    double Latitude;
94    double JJ;
95    double CorP;
96    double CorEP;
97    double Annee;
98    double Mois;
99    double Jour;
[504]100    double Heure;
[490]101    double Min;
102    double Sec;
103    double ep;
104    double hs;
105    double UTCP;
106    double tsl;
[504]107    double LongitudeSoleil;
108    double Pression;
109    double Temp;
[490]110};
111
112
113#endif
Note: See TracBrowser for help on using the repository browser.