00001 #ifndef _WINC_METEOPLOT
00002 #define _WINC_METEOPLOT
00003
00004 #include <WXP/Date.h>
00005 #include <WXP/Drawing.h>
00006 #include <WXP/Filename.h>
00007 #include <WXP/Listener.h>
00008 #include <WXP/Plot.h>
00009 #include <WXP/Range.h>
00010 #include <WXP/Rect.h>
00011 #include <WXP/SfcData.h>
00012 #include <WXP/String.h>
00013 #include <WXP/VarSpec.h>
00014
00015 namespace WXP {
00016 class MeteoPlot : public Drawing, public Listener {
00017 int type;
00018 int sync;
00019 Filename filename;
00020 char model[10];
00021 char mlabel[20];
00022 String variable;
00023 PlotAttr gattr;
00024 PlotAttr dattr;
00025 PlotAttr tattr;
00026 Date sdate, edate;
00027 Timezone tz;
00028
00029 int num;
00030 float size;
00031 float offset;
00032 float ymax, ymin;
00033 float inc;
00034 Rect view;
00035 Rect pview;
00036 int ptype;
00037 int hours[50];
00038
00039 enum PType {
00040 NORMAL,
00041 CPLOT
00042 };
00043
00044 public:
00045 MeteoPlot();
00046 MeteoPlot( const char *param );
00047 int init();
00048 int setType( int rtype );
00049 int setType( const char *str );
00050 int getType();
00051 int setParam( const char *str );
00052 int setFile();
00053 int setInput( const char *type );
00054 int setNameConv( const char *name );
00055 int setHour( const char *str );
00056 int setFilename();
00057 int setFilename( const char *name );
00058 int setFilename( Date &date );
00059 int setFilename( Date &date, const char *param );
00060 inline int setForeTime( const char *fore ){ return 1; };
00061 int setModel( const char *str );
00062 int promptId();
00063 int getDate( Date &date );
00064 int getInitDate( Date &date );
00065 int getDateOffset();
00066 int getLoopType();
00067 int getNumFrames();
00068 int getDomain( Domain &domain );
00069 inline int getSync(){ return sync; };
00070 int getSfcStation( const char *id, SfcData sdata[], int num );
00071 int getMosStation( const char *id, SfcData sdata[], int num );
00072 int getRange( SfcData data[], int num, VarSpec &spec, Range &range );
00073 float getX( float x );
00074 float getY( float y );
00075 int setPlotSize( VarSpec &spec, int type );
00076 int nextPlot();
00077 int setPlot( VarSpec &spec, Range &range );
00078 int drawGrid( Plot &plot, const char *label );
00079 int drawData( Plot &plot, SfcData data[], int num, VarSpec &spec );
00080 int drawPlot( Plot &plot, SfcData data[], int num, VarSpec &spec );
00081 int draw( Plot &plot );
00082 int draw( Plot &plot, SfcData data[], int rnum );
00083 void callback( const char *ev_str, const char *ev_data, const void *data );
00084 int print();
00085
00086 enum Type {
00087 PLOT,
00088 DATA
00089 };
00090 enum {
00091 SFC,
00092 MOS
00093 };
00094 };
00095 }
00096 #endif