void MainWindow::update() { frame++; GameClock::getInstance().newFrame(); //ConsolePrinter::getInstance().print(GameClock::getInstance().dt(), "dt: "); KeyInput::getInstance().update(); SceneManager::getInstance().update(); //mat->currentOffset.x += 0.01f; //testEntity->update(); //cubeEntity->update(); keyMove(); //if(frame == 50) //{ // wDown=false; // sDown=false; // aDown=false; // dDown=false; // rDown=false; // fDown=false; //} grid.update(); GeneralGLWindow::getInstance().repaint(); }
void display() { if(deltaMove) { keyMove(deltaMove); } //glMatrixMode(GL_MODELVIEW); // gluLookAt(x, y, z, x+lx, y+ly, z+lz, 0.0, 1.0, 0.0); // Note: Lighting has been added directly from example four.c so as // to demonstrate that the sphere is rotating, otherwise it just // appears to be a circle GLfloat ambient[4] = { 0.0, 0.0, 0.4, 1.0 };// blue ambient reflection GLfloat specular[4] = { 1.1, 0.8, 0.1, 1.0 };// green specular reflection glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); //gluLookAt(0.0, 0.0, 20.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); gluLookAt(x, y, z, x+lx, y+ly, z+lz, 0.0, 1.0, 0.0); glColor3f (1.0f, 1.0f, 1.0f); //glBegin(GL_POINTS); printf("image w: %d h: %d\n", image_size.width, image_size.height); for( int l = 0; l < A.rows-1; l++ ) { glBegin(GL_TRIANGLE_STRIP); for( int m = 0; m < A.cols; m++) { //printf("dims: %d\n", A.dims); //printf("element: %d\n", (int)A.at<uchar>(l,m) ); glVertex3f( m*0.01, 1-l*0.01, ((int)A.at<uchar>(l,m)) *0.01 ); glVertex3f( m*0.01, 1-(l+1)*0.01, ((int)A.at<uchar>(l,m)) *0.01 ); } glEnd(); } //glEnd(); /* glColor3f (1.0f, 1.0f, 1.0f); glBegin(GL_POINTS); for(double i = -1; i <= 1; i+=0.01){ for(double j = -1; j <= 1; j+=0.01){ //for(double k = -1; k <= 1; k+=0.01){ glVertex3f( i, j, 0); //} } } glEnd();*/ glutSwapBuffers(); }
/* * void display(); * * The display function displays the animation to the users screen. */ void display() { if(deltaMove) { keyMove(deltaMove); } glClearStencil(0); glClearDepth(1.0f); glClearColor(0.05f, 0.05f, 0.05f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); glLoadIdentity(); gluLookAt(x, y, z, x+lx, y+ly, z+lz, 0.0, 1.0, 0.0); // MUST BE BEFORE SPHERES ARE DRAWN collision_check(); if(reflection) { glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); glDepthMask(GL_FALSE); glEnable(GL_STENCIL_TEST); glStencilFunc(GL_ALWAYS, 1, 0xFFFFFFFF); glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE); // DRAW FLOOR glPushMatrix(); // bottom glBegin(GL_QUADS); glVertex3f(-5, 0, -5); glVertex3f(-5, 0, 5); glVertex3f( 5, 0, 5); glVertex3f( 5, 0, -5); glEnd(); glPopMatrix(); // END DRAW FLOOR glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glDepthMask(GL_TRUE); glStencilFunc(GL_EQUAL, 1, 0xFFFFFFFF); glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); glDisable(GL_DEPTH_TEST); glPushMatrix(); glScalef(1.0f, -1.0f, 1.0f); // DRAW INVERTED SCENE glEnable(GL_LIGHTING); draw_spheres(0); //draw_dust(); glDisable(GL_LIGHTING); draw_box(); // END DRAW SCENE glPopMatrix(); } glEnable(GL_DEPTH_TEST); glDisable(GL_STENCIL_TEST); glEnable(GL_BLEND); glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // DRAW FLOOR AGAIN glPushMatrix(); glColor4f(0.6f, 0.6f, 0.6f, 0.1f); // bottom glBegin(GL_QUADS); glVertex3f(-5, 0, -5); glVertex3f(-5, 0, 5); glVertex3f( 5, 0, 5); glVertex3f( 5, 0, -5); glEnd(); // END DRAW FLOOR glDisable(GL_BLEND); // DRAW SCENE glEnable(GL_LIGHTING); draw_spheres(1); draw_dust(); glDisable(GL_LIGHTING); draw_box(); // END DRAW SCENE //draw_dust(); //glDisable(GL_LIGHTING); //glEnable (GL_BLEND); //glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //draw_box(); // //glColor4f(0.6f, 0.6f, 0.6f, 0.1f); //// bottom //glBegin(GL_QUADS); // glVertex3f(-5, 5, -5); // glVertex3f(-5, 5, 5); // glVertex3f( 5, 5, 5); // glVertex3f( 5, 5, -5); //glEnd(); // //glDisable(GL_BLEND); glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); if(showText){ glColor3f( 1.0f, 1.0f, 1.0f); glRasterPos3f(x+lx,y+ly,z+lz); char blah[20]; sprintf(blah,"%d - %2.0f %",all_spheres.size(), mass_of_system/next_ball_mass*100); glutBitmapString(GLUT_BITMAP_HELVETICA_18, (const unsigned char*)blah); } glEnable(GL_LIGHTING); glEnable(GL_DEPTH_TEST); spawn_next_ball(); glutSwapBuffers(); }