Subversion Repositories wimsdev

Rev

Rev 10 | Rev 1122 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 10 Rev 1024
Line 129... Line 129...
129
        /* solid line */
129
        /* solid line */
130
void obj_line(objparm *pm)
130
void obj_line(objparm *pm)
131
{
131
{
132
    scale(pm->pd,pm->p,2);
132
    scale(pm->pd,pm->p,2);
133
    gdImageLine(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],pm->color[0]);
133
    gdImageLine(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],pm->color[0]);
-
 
134
    if(vimg_enable) vimg_line(scale_buf[0],scale_buf[1],scale_buf[2],scale_buf[3]);
134
}
135
}
135
 
136
 
136
        /* Arrow */
-
 
137
void obj_arrow(objparm *pm)
137
void _obj_arrow(objparm *pm, int twoside)
138
{
138
{
139
    int l,ii[6],xx,yy;
139
    int l,ii[6],xx,yy;
140
    double dx,dy,length,dd[6];
140
    double dx,dy,length,dd[6];
141
    scale(pm->pd,pm->p,2);
141
    scale(pm->pd,pm->p,2);
142
    xx=ii[0]=pm->p[2];yy=ii[1]=pm->p[3];
142
    xx=ii[0]=pm->p[2];yy=ii[1]=pm->p[3];
Line 150... Line 150...
150
    dd[4]=dd[0]-dd[1]*fat; dd[5]=dd[1]+dd[0]*fat;
150
    dd[4]=dd[0]-dd[1]*fat; dd[5]=dd[1]+dd[0]*fat;
151
    ii[2]=rint(dd[2])+ii[0]; ii[3]=rint(dd[3])+ii[1];
151
    ii[2]=rint(dd[2])+ii[0]; ii[3]=rint(dd[3])+ii[1];
152
    ii[4]=rint(dd[4])+ii[0]; ii[5]=rint(dd[5])+ii[1];
152
    ii[4]=rint(dd[4])+ii[0]; ii[5]=rint(dd[5])+ii[1];
153
    gdImageFilledPolygon(image,(gdPointPtr) ii,3,pm->color[0]);
153
    gdImageFilledPolygon(image,(gdPointPtr) ii,3,pm->color[0]);
154
    xx=rint(dd[0])+ii[0];yy=rint(dd[1])+ii[1];
154
    xx=rint(dd[0])+ii[0];yy=rint(dd[1])+ii[1];
-
 
155
    if(twoside) {
-
 
156
        ii[0]=pm->p[0]; ii[1]=pm->p[1];
-
 
157
        ii[2]=-rint(dd[2])+ii[0]; ii[3]=-rint(dd[3])+ii[1];
-
 
158
        ii[4]=-rint(dd[4])+ii[0]; ii[5]=-rint(dd[5])+ii[1];
-
 
159
        gdImageFilledPolygon(image,(gdPointPtr) ii,3,pm->color[0]);
-
 
160
    }
155
    stem: if(pm->fill)
161
    stem: if(pm->fill)
156
      gdImageDashedLine(image,pm->p[0],pm->p[1],xx,yy,pm->color[0]);
162
      gdImageDashedLine(image,pm->p[0],pm->p[1],xx,yy,pm->color[0]);
157
    else
163
    else
158
      gdImageLine(image,pm->p[0],pm->p[1],xx,yy,pm->color[0]);
164
      gdImageLine(image,pm->p[0],pm->p[1],xx,yy,pm->color[0]);
-
 
165
    if(vimg_enable) vimg_line(scale_buf[0],scale_buf[1],scale_buf[2],scale_buf[3]);
-
 
166
}
-
 
167
 
-
 
168
        /* Arrow */
-
 
169
void obj_arrow(objparm *pm)
159
   
170
{
-
 
171
    _obj_arrow(pm,0);
-
 
172
}
-
 
173
 
-
 
174
        /* 2-sided arrow */
-
 
175
void obj_arrow2(objparm *pm)
-
 
176
{
-
 
177
    _obj_arrow(pm,1);
160
}
178
}
161
 
179
 
162
        /* horizontal line */
180
        /* horizontal line */
163
void obj_hline(objparm *pm)
181
void obj_hline(objparm *pm)
164
{
182
{
165
    scale(pm->pd,pm->p,1);
183
    scale(pm->pd,pm->p,1);
166
    if(pm->fill)
184
    if(pm->fill)
167
      gdImageDashedLine(image,0,pm->p[1],sizex,pm->p[1],pm->color[0]);
185
      gdImageDashedLine(image,0,pm->p[1],sizex,pm->p[1],pm->color[0]);
168
    else
186
    else
169
      gdImageLine(image,0,pm->p[1],sizex,pm->p[1],pm->color[0]);
187
      gdImageLine(image,0,pm->p[1],sizex,pm->p[1],pm->color[0]);
170
}
188
}
171
 
189
 
172
        /* vertical line */
190
        /* vertical line */
173
void obj_vline(objparm *pm)
191
void obj_vline(objparm *pm)
Line 198... Line 216...
198
    scale2(pm->pd[4],pm->pd[5],&xv,&yv);
216
    scale2(pm->pd[4],pm->pd[5],&xv,&yv);
199
    for(i=0;i<n;i++) {
217
    for(i=0;i<n;i++) {
200
        xi=rint(i*xv); yi=rint(i*yv);
218
        xi=rint(i*xv); yi=rint(i*yv);
201
        gdImageLine(image,pm->p[0]+xi,pm->p[1]+yi,pm->p[2]+xi,pm->p[3]+yi,
219
        gdImageLine(image,pm->p[0]+xi,pm->p[1]+yi,pm->p[2]+xi,pm->p[3]+yi,
202
                    pm->color[0]);
220
                    pm->color[0]);
-
 
221
        if(vimg_enable) vimg_line(scale_buf[0]+xi,scale_buf[1]+yi,
-
 
222
                                  scale_buf[2]+xi,scale_buf[3]+yi);
203
    }
223
    }
204
}
224
}
205
 
225
 
206
        /* rectangle */
226
        /* rectangle */
207
void obj_rect(objparm *pm)
227
void obj_rect(objparm *pm)
Line 212... Line 232...
212
    y1=min(pm->p[1],pm->p[3]); y2=max(pm->p[1],pm->p[3]);
232
    y1=min(pm->p[1],pm->p[3]); y2=max(pm->p[1],pm->p[3]);
213
    if(pm->fill)
233
    if(pm->fill)
214
      gdImageFilledRectangle(image,x1,y1,x2,y2,pm->color[0]);
234
      gdImageFilledRectangle(image,x1,y1,x2,y2,pm->color[0]);
215
    else
235
    else
216
      gdImageRectangle(image,x1,y1,x2,y2,pm->color[0]);
236
      gdImageRectangle(image,x1,y1,x2,y2,pm->color[0]);
-
 
237
    if(vimg_enable) vimg_rect(scale_buf[0],scale_buf[1],scale_buf[2],scale_buf[3]);
217
}
238
}
218
 
239
 
219
        /* square */
240
        /* square */
220
void obj_square(objparm *pm)
241
void obj_square(objparm *pm)
221
{
242
{
222
    int w,h;
243
    int w,h;
223
    scale(pm->pd,pm->p,1);
244
    scale(pm->pd,pm->p,1);
224
    w=rint(pm->pd[2]); h=rint(pm->pd[2]);
245
    w=rint(pm->pd[2]); h=rint(pm->pd[2]);
225
    if(pm->fill)
246
    if(pm->fill)
226
      gdImageFilledRectangle(image,pm->p[0],pm->p[1],
247
      gdImageFilledRectangle(image,pm->p[0],pm->p[1],
227
                     pm->p[0]+w,pm->p[1]+h,pm->color[0]);
248
                     pm->p[0]+w,pm->p[1]+h,pm->color[0]);
228
    else
249
    else
229
      gdImageRectangle(image,pm->p[0],pm->p[1],
250
      gdImageRectangle(image,pm->p[0],pm->p[1],
230
                     pm->p[0]+w,pm->p[1]+h,pm->color[0]);
251
                     pm->p[0]+w,pm->p[1]+h,pm->color[0]);
-
 
252
    if(vimg_enable) vimg_rect(scale_buf[0],scale_buf[1],
-
 
253
                              scale_buf[0]+pm->pd[2],scale_buf[1]+pm->pd[2]);
231
}
254
}
232
 
255
 
233
        /* triangle */
256
        /* triangle */
234
void obj_triangle(objparm *pm)
257
void obj_triangle(objparm *pm)
235
{
258
{
236
    scale(pm->pd,pm->p,3);
259
    scale(pm->pd,pm->p,3);
237
    if(pm->fill)
260
    if(pm->fill)
238
      gdImageFilledPolygon(image,(gdPointPtr) pm->p,3,pm->color[0]);
261
      gdImageFilledPolygon(image,(gdPointPtr) pm->p,3,pm->color[0]);
239
    else
262
    else
240
      gdImagePolygon(image,(gdPointPtr) pm->p,3,pm->color[0]);
263
      gdImagePolygon(image,(gdPointPtr) pm->p,3,pm->color[0]);
-
 
264
    if(vimg_enable) vimg_polyline(scale_buf,3,1);
241
}
265
}
242
 
266
 
243
        /* polygon */
267
        /* polygon */
244
void obj_poly(objparm *pm)
268
void obj_poly(objparm *pm)
245
{
269
{
246
    int cnt;
270
    int cnt;
247
    cnt=(pm->pcnt)/2;
271
    cnt=(pm->pcnt)/2;
248
    scale(pm->pd,pm->p,cnt);
272
    scale(pm->pd,pm->p,cnt);
249
    if(pm->fill)
273
    if(pm->fill)
250
      gdImageFilledPolygon(image,(gdPointPtr) pm->p,cnt,pm->color[0]);
274
      gdImageFilledPolygon(image,(gdPointPtr) pm->p,cnt,pm->color[0]);
251
    else
275
    else
252
      gdImagePolygon(image,(gdPointPtr) pm->p,cnt,pm->color[0]);
276
      gdImagePolygon(image,(gdPointPtr) pm->p,cnt,pm->color[0]);
-
 
277
    if(vimg_enable) vimg_polyline(scale_buf,cnt,1);
253
}
278
}
254
 
279
 
255
        /* rays */
280
        /* rays */
256
void obj_rays(objparm *pm)
281
void obj_rays(objparm *pm)
257
{
282
{
258
    int i, n;
283
    int i, n;
259
    n=(pm->pcnt)/2;
284
    n=(pm->pcnt)/2;
260
    scale(pm->pd,pm->p,n);
285
    scale(pm->pd,pm->p,n);
261
    for(i=2;i<2*n;i+=2)
286
    for(i=2;i<2*n;i+=2) {
262
      gdImageLine(image,pm->p[0],pm->p[1],pm->p[i],pm->p[i+1],pm->color[0]);
287
        gdImageLine(image,pm->p[0],pm->p[1],pm->p[i],pm->p[i+1],pm->color[0]);
-
 
288
        if(vimg_enable) vimg_line(scale_buf[0],scale_buf[1],
-
 
289
                                  scale_buf[i],scale_buf[i+1]);
-
 
290
    }
263
}
291
}
264
 
292
 
265
        /* segments */
293
        /* segments */
266
void obj_lines(objparm *pm)
294
void obj_lines(objparm *pm)
267
{
295
{
268
    int i, n;
296
    int i, n;
269
    n=(pm->pcnt)/2;
297
    n=(pm->pcnt)/2;
270
    scale(pm->pd,pm->p,n);
298
    scale(pm->pd,pm->p,n);
271
    for(i=2;i<2*n;i+=2)
299
    for(i=2;i<2*n;i+=2)
272
      gdImageLine(image,pm->p[i-2],pm->p[i-1],pm->p[i],pm->p[i+1],pm->color[0]);
300
      gdImageLine(image,pm->p[i-2],pm->p[i-1],pm->p[i],pm->p[i+1],pm->color[0]);
-
 
301
    if(vimg_enable) vimg_polyline(scale_buf,n,0);
273
}
302
}
274
 
303
 
275
        /* segments */
304
        /* segments */
276
void obj_dlines(objparm *pm)
305
void obj_dlines(objparm *pm)
277
{
306
{
278
    int i, n;
307
    int i, n;
279
    n=(pm->pcnt)/2;
308
    n=(pm->pcnt)/2;
280
    scale(pm->pd,pm->p,n);
309
    scale(pm->pd,pm->p,n);
281
    for(i=2;i<2*n;i+=2)
310
    for(i=2;i<2*n;i+=2)
282
      gdImageDashedLine(image,pm->p[i-2],pm->p[i-1],pm->p[i],pm->p[i+1],pm->color[0]);
311
      gdImageDashedLine(image,pm->p[i-2],pm->p[i-1],pm->p[i],pm->p[i+1],pm->color[0]);
-
 
312
    if(vimg_enable) vimg_polyline(scale_buf,n,0);
283
}
313
}
284
 
314
 
285
        /* points */
315
        /* points */
286
void obj_points(objparm *pm)
316
void obj_points(objparm *pm)
287
{
317
{
Line 306... Line 336...
306
    for(i1=0;i1<n1;i1++) {
336
    for(i1=0;i1<n1;i1++) {
307
        xi1=rint(i1*xv1)+pm->p[0]; yi1=rint(i1*yv1)+pm->p[1];
337
        xi1=rint(i1*xv1)+pm->p[0]; yi1=rint(i1*yv1)+pm->p[1];
308
        for(i2=0;i2<n2;i2++) {
338
        for(i2=0;i2<n2;i2++) {
309
            xi2=i2*xv2+xi1;yi2=i2*yv2+yi1;
339
            xi2=i2*xv2+xi1;yi2=i2*yv2+yi1;
310
            gdImageSetPixel(image,xi2,yi2,pm->color[0]);
340
            gdImageSetPixel(image,xi2,yi2,pm->color[0]);
311
        }
341
        }
312
    }
342
    }
313
}
343
}
314
 
344
 
315
        /* arc */
345
        /* arc */
316
void obj_arc(objparm *pm)
346
void obj_arc(objparm *pm)
317
{
347
{
318
    scale(pm->pd,pm->p,1);
348
    scale(pm->pd,pm->p,1);
319
    pm->p[2]=rint(pm->pd[2]*xscale); pm->p[3]=rint(pm->pd[3]*yscale);
349
    pm->p[2]=rint(pm->pd[2]*xscale); pm->p[3]=rint(pm->pd[3]*yscale);
320
    gdImageArc(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],
350
    gdImageArc(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],
321
               pm->pd[4],pm->pd[5],pm->color[0]);
351
               pm->pd[4],pm->pd[5],pm->color[0]);
-
 
352
    if(vimg_enable) vimg_arc(scale_buf[0],scale_buf[1],
-
 
353
                             0.5*pm->pd[2],0.5*pm->pd[3],pm->pd[4],pm->pd[5]);
322
}
354
}
323
 
355
 
324
        /* Ellipse: centre 0,1, width 2, hight 3, color 4,5,6 */
356
        /* Ellipse: centre 0,1, width 2, hight 3, color 4,5,6 */
325
void obj_ellipse(objparm *pm)
357
void obj_ellipse(objparm *pm)
326
{
358
{
Line 331... Line 363...
331
                   color_bounder);
363
                   color_bounder);
332
        gdImageFillToBorder(image,pm->p[0],pm->p[1],
364
        gdImageFillToBorder(image,pm->p[0],pm->p[1],
333
                            color_bounder,pm->color[0]);
365
                            color_bounder,pm->color[0]);
334
    }
366
    }
335
    gdImageArc(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],0,360,pm->color[0]);
367
    gdImageArc(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],0,360,pm->color[0]);
-
 
368
    if(vimg_enable) vimg_ellipse(scale_buf[0],scale_buf[1],0.5*pm->pd[2],0.5*pm->pd[3]);
336
}
369
}
337
 
370
 
338
        /* Circle */
371
        /* Circle */
339
void obj_circle(objparm *pm)
372
void obj_circle(objparm *pm)
340
{
373
{
Line 481... Line 514...
481
      {"giant", &gdFontGiant},
514
      {"giant", &gdFontGiant},
482
      {"huge",  &gdFontGiant}
515
      {"huge",  &gdFontGiant}
483
};
516
};
484
 
517
 
485
#define fonttab_no (sizeof(fonttab)/sizeof(fonttab[0]))
518
#define fonttab_no (sizeof(fonttab)/sizeof(fonttab[0]))
486
 
519
 
487
        /* string */
520
        /* string */
488
void obj_string(objparm *pm)
521
void obj_string(objparm *pm)
489
{
522
{
490
    char *pp, *pe, *p2;
523
    char *pp, *pe, *p2;
491
    int i;
524
    int i;
Line 519... Line 552...
519
    gdImageSetPixel(image,pm->p[0],pm->p[1],pm->color[0]);
552
    gdImageSetPixel(image,pm->p[0],pm->p[1],pm->color[0]);
520
}
553
}
521
 
554
 
522
        /* copy an image file */
555
        /* copy an image file */
523
void obj_copy(objparm *pm)
556
void obj_copy(objparm *pm)
524
{
557
{
525
    char *pp;
558
    char *pp;
526
    FILE *inf;
559
    FILE *inf;
527
    gdImagePtr  insimg;
560
    gdImagePtr  insimg;
528
   
561
   
529
    pp=find_word_start(pm->str);*find_word_end(pp)=0;
562
    pp=find_word_start(pm->str);*find_word_end(pp)=0;
530
    inf=open4read(pp);
563
    inf=open4read(pp);
531
    if(inf==NULL) {
564
    if(inf==NULL) {
532
        error("file_not_exist"); return;
565
        error("file_not_exist"); return;
533
    }
566
    }
534
    insimg=gdImageCreateFromGif(inf); fclose(inf);
567
    insimg=gdImageCreateFromGif(inf); fclose(inf);
535
    if(insimg==NULL) {
568
    if(insimg==NULL) {
Line 569... Line 602...
569
    else
602
    else
570
      gdImageCopyResized(image,insimg,pm->p[4],pm->p[5],pm->pd[0],pm->pd[1],
603
      gdImageCopyResized(image,insimg,pm->p[4],pm->p[5],pm->pd[0],pm->pd[1],
571
                         pm->p[6]-pm->p[4]+1,pm->p[7]-pm->p[5]+1,
604
                         pm->p[6]-pm->p[4]+1,pm->p[7]-pm->p[5]+1,
572
                         pm->pd[2]-pm->pd[0]+1,pm->pd[3]-pm->pd[1]+1);
605
                         pm->pd[2]-pm->pd[0]+1,pm->pd[3]-pm->pd[1]+1);
573
    gdImageDestroy(insimg);
606
    gdImageDestroy(insimg);
574
}
607
}
575
 
608
 
576
        /* set brush or tile */
609
        /* set brush or tile */
577
void obj_setbrush(objparm *pm)
610
void obj_setbrush(objparm *pm)
578
{
611
{
579
    char *pp;
612
    char *pp;
Line 621... Line 654...
621
        if(pm->pd[3*i]<0 || pm->pd[3*i+1]<0 || pm->pd[3*i+2]<0)
654
        if(pm->pd[3*i]<0 || pm->pd[3*i+1]<0 || pm->pd[3*i+2]<0)
622
          pm->p[i]=gdTransparent;
655
          pm->p[i]=gdTransparent;
623
        else
656
        else
624
          pm->p[i]=getcolor(pm->pd[3*i],pm->pd[3*i+1],pm->pd[3*i+2]);
657
          pm->p[i]=getcolor(pm->pd[3*i],pm->pd[3*i+1],pm->pd[3*i+2]);
625
    }
658
    }
626
   
-
 
627
    gdImageSetStyle(image,pm->p,t); styled=1;
659
    gdImageSetStyle(image,pm->p,t); styled=1;
628
}
660
}
629
 
661
 
630
        /* kill style */
662
        /* kill style */
631
void obj_killstyle(objparm *pm)
663
void obj_killstyle(objparm *pm)
632
{
664
{
633
    styled=0;
665
    styled=0;
Line 645... Line 677...
645
    gdImageInterlace(image,1);
677
    gdImageInterlace(image,1);
646
}
678
}
647
 
679
 
648
        /* set linewidth */
680
        /* set linewidth */
649
void obj_linewidth(objparm *pm)
681
void obj_linewidth(objparm *pm)
650
{
682
{
651
    if(pm->pd[0]<1 || pm->pd[0]>255) error("bad_parms");
683
    if(pm->pd[0]<1 || pm->pd[0]>255) error("bad_parms");
652
    else width=pm->pd[0];
684
    else width=pm->pd[0];
653
}
685
}
654
 
686
 
655
        /* set x range */
687
        /* set x range */
656
void obj_xrange(objparm *pm)
688
void obj_xrange(objparm *pm)
657
{
689
{
658
    double dd;
690
    double dd;
659
    dd=pm->pd[1]-pm->pd[0];
691
    dd=pm->pd[1]-pm->pd[0];
660
    xstart=pm->pd[0]; xscale=sizex/dd;
692
    xstart=pm->pd[0]; xscale=sizex/dd;
661
}
693
}
662
 
694
 
663
        /* set y range */
695
        /* set y range */
664
void obj_yrange(objparm *pm)
696
void obj_yrange(objparm *pm)
665
{
697
{
666
    double dd;
698
    double dd;
Line 733... Line 765...
733
        pp+=strlen(EV_T);
765
        pp+=strlen(EV_T);
734
    }
766
    }
735
    varpos=eval_getpos(EV_T);
767
    varpos=eval_getpos(EV_T);
736
    if(varpos<0) return; /* unknown error */
768
    if(varpos<0) return; /* unknown error */
737
    evalue_compile(p1); evalue_compile(p2);
769
    evalue_compile(p1); evalue_compile(p2);
-
 
770
    if(vimg_enable) vimg_plotstart();
738
    for(i=j=0;i<=tstep;i++) {
771
    for(i=j=0;i<=tstep;i++) {
739
        if(n==1) {
772
        if(n==1) {
740
            if(tranged) t=tstart+i*v; else t=xstart+i*v;
773
            if(tranged) t=tstart+i*v; else t=xstart+i*v;
741
            eval_setval(varpos,t); dc[0]=t; dc[1]=evalue(p1);
774
            eval_setval(varpos,t); dc[0]=t; dc[1]=evalue(p1);
742
        }
775
        }
Line 744... Line 777...
744
            t=tstart+i*v; eval_setval(varpos,t);
777
            t=tstart+i*v; eval_setval(varpos,t);
745
            dc[0]=evalue(p1); dc[1]=evalue(p2);
778
            dc[0]=evalue(p1); dc[1]=evalue(p2);
746
        }
779
        }
747
        if(!finite(dc[0]) || !finite(dc[1])) ic[0]=ic[1]=-BOUND;
780
        if(!finite(dc[0]) || !finite(dc[1])) ic[0]=ic[1]=-BOUND;
748
        else scale(dc,ic,1);
781
        else scale(dc,ic,1);
-
 
782
        if(vimg_enable) vimg_plot1 (scale_buf[0],scale_buf[1]);
749
        if(j==0) {
783
        if(j==0) {
750
            gdImageSetPixel(image,ic[0],ic[1],pm->color[0]); j++;
784
            gdImageSetPixel(image,ic[0],ic[1],pm->color[0]); j++;
751
        }
785
        }
752
        else {
786
        else {
753
            xx=ic[0]-oc[0]; yy=ic[1]-oc[1];
787
            xx=ic[0]-oc[0]; yy=ic[1]-oc[1];
Line 760... Line 794...
760
               
794
               
761
            }
795
            }
762
        }
796
        }
763
        memmove(oc,ic,sizeof(oc));
797
        memmove(oc,ic,sizeof(oc));
764
    }
798
    }
-
 
799
    if(vimg_enable) vimg_plotend();
765
}
800
}
766
 
801
 
767
        /* set levelcurve granularity */
802
        /* set levelcurve granularity */
768
void obj_levelstep(objparm *pm)
803
void obj_levelstep(objparm *pm)
769
{
804
{
Line 832... Line 867...
832
    p=find_word_start(pm->str); *find_word_end(p)=0;
867
    p=find_word_start(pm->str); *find_word_end(p)=0;
833
    snprintf(namebuf,sizeof(namebuf),"%s",imagefilename);
868
    snprintf(namebuf,sizeof(namebuf),"%s",imagefilename);
834
    snprintf(imagefilename,sizeof(imagefilename),"%s",p);
869
    snprintf(imagefilename,sizeof(imagefilename),"%s",p);
835
    output();
870
    output();
836
    snprintf(imagefilename,sizeof(imagefilename),"%s",namebuf);
871
    snprintf(imagefilename,sizeof(imagefilename),"%s",namebuf);
-
 
872
}
-
 
873
 
-
 
874
        /* vimgfile */
-
 
875
void obj_vimgfile(objparm *pm)
-
 
876
{
-
 
877
    char *p;
-
 
878
    p=find_word_start(pm->str); *find_word_end(p)=0;
-
 
879
    snprintf(vimgfilename,sizeof(vimgfilename),"%s",p);
-
 
880
    if(vimg_ready) vimg_close();
-
 
881
}
-
 
882
 
-
 
883
        /* vimg enable/disable */
-
 
884
void obj_vimg(objparm *pm)
-
 
885
{
-
 
886
    vimg_enable=pm->pd[0];
-
 
887
    if(vimg_enable>0 && vimg_ready==0) {
-
 
888
        vimg_init();
-
 
889
    }
837
}
890
}
838
 
891
 
839
        /* Set affine transformation */
892
        /* Set affine transformation */
840
void obj_affine(objparm *pm)
893
void obj_affine(objparm *pm)
841
{
894
{