00001 #ifndef _WINC_RCMPLOT
00002 #define _WINC_RCMPLOT
00003
00004 #include <WXP/Date.h>
00005 #include <WXP/DatumPlot.h>
00006 #include <WXP/Domain.h>
00007 #include <WXP/Drawing.h>
00008 #include <WXP/Filename.h>
00009 #include <WXP/Grid.h>
00010 #include <WXP/GridPlot.h>
00011 #include <WXP/Image.h>
00012 #include <WXP/ImagePlot.h>
00013 #include <WXP/Lev2Plot.h>
00014 #include <WXP/Listener.h>
00015 #include <WXP/NidsPlot.h>
00016 #include <WXP/Plot.h>
00017 #include <WXP/RcmData.h>
00018 #include <WXP/RcmDomain.h>
00019 #include <WXP/String.h>
00020 #include <WXP/Timezone.h>
00021 #include <WXP/Unit.h>
00022 #include <WXP/VarList.h>
00023
00024 namespace WXP {
00025 class RcmPlot : public Drawing, public Listener {
00026 Filename filename;
00027 Date date;
00028 int type;
00029 int bar;
00030 int fill;
00031 bool draw_plot;
00032 bool draw_data;
00033 String color_table;
00034 String color_fill;
00035 String color;
00036 String variable;
00037 char id[5];
00038 RcmDomain rdom;
00039 DatumPlot dplot;
00040 GridCont gcont;
00041 ImagePlot img;
00042 int plt_site;
00043 float plt_dist[5];
00044 char cutoff[20];
00045 int ramp_prec_cut;
00046 int ramp_prec_len;
00047 int ramp_clar_cut;
00048 int ramp_clar_len;
00049 int clutter;
00050 int filter;
00051 int min_hgt;
00052 int num_plt;
00053 int no_clair;
00054 Timezone tz;
00055 VarList vars;
00056 Unit unit;
00057 int num;
00058 int sync;
00059
00060 public:
00061 RcmPlot();
00062 RcmPlot( const char *str );
00063 int init();
00064 int setParam( const char *str );
00065 int setPath( const char *path );
00066 int setFile();
00067 int setInput( const char *rtype );
00068 int getType( const char *rtype );
00069 int setNameConv( const char *name );
00070 int setHour( const char *str );
00071 int setFilename();
00072 int setFilename( const char *name );
00073 int setFilename( Date &date );
00074 int setFilename( Date &date, const char *param );
00075 inline int setForeTime( const char *fore ){ return 1; };
00076 int setColorTable( const char *str );
00077 int setColor( const char *str );
00078 int setColorFill( const char *str );
00079 int setVariable( const char *str );
00080 int setMap( bool val );
00081 int setId( const char *str );
00082 int getDate( Date &date );
00083 int getInitDate( Date &date );
00084 int getDateOffset();
00085 int getLoopType();
00086 int getNumFrames();
00087 int getDomain( Domain &domain );
00088 inline int getSync(){ return sync; };
00089 int draw( Plot &plot, Grid &grid );
00090 int draw( Plot &plot, Image &image );
00091 int draw( Plot &plot );
00092 const char *getUnits( const char *name );
00093 int toImage( RcmData &rdata, Image &image );
00094 int getData( RcmData &storm, VarSpec &spec, Datum &datum );
00095 int drawData( Plot &plot, RcmData &rdata );
00096 void callback( const char *ev_str, const char *ev_data, const void *data );
00097 int print();
00098
00099 enum Type {
00100 SITE,
00101 MOS,
00102 MOSG
00103 };
00104 };
00105 }
00106 #endif