00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef CASA_PGPLOTTER_H
00030 #define CASA_PGPLOTTER_H
00031
00032 #include <casacore/casa/aips.h>
00033 #include <casacore/casa/System/PGPlotterInterface.h>
00034 #include <casacore/casa/Utilities/CountedPtr.h>
00035
00036 namespace casacore {
00037
00038 class String;
00039 template<class T> class Vector;
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 class PGPlotter : public PGPlotterInterface
00096 {
00097 public:
00098
00099 typedef PGPlotter CreateFunction (const String &device,
00100 uInt mincolors, uInt maxcolors,
00101 uInt sizex, uInt sizey);
00102
00103
00104
00105
00106 PGPlotter();
00107
00108
00109 PGPlotter (const String &device,
00110 uInt mincolors=2, uInt maxcolors=100,
00111 uInt sizex=600, uInt sizey=450);
00112
00113
00114
00115 PGPlotter (PGPlotterInterface*);
00116
00117
00118
00119
00120 PGPlotter(const PGPlotter &other);
00121 PGPlotter &operator=(const PGPlotter &other);
00122
00123
00124
00125 virtual ~PGPlotter();
00126
00127
00128 static PGPlotter create (const String &device,
00129 uInt mincolors=2, uInt maxcolors=100,
00130 uInt sizex=600, uInt sizey=450);
00131
00132
00133
00134
00135
00136
00137 static CreateFunction* setCreateFunction (CreateFunction*,
00138 Bool override=True);
00139
00140
00141 virtual Bool isAttached() const;
00142
00143
00144
00145 void detach();
00146
00147
00148
00149
00150
00151 virtual void message(const String &text);
00152
00153
00154
00155
00156
00157
00158
00159 virtual Record curs(Float x, Float y);
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172 virtual void arro(Float x1, Float y1, Float x2, Float y2);
00173 virtual void ask(Bool flag);
00174 virtual void bbuf();
00175 virtual void bin(const Vector<Float> &x, const Vector<Float> &data,
00176 Bool center);
00177 virtual void box(const String &xopt, Float xtick, Int nxsub,
00178 const String &yopt, Float ytick, Int nysub);
00179 virtual void circ(Float xcent, Float ycent, Float radius);
00180 virtual void conb(const Matrix<Float> &a, const Vector<Float> &c,
00181 const Vector<Float> &tr, Float blank);
00182 virtual void conl(const Matrix<Float> &a, Float c,
00183 const Vector<Float> &tr, const String &label,
00184 Int intval, Int minint);
00185 virtual void cons(const Matrix<Float> &a, const Vector<Float> &c,
00186 const Vector<Float> &tr);
00187 virtual void cont(const Matrix<Float> &a, const Vector<Float> &c,
00188 Bool nc, const Vector<Float> &tr);
00189 virtual void ctab(const Vector<Float> &l, const Vector<Float> &r,
00190 const Vector<Float> &g, const Vector<Float> &b,
00191 Float contra, Float bright);
00192 virtual void draw(Float x, Float y);
00193 virtual void ebuf();
00194 virtual void env(Float xmin, Float xmax, Float ymin, Float ymax, Int just,
00195 Int axis);
00196 virtual void eras();
00197 virtual void errb(Int dir, const Vector<Float> &x, const Vector<Float> &y,
00198 const Vector<Float> &e, Float t);
00199 virtual void errx(const Vector<Float> &x1, const Vector<Float> &x2,
00200 const Vector<Float> &y, Float t);
00201 virtual void erry(const Vector<Float> &x, const Vector<Float> &y1,
00202 const Vector<Float> &y2, Float t);
00203 virtual void gray(const Matrix<Float> &a, Float fg, Float bg,
00204 const Vector<Float> &tr);
00205 virtual void hi2d(const Matrix<Float> &data, const Vector<Float> &x,
00206 Int ioff, Float bias, Bool center,
00207 const Vector<Float> &ylims);
00208 virtual void hist(const Vector<Float> &data, Float datmin, Float datmax,
00209 Int nbin, Int pcflag);
00210 virtual void iden();
00211 virtual void imag(const Matrix<Float> &a, Float a1, Float a2,
00212 const Vector<Float> &tr);
00213 virtual void lab(const String &xlbl, const String &ylbl,
00214 const String &toplbl);
00215 virtual void ldev();
00216 virtual Vector<Float> len(Int units, const String &string);
00217 virtual void line(const Vector<Float> &xpts, const Vector<Float> &ypts);
00218 virtual void move(Float x, Float y);
00219 virtual void mtxt(const String &side, Float disp, Float coord, Float fjust,
00220 const String &text);
00221 virtual String numb(Int mm, Int pp, Int form);
00222 virtual void page();
00223 virtual void panl(Int ix, Int iy);
00224 virtual void pap(Float width, Float aspect);
00225 virtual void pixl(const Matrix<Int> &ia, Float x1, Float x2,
00226 Float y1, Float y2);
00227 virtual void pnts(const Vector<Float> &x, const Vector<Float> &y,
00228 const Vector<Int> symbol);
00229 virtual void poly(const Vector<Float> &xpts, const Vector<Float> &ypts);
00230 virtual void pt(const Vector<Float> &xpts, const Vector<Float> &ypts,
00231 Int symbol);
00232 virtual void ptxt(Float x, Float y, Float angle, Float fjust,
00233 const String &text);
00234 virtual Vector<Float> qah();
00235 virtual Int qcf();
00236 virtual Float qch();
00237 virtual Int qci();
00238 virtual Vector<Int> qcir();
00239 virtual Vector<Int> qcol();
00240 virtual Vector<Float> qcr(Int ci);
00241 virtual Vector<Float> qcs(Int units);
00242 virtual Int qfs();
00243 virtual Vector<Float> qhs();
00244 virtual Int qid();
00245 virtual String qinf(const String &item);
00246 virtual Int qitf();
00247 virtual Int qls();
00248 virtual Int qlw();
00249 virtual Vector<Float> qpos();
00250 virtual Int qtbg();
00251 virtual Vector<Float> qtxt(Float x, Float y, Float angle, Float fjust,
00252 const String &text);
00253 virtual Vector<Float> qvp(Int units);
00254 virtual Vector<Float> qvsz(Int units);
00255 virtual Vector<Float> qwin();
00256 virtual void rect(Float x1, Float x2, Float y1, Float y2);
00257 virtual Float rnd(Float x, Int nsub);
00258 virtual Vector<Float> rnge(Float x1, Float x2);
00259 virtual void sah(Int fs, Float angle, Float vent);
00260 virtual void save();
00261 virtual void scf(Int font);
00262 virtual void sch(Float size);
00263 virtual void sci(Int ci);
00264 virtual void scir(Int icilo, Int icihi);
00265 virtual void scr(Int ci, Float cr, Float cg, Float cb);
00266 virtual void scrn(Int ci, const String &name);
00267 virtual void sfs(Int fs);
00268 virtual void shls(Int ci, Float ch, Float cl, Float cs);
00269 virtual void shs(Float angle, Float sepn, Float phase);
00270 virtual void sitf(Int itf);
00271 virtual void sls(Int ls);
00272 virtual void slw(Int lw);
00273 virtual void stbg(Int tbci);
00274 virtual void subp(Int nxsub, Int nysub);
00275 virtual void svp(Float xleft, Float xright, Float ybot, Float ytop);
00276 virtual void swin(Float x1, Float x2, Float y1, Float y2);
00277 virtual void tbox(const String &xopt, Float xtick, Int nxsub,
00278 const String &yopt, Float ytick, Int nysub);
00279 virtual void text(Float x, Float y, const String &text);
00280 virtual void unsa();
00281 virtual void updt();
00282 virtual void vect(const Matrix<Float> &a, const Matrix<Float> &b,
00283 Float c, Int nc,
00284 const Vector<Float> &tr, Float blank);
00285 virtual void vsiz(Float xleft, Float xright, Float ybot,
00286 Float ytop);
00287 virtual void vstd();
00288 virtual void wedg(const String &side, Float disp, Float width,
00289 Float fg, Float bg, const String &label);
00290 virtual void wnad(Float x1, Float x2, Float y1, Float y2);
00291
00292 private:
00293 CountedPtr<PGPlotterInterface> worker_p;
00294 static CreateFunction* creator_p;
00295
00296
00297 void ok() const;
00298 };
00299
00300
00301 }
00302
00303 #endif