1 | #ifndef SCAN_H_SEEN
|
---|
2 | #define SCAN_H_SEEN
|
---|
3 |
|
---|
4 |
|
---|
5 | // includes PEIDA
|
---|
6 | #include "ppersist.h"
|
---|
7 | #include <iostream.h>
|
---|
8 | #include "dvlist.h"
|
---|
9 | class Scan : public PPersist {
|
---|
10 |
|
---|
11 | public :
|
---|
12 | /*
|
---|
13 | arguments du constructeur :
|
---|
14 | . ouverture (radians),
|
---|
15 | . un tableau de 3 reels (deux angles-en radians- definissant la direction de
|
---|
16 | l'axe de rotation du satellite + vitesse de rotation
|
---|
17 | en radians/s),
|
---|
18 | . frequence d'echantillonnage (Hz),
|
---|
19 | . instant final de prise de donnees (s),
|
---|
20 | deux arguments optionnels :
|
---|
21 | . instant initial pour la prise de donnees
|
---|
22 | . offset d'antenne en angle phi
|
---|
23 | */
|
---|
24 | Scan(float,float*,float,float,float,float);
|
---|
25 | Scan(const Scan& );
|
---|
26 | Scan() {
|
---|
27 | InitNull();
|
---|
28 | cout << " constructeur de scan par defaut" << endl;
|
---|
29 | }
|
---|
30 | ~Scan();
|
---|
31 |
|
---|
32 | // ------------ Persistence handling
|
---|
33 |
|
---|
34 | enum {classId = 0xF003 };
|
---|
35 | int_4 ClassId() const { return classId; }
|
---|
36 |
|
---|
37 | virtual void WriteSelf(POutPersist&) const;
|
---|
38 | virtual void ReadSelf(PInPersist&);
|
---|
39 |
|
---|
40 | int_4 NbPoints() const;
|
---|
41 | int_4 NbTours() const;
|
---|
42 | int_4 NbPts1Tr() const;
|
---|
43 | int_4 ValueIndex(float) const;
|
---|
44 | void Direction(float, float& ,float& );
|
---|
45 | void DirectionIndex(int_4,float& ,float& );
|
---|
46 | double& PixelValue(int_4 k) const;
|
---|
47 |
|
---|
48 | /* Surcharge de la parenthese a un indice entier : remplit ou/et renvoie */
|
---|
49 | /* la valeur du contenu du pixel d'indice k */
|
---|
50 |
|
---|
51 | inline double& operator()(int_4 k)
|
---|
52 | { return(PixelValue(k)) ; } ;
|
---|
53 | //++
|
---|
54 | DVList& Info()
|
---|
55 | //
|
---|
56 | // Renvoie une reference sur l'objet DVList Associe
|
---|
57 | //--
|
---|
58 | {
|
---|
59 | if (mInfo_ == NULL) mInfo_ = new DVList;
|
---|
60 | return(*mInfo_);
|
---|
61 | }
|
---|
62 |
|
---|
63 |
|
---|
64 | private :
|
---|
65 |
|
---|
66 | void Clear();
|
---|
67 | void InitNull();
|
---|
68 |
|
---|
69 | int_4 NmaxPts_;
|
---|
70 | int_4 NmaxTrs_;
|
---|
71 | int_4 NPts1Tr_;
|
---|
72 | r_4 Ouverture_;
|
---|
73 | r_4 OmegaTeta_; /* direction de l'axe de rotation du satellite */
|
---|
74 | r_4 OmegaPhi_; /* (radians) */
|
---|
75 | r_4 OmegaRad_; /* vitesse de rotation du satellite (radians/s) */
|
---|
76 | r_4 FrequenceEch_; /* frequence d'echantillonnage (Hz)*/
|
---|
77 | r_4 TempsFinal_;
|
---|
78 | r_4 TempsInitial_;
|
---|
79 | r_4 PhiZero_; /* Offset antenne (radians) */
|
---|
80 | r_8* sPix_; /* valeurs contenues dans chaque pixel */
|
---|
81 | r_8 Rota_[9]; /* matrice de passage : [Xf]=[Rota][Xs] */
|
---|
82 | /* Xs : coordonnees dans un systeme lie au satellite*/
|
---|
83 | /* Xf : coordonnees dans un repere "fixe" */
|
---|
84 | DVList* mInfo_; // Infos (variables) attachees
|
---|
85 | };
|
---|
86 |
|
---|
87 |
|
---|
88 | #endif /* SCAN_H_SEEN */
|
---|