Mapper
plot_pcpn_rsel_new.c
Go to the documentation of this file.
1 
2 #include "prototypes_new.h"
3 
4 void plot_pcpn(Pixmap pixm,int h, int display_flag,char *file,int num)
5 
6 {
7 
8 extern int dmvalue;
9 extern int pcpn_time_step;
10 extern int xrsmode;
11 extern int wfo_all;
12 extern int wfo_in_use[20];
13 int m;
14 extern struct pcp *pcp;
15 extern struct pcp *spf;
16 extern int pcp_in_use[200];
17 extern Font font[10];
18 extern XFontStruct *info_font[10];
19 extern Display *display;
20 extern int npoint[2],zoom;
21 extern int kscale;
22 extern GC gc;
23 extern unsigned long xmap[16];
24 extern Widget drawing_area;
25 extern float delim[][16];
26 extern struct display_set display_set[4];
27 extern struct hrap_grid *hrap_grid;
28 int i,j,k;
29 int color,MY=10;
30 float xrat,yrat,mult,dmult,cmult;
31 int nx[4],ny[4];
32 Dimension width,height;
33 Arg args[10];
34 signed long XSIZE,YSIZE;
35 XPoint point[5];
36 long xmin,xmax,ymin,ymax;
37 signed long xcen,ycen,lint1,lint2;
38 int di[4],dj[4],dy,dx,yheight;
39 float value;
40 int i1;
41 
42 XSetFont(display,gc,font[4]);
43 yheight=info_font[4]->ascent+2;
44 
45 if(pcpn_time_step==0 && xrsmode != 1) {
46 
47  i1=1;
48 
49  if(num==0)
50  i1=0;
51 
52  if(pcp_in_use[num+100]!=-1 && pcp_in_use[num+100-i1]!=-1) {
53 
54  read_file(file,num+100,spf);
55  read_file(file,num+100-i1,pcp);
56 
57  for(i=0;i<hrap_grid->maxi-1;i++) {
58 
59  for(j=0;j<hrap_grid->maxj-1;j++) {
60 
61  spf->value[i][j]=(spf->value[i][j] +
62  pcp->value[i][j])/2;
63 
64 
65 
66  }
67 
68  }
69 
70 
71  }
72 
73 
74 
75  }
76 
77 if(pcp_in_use[num]==-1)
78  return;
79 
80 read_file(file,num,pcp);
81 
82 dx=1;dy=1;
83 
84 di[0]=0;dj[0]=0;
85 di[1]=1;dj[1]=0;
86 di[2]=1;dj[2]=1;
87 di[3]=0;dj[3]=1;
88 
96 
97 XtSetArg(args[0],XtNwidth,&width);
98 XtSetArg(args[1],XtNheight,&height);
99 XtGetValues(drawing_area,args,2);
100 
101 XSIZE=(long)width*10L;
102 YSIZE=(long)height*10L;
103 
104 xrat=(float)XSIZE/(float)12800;
105 yrat=(float)YSIZE/(float)9600;
106 
107 if(xrat < yrat)
108  mult=xrat;
109 
110 else
111  mult=yrat;
112 
114 lint1=(long)npoint[0]*(long)MY;
115 lint2=(long)npoint[1]*(long)MY;
116 
117 XSetFillRule(display,gc,WindingRule);
118 
119 for(i=0;i<hrap_grid->maxi-1;i++) {
120 
121 for(j=0;j<hrap_grid->maxj-1;j++) {
122 
123  if(hrap_grid->owner[i][j]==-1)
124  continue;
125 
126  if(wfo_all != 1) {
127 
128  for(m=0;m<20;m++) {
129 
130  if(wfo_in_use[m] == -1)
131  break;
132 
133  if(hrap_grid->owner[i][j]==wfo_in_use[m])
134  break;
135 
136  }
137 
138  if(wfo_in_use[m]==-1)
139  continue;
140 
141  }
142 
143  value=(float)pcp->value[i][j]/100;
144 
145  if(value<=0.01 && value >=-0.01)
146  continue;
147 
148  for(k=0;k<7;k++) {
149 
150  if(value >= delim[kscale][k] &&
151  value < delim[kscale][k+1]) {
152 
153  color=xmap[k];
154  break;
155 
156  }
157 
158  }
159 
160  if(k==7)
161  color=xmap[7];
162 
163  if(color==0)
164  continue;
165 
166  if(xrsmode != 1 &&
167  pcp_in_use[100+num] != -1 &&
168  pcp_in_use[100+num-i1] != -1) {
169 
170  if(xrsmode==0 &&
171  (spf->value[i][j] * 10 - dmvalue < hrap_grid->elev[i][j]))
172  color=xmap[k+8];
173 
174 
175  }
176 
177  XSetForeground(display,gc,color);
178 
179  if(zoom <= 1) {
180 
181  for(k=0;k<4;k++) {
182 
183  nx[k]=xmin+(float)hrap_grid->coord[i+di[k]][j+dj[k]].x*cmult;
184  ny[k]=ymin+(float)hrap_grid->coord[i+di[k]][j+dj[k]].y*cmult;
185 
186  }
187  }
188 
189  else {
190 
191  for(k=0;k<4;k++) {
192 
193  nx[k]=(xmin+((float)hrap_grid->coord[i+di[k]][j+dj[k]].x*
194  cmult-lint1))*zoom + xcen;
195  ny[k]=(ymin+((float)hrap_grid->coord[i+di[k]][j+dj[k]].y*
196  cmult-lint2))*zoom + ycen;
197 
198 
199  }
200 
201  }
202 
203 
204  for(k=0;k<4;k++) {
205 
206  point[k].x=(nx[k]+5)/MY;
207  point[k].y=(ny[k]+5)/MY;
208 
209 
210  }
211 
212  point[4].x=point[0].x;
213  point[4].y=point[0].y;
214 
215  XFillPolygon(display,pixm,gc,point,5,Convex,CoordModeOrigin);
216 
217 
218  }
219 
220 }
221 
222 return;
223 
224 }
225 
226 
227 
228 
229 
230 
231 
232 
233 
234 
235 
236 
237 
238 
239 
240 
241 
242 
243 
244 
245 
246 
247 
248 
249 
250 
251 
252 
253 
254 
255 
256 
257 
258 
259 
260 
261 
262 
263 
264 
265 
266 
267 
268 
269 
270 
271 
272 
273 
274 
275 
276 
277 
278 
279 
280 
281 
282 
283 
284 
285 
286 
287 
288 
static int i
XFontStruct * info_font[10]
Definition: mapper.c:195
Display * display
Definition: mapper.c:159
Font font[10]
Definition: mapper.c:161
float mult
Definition: edit_stations.c:6
void read_file(char *, int, struct pcp *)
Definition: read_file.c:5
int j
Definition: mapp2h.h:48
int elev
Definition: mapp2h.h:48
int k
Definition: mapp2h.h:48
int pcpn_time_step
Definition: mapper.c:75
struct pcp * spf
Definition: mapper.c:141
int display_flag
Definition: mapper.c:100
void plot_pcpn(Pixmap pixm, int h, int display_flag, char *file, int num)
float xrat
long xmax
int dj[4]
int color
float value
float yrat
long ny[4]
long ymax
struct pcp * pcp
Definition: mapper.c:140
int dy
int pcp_in_use[50]
Definition: mapper.c:78
long lint1
GC gc
Definition: mapper.c:163
int dx
struct hrap_grid * hrap_grid
Definition: mapper.c:142
float cmult
unsigned long xmap[16]
Definition: mapper.c:116
signed long xcen
Dimension height
signed long ycen
Dimension width
int yheight
long lint2
Arg args[10]
long xmin
unsigned long XSIZE
int MY
int zoom
float delim[][16]
Definition: mapper.c:30
long nx[4]
float dmult
Widget drawing_area
Definition: mapper.c:185
int npoint[2]
Definition: mapper.c:105
long ymin
unsigned long YSIZE
int kscale
Definition: mapper.c:101
int di[4]
short int y
Definition: misc.h:498
short int x
Definition: misc.h:497
float dmult[4]
Definition: misc.h:613
long xmin[4]
Definition: misc.h:607
long xmax[4]
Definition: misc.h:609
long ymax[4]
Definition: misc.h:610
long ymin[4]
Definition: misc.h:608
long ycen[4]
Definition: misc.h:612
long xcen[4]
Definition: misc.h:611
short int maxi
Definition: misc.h:580
short int maxj
Definition: misc.h:581
struct coord ** coord
Definition: misc.h:584
short int ** owner
Definition: misc_new.h:811
Definition: misc.h:596
short int ** value
Definition: misc.h:599
Definition: mapp2h.h:29
int y
Definition: mapp2h.h:30
int x
Definition: mapp2h.h:30