|
|
1.1 root 1: /* convert from view2d to anim format by slicing in x or y */
2:
3: #include <stdio.h>
4: #include "view2d.h"
5: char *progname;
6:
7: short timewarp;
8: double ts, te;
9: extern Rd2d rd;
10: int verbose;
11:
12: typedef struct Frame {
13: double time;
14: short *p;
15: } Frame;
16: Frame frame;
17: Frame *here;
18:
19: short nx, ny; /* input grid */
20:
21: main(argc, argv)
22: int argc;
23: char **argv;
24: {
25: int i, j;
26: int fd;
27: int dir = -1; /* 1=x, 0=y */
28: double cut, atof();
29: char *Malloc();
30:
31: timewarp = 0;
32: verbose = 0;
33: progname = argv[0];
34: here = &frame;
35:
36: for(argc--, argv++; *argv; argv++){
37: if(**argv == '-' ){
38: switch(argv[0][1]) {
39: case 'v':
40: verbose++;
41: break;
42: case 'x':
43: dir=1;
44: cut=atof(&(argv[0][2]));
45: break;
46: case 'y':
47: dir=0;
48: cut=atof(&(argv[0][2]));
49: break;
50: }
51: }else{
52: if(fd) error("can only read one file");
53: fd = Open(*argv,0);
54: }
55: }
56: if(dir<0) error("must supply -x or -y cutpoint");
57:
58: rd2dh(fd,&nx,&ny);
59: if((timewarp>0)&&(verbose))
60: fprintf(stderr,"timewarp=%d ts=%g te=%g\n",timewarp,ts,te);
61: i = nx*ny*sizeof(short);
62: here->p = (short *)Malloc(i);
63:
64: while(rd2di(&here->time,here->p)){
65: wrframe(here->time,here->p,dir,cut);
66: }
67: exit(0);
68: }
69:
70:
71: wrframe(t,p,dir,cut)
72: double t;
73: short *p;
74: int dir;
75: double cut;
76: {
77: float *b;
78: register short *q;
79: int i, j, n, s;
80: double t0, t1, v2, out, pow2();
81: v2 = pow2(rd.v);
82: out = (-BIG-rd.u)*v2;
83: n = dir ? ny: nx;
84: s = dir ? nx: 1;
85: if(dir){ q = p + (int)(cut*(nx-1));
86: }else{ q = p + nx*(int)(cut*(ny-1));}
87: if(verbose) fprintf(stderr,"time=%g\n",t,j);
88: t0 = out;
89: for(i=0; i<n; i++){
90: t1 = (*q-rd.u)*v2;
91: q += s;
92: if((t1>out)&&(t0>out))
93: printf("L%d: line %d %f %d %f\n",i-1,i-1,t0,i,t1);
94: t0 = t1;
95: }
96: printf("click time\n");
97: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.