|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.