int main() { printf("Enter Time Limit : "); scanf("%f",&TIME_LIMIT); int i, j; srand(time(NULL)); Heap *heap; Ball **ball; Interaction *nextCollision; heap = initHeap(); ball = (Ball **)malloc(PARTICLE_COUNT * sizeof(Ball *)); gnuplotPipe = initPipe(); for(i = 0; i < PARTICLE_COUNT; i++) { logFile[i] = initGraph(i); gnuplotGraphPipe[i] = initGraphPipe(i); } for(i = 0; i < PARTICLE_COUNT; i++) { ball[i] = initBallRandom(i); insertToHeap(heap, eventWallCollideX(heap, ball[i])); insertToHeap(heap, eventWallCollideY(heap, ball[i])); for(j = 0; j < i; j++) insertToHeap(heap, eventBallCollide(heap, ball[i], ball[j])); } while(sim_time < TIME_LIMIT) { nextCollision = getNextEvent(heap); simulateTo(ball, nextCollision->tstamp); printf("Collision at t=%lf\n", sim_time); resolveCollision(nextCollision); removeFromHeap(heap, nextCollision->interactee->id); scheduleEvent(ball, heap, nextCollision->interactee->id); if(nextCollision->interactor != NULL) { removeFromHeap(heap, nextCollision->interactor->id); scheduleEvent(ball, heap, nextCollision->interactor->id); } } fprintf(gnuplotPipe, "quit\n"); saveGraph(ball); showGraph(ball); return 0; }
int main() { FILE *fout = fopen(FOUT, "w"); read(); for(int i = 1; i <= n; i++) fprintf(fout, "%d ", removeFromHeap()); fclose( fout ); return(0); };
void Splash::onArenaRemove(ArenaInternalMenager * mgr) { mgr->removeWaveInteractor(this); removeFromHeap(); }