static Spacetime interpolateSpacetime(Spacetime st1, Spacetime st2, uint32_t t) { // Cyp says this should never happen, #3037 and #3238 say it does though. ASSERT_OR_RETURN(st1, st1.time != st2.time, "Spacetime overlap!"); return Spacetime(interpolatePos(st1.pos, st2.pos, st1.time, st2.time, t), interpolateRot(st1.rot, st2.rot, st1.time, st2.time, t), t); }
int DrawFountain(float t) { float seconds = fabs((t-tStart))*1000.0; if((seconds >= 136500.001) && (seconds <= 137000.001)) { glClearColor(1.0,1.0,1.0,1.0); } else if((seconds >= 137000.001) && (seconds <= 138000.001)) { glClearColor(0.0,0.0,0.0,0.0); } if(seconds >= 136500.001) { glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glPushMatrix(); glTranslatef(pos1[0], pos1[1], pos1[2]); glRotatef(angle, 1.0, 0.0, 0.0); fountain->Draw(t); fountain2->Draw(t); glPopMatrix(); glPushMatrix(); glTranslatef(p[0], p[1], p[2]); glRotatef(angle, 1.0, 0.0, 0.0); fountain3->Draw(t); glPopMatrix(); } if( (seconds >= 139000.001 && seconds < 142000.001) || (seconds >= 148000.001 && seconds < 151000.001) ) { interpolatePos(pos1, pos2, (t*1000.0)/3000.0); interpolatePos(p, p2, (t*1000.0)/3000.0); } else if( (seconds >= 142000.001 && seconds < 145000.001) || (seconds >= 151000.001 && seconds < 154000.001) ) { interpolatePos(pos1, pos3, (t*1000.0)/3000.0); interpolatePos(p, p3, (t*1000.0)/3000.0); } else if( (seconds >= 145000.001 && seconds < 148000.001) || (seconds >= 154000.001 && seconds < 157000.001) ) { interpolatePos(pos1, pos4, (t*1000.0)/3000.0); interpolatePos(p, pos4, (t*1000.0)/3000.0); } else if(seconds >= 157000.001 && seconds < 161000.001) { interpolatePos(pos1, pos4, (t*1000.0)/1000.0); interpolatePos(p, pos4, (t*1000.0)/1000.0); } else if(seconds >= 164000.001 && seconds < 169000.001) { fountain->disableLooping(); fountain2->disableLooping(); fountain3->disableLooping(); angle += (-90.0*(t*1000.00))/3000.00; } return 1; }
static Spacetime interpolateSpacetime(Spacetime st1, Spacetime st2, uint32_t t) { return Spacetime(interpolatePos(st1.pos, st2.pos, st1.time, st2.time, t), interpolateRot(st1.rot, st2.rot, st1.time, st2.time, t), t); }