00001 #ifndef _WINC_MDRDATA
00002 #define _WINC_MDRDATA
00003
00004 #include <WXP/Const.h>
00005 #include <WXP/Date.h>
00006 #include <WXP/EarthPoint.h>
00007 #include <WXP/MdrRegion.h>
00008
00009 namespace WXP {
00010
00011 class MdrData {
00012 char id[5];
00013 char region[11];
00014 float lat,lon;
00015 float elev;
00016 Date date;
00017
00018 int status;
00019
00020 MdrRegion reg[10];
00021 int num_reg;
00022
00023 char echo[26][26];
00024
00025 public:
00026 MdrData();
00027 int init();
00028 inline const char *getId(){ return id; };
00029 int setLoc( float rlat, float rlon );
00030 inline Date getDate(){ return date; };
00031 inline int getStatus(){ return status; };
00032 inline int getPrecipCover( int ind, int pind ){ return reg[ind].prec[pind].cover; };
00033 inline const char *getPrecipType( int ind, int pind ){ return reg[ind].prec[pind].type; };
00034 inline int getPrecipIntensity( int ind, int pind ){ return reg[ind].prec[pind].intens; };
00035 inline int getNumPrecip( int ind ){ return reg[ind].num_prec; };
00036 inline float getLocDir( int ind, int pind ){ return reg[ind].loc[pind].dir; };
00037 inline float getLocRad( int ind, int pind ){ return reg[ind].loc[pind].rad; };
00038 inline int getNumLoc( int ind ){ return reg[ind].num_loc; };
00039 int getRegLoc( int ind, EarthPoint &ept );
00040 inline bool validTops( int ind ){ return reg[ind].tops.dir != Const::MISS ? true : false; };
00041 inline float getTopsDir( int ind ){ return reg[ind].tops.dir; };
00042 inline float getTopsRad( int ind ){ return reg[ind].tops.rad; };
00043 inline float getTopsHgt( int ind ){ return reg[ind].tops.hgt; };
00044 int getTopsLoc( int ind, EarthPoint &ept );
00045 inline char getMoveType( int ind, int pind ){ return reg[ind].move[pind].type; };
00046 inline float getMoveDir( int ind, int pind ){ return reg[ind].move[pind].dir; };
00047 inline float getMoveSpd( int ind, int pind ){ return reg[ind].move[pind].spd; };
00048 inline int getNumMove( int ind ){ return reg[ind].num_move; };
00049 inline int getNumReg(){ return num_reg; };
00050
00051 int print();
00052 int printEchoes();
00053
00054 enum Status {
00055 NA,
00056 NE,
00057 OM,
00058 PR
00059 };
00060
00061 friend class MdrFile;
00062 friend class MdrWxpFile;
00063 friend class MdrImage;
00064 friend class MdrPlot;
00065 friend class MdrDecode;
00066 };
00067 }
00068 #endif