Annotation of researchv10no/cmd/view2d/term/movie.c, revision 1.1.1.1

1.1       root        1: #include       <CC/jerq.h>
                      2: #include       "frame.pri"
                      3: #include       "camera.pub"
                      4: 
                      5: Movie.Movie()
                      6: {
                      7:        start = 0;
                      8:        showgrid = 1;
                      9:        doshade = 0;
                     10:        nx = ny = 0;
                     11:        period = 0;
                     12:        maxframe = 0;
                     13:        N = 10;
                     14:        m = this;
                     15:        tdata = 0;
                     16:        camera = new Camera(Drect, &bound);
                     17:        ctr = bound.o;
                     18:        string(&defont, "hold down buutton 2 near a control for help", &display,
                     19:                add(bound.o, Pt(20, 20)), F_OR);
                     20: }
                     21: 
                     22: void
                     23: Movie.read()
                     24: {
                     25:        register n;
                     26:        Point temp, orig;
                     27:        Bitmap *tempb;
                     28: 
                     29:        for(wait(RCV); (n = rcvchar()) != 'Q'; wait(RCV))
                     30:                switch(n)
                     31:                {
                     32:                case 'G':
                     33:                        showgrid = 1;
                     34:                        break;
                     35:                case 'S':
                     36:                        doshade = 1;
                     37:                        break;
                     38:                case 'X':
                     39:                        nx = getn();
                     40:                        break;
                     41:                case 'Y':
                     42:                        ny = getn();
                     43:                        break;
                     44:                case 'P':
                     45:                        period = getn();
                     46:                        break;
                     47:                case 'n':
                     48:                        nframes = getn();
                     49:                        for(;;)
                     50:                        {
                     51:                                if(tempb = balloc(bound))
                     52:                                {
                     53:                                        bfree(tempb);
                     54:                                        break;
                     55:                                }
                     56:                                orig = (bound.o+bound.c)/2;
                     57:                                temp = bound.c - bound.o;
                     58:                                n = muldiv(temp.x, 95, 100);
                     59:                                if(temp.x <= temp.y)
                     60:                                        temp.x = temp.y = n;
                     61:                                else
                     62:                                        temp.x = n;
                     63:                                bound.o = orig - temp/2;
                     64:                                bound.c = bound.o + temp;
                     65:                        }
                     66:                        frames = (Frame *)alloc(nframes*sizeof(Frame));
                     67:                        break;
                     68:                case 'F':
                     69:                        if(tdata == 0)
                     70:                                tdata = alloc(nx*ny*sizeof(Hcoord));
                     71:                        n = maxframe++;
                     72:                        frames[n].rd(nx*ny);
                     73:                        frames[n].view(camera->clat, camera->clon, camera->cdist,
                     74:                                camera->alat, camera->alon, camera->persp);
                     75:                        break;
                     76:                case 'I':
                     77:                        floor = getn();
                     78:                        break;
                     79:                }
                     80: 
                     81: }
                     82: 
                     83: void
                     84: Movie.showframe(int i)
                     85: {
                     86:        rectf(&display, bound, F_CLR);
                     87:        start = i;
                     88:        show();
                     89: }
                     90: 
                     91: char *
                     92: Movie.ft(int i)
                     93: {
                     94:        return(frames[i].time);
                     95: }
                     96: 
                     97: void
                     98: Movie.show()
                     99: {
                    100:        frames[start].view(camera->clat, camera->clon, camera->cdist,
                    101:                camera->alat, camera->alon, camera->persp);
                    102: }
                    103: 
                    104: void
                    105: Movie.advance()
                    106: {
                    107:        if(adv->val)
                    108:        {
                    109:                if(++start == maxframe) start = 0;
                    110:        }
                    111:        camera->advance();
                    112: }
                    113: 
                    114: void
                    115: Movie.adjust()
                    116: {
                    117:        camera->adjust();
                    118: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.