[228] | 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 */
|
---|