Mapper
plot_frz.c
Go to the documentation of this file.
1 
2 #include "prototypes_new.h"
3 
4 void plot_frz(Pixmap pixm,int h, int display_flag,char *file,int num)
5 
6 {
7 
8 extern int dmvalue;
9 extern int abmode;
10 extern int wfo_all;
11 extern int wfo_in_use[20];
12 int m;
13 extern struct pcp *pcp;
14 extern int pcp_in_use[500];
15 extern Font font[10];
16 extern XFontStruct *info_font[10];
17 extern Display *display;
18 extern int npoint[2],zoom;
19 extern int zscale;
20 extern GC gc;
21 extern unsigned long xmap[16];
22 extern Widget drawing_area;
23 extern float delim[][16];
24 extern struct display_set display_set[4];
25 extern struct hrap_grid *hrap_grid;
26 int i,j,k;
27 int color,MY=10;
28 float xrat,yrat,mult,dmult,cmult;
29 int nx[4],ny[4];
30 Dimension width,height;
31 Arg args[10];
32 signed long XSIZE,YSIZE;
33 XPoint point[5];
34 long xmin,xmax,ymin,ymax;
35 signed long xcen,ycen,lint1,lint2;
36 int di[4],dj[4],dy,dx,yheight;
37 float value;
38 
39 XSetFont(display,gc,font[4]);
40 yheight=info_font[4]->ascent+2;
41 
42 if(pcp_in_use[num]==-1)
43  return;
44 
45 read_file(file,num,pcp);
46 
47 dx=1;dy=1;
48 
49 di[0]=0;dj[0]=0;
50 di[1]=1;dj[1]=0;
51 di[2]=1;dj[2]=1;
52 di[3]=0;dj[3]=1;
53 
61 
62 XtSetArg(args[0],XtNwidth,&width);
63 XtSetArg(args[1],XtNheight,&height);
64 XtGetValues(drawing_area,args,2);
65 
66 XSIZE=(long)width*10L;
67 YSIZE=(long)height*10L;
68 
69 xrat=(float)XSIZE/(float)12800;
70 yrat=(float)YSIZE/(float)9600;
71 
72 if(xrat < yrat)
73  mult=xrat;
74 
75 else
76  mult=yrat;
77 
79 lint1=(long)npoint[0]*(long)MY;
80 lint2=(long)npoint[1]*(long)MY;
81 
82 XSetFillRule(display,gc,WindingRule);
83 
84 for(i=0;i<hrap_grid->maxi-1;i++) {
85 
86 for(j=0;j<hrap_grid->maxj-1;j++) {
87 
88  if(hrap_grid->owner[i][j]==-1)
89  continue;
90 
91  if(wfo_all != 1) {
92 
93  for(m=0;m<20;m++) {
94 
95  if(wfo_in_use[m] == -1)
96  break;
97 
98  if(hrap_grid->owner[i][j]==wfo_in_use[m])
99  break;
100 
101  }
102 
103  if(wfo_in_use[m]==-1)
104  continue;
105 
106  }
107 
108  value=(float)pcp->value[i][j]/100;
109 
110  if(value<=0.01 && value >=-0.01)
111  continue;
112 
113 
114  for(k=0;k<15;k++) {
115 
116  if(value >= delim[zscale][k] &&
117  value < delim[zscale][k+1]) {
118 
119  color=xmap[k];
120  break;
121 
122  }
123 
124  }
125 
126  if(k==15)
127  color=xmap[15];
128 
129  if(value < -99.98)
130  color=xmap[7];
131 
132  if(color==0)
133  continue;
134 
135  if(abmode != 2) {
136 
137  if(abmode==0 &&
138  (pcp->value[i][j] * 10 - dmvalue < hrap_grid->elev[i][j]))
139  continue;
140 
141 
142  if(abmode==1 &&
143  (pcp->value[i][j] * 10 - dmvalue > hrap_grid->elev[i][j]))
144  continue;
145 
146  }
147 
148  XSetForeground(display,gc,color);
149 
150  if(zoom <= 1) {
151 
152  for(k=0;k<4;k++) {
153 
154  nx[k]=xmin+(float)hrap_grid->coord[i+di[k]][j+dj[k]].x*cmult;
155  ny[k]=ymin+(float)hrap_grid->coord[i+di[k]][j+dj[k]].y*cmult;
156 
157  }
158  }
159 
160  else {
161 
162  for(k=0;k<4;k++) {
163 
164  nx[k]=(xmin+((float)hrap_grid->coord[i+di[k]][j+dj[k]].x*
165  cmult-lint1))*zoom + xcen;
166  ny[k]=(ymin+((float)hrap_grid->coord[i+di[k]][j+dj[k]].y*
167  cmult-lint2))*zoom + ycen;
168 
169 
170  }
171 
172  }
173 
174 
175  for(k=0;k<4;k++) {
176 
177  point[k].x=(nx[k]+5)/MY;
178  point[k].y=(ny[k]+5)/MY;
179 
180 
181  }
182 
183  point[4].x=point[0].x;
184  point[4].y=point[0].y;
185 
186  XFillPolygon(display,pixm,gc,point,5,Convex,CoordModeOrigin);
187 
188 
189  }
190 
191 }
192 
193 return;
194 
195 }
196 
197 
198 
199 
200 
201 
202 
203 
204 
205 
206 
207 
208 
209 
210 
211 
212 
213 
214 
215 
216 
217 
218 
219 
220 
221 
222 
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 
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 display_flag
Definition: mapper.c:100
void plot_frz(Pixmap pixm, int h, int display_flag, char *file, int num)
Definition: plot_frz.c:4
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 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 ** elev
Definition: misc_new.h:815
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