void drawScene ( float* viewmat, bool bShade ) { if ( iShade <= 1 && bShade ) { glEnable ( GL_LIGHT0 ); GLfloat diff[4]; GLfloat spec[4]; GLfloat shininess = 60.0; diff[0] = 0.8f; diff[1] = 0.8f; diff[2] = 0.8f; diff[3] = 1.0f; spec[0] = 1.0f; spec[1] = 1.0f; spec[2] = 1.0f; spec[3] = 1.0f; glMaterialfv (GL_FRONT_AND_BACK, GL_DIFFUSE, &diff[0]); glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, &spec[0]); glMaterialfv (GL_FRONT_AND_BACK, GL_SHININESS, &shininess); glColorMaterial ( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE ); glColor3f ( 1, 1, 1 ); glLoadMatrixf ( viewmat ); glBegin ( GL_QUADS ); glNormal3f ( 0, 0, 1 ); glVertex3f ( -1000, -1000, 0.0 ); glVertex3f ( 1000, -1000, 0.0 ); glVertex3f ( 1000, 1000, 0.0 ); glVertex3f ( -1000, 1000, 0.0 ); glEnd (); glBegin ( GL_LINES ); for (float n=-100; n <= 100; n += 20.0 ) { glVertex3f ( -100, n, 0.1 ); glVertex3f ( 100, n, 0.1 ); glVertex3f ( n, -100, 0.1 ); glVertex3f ( n, 100, 0.1 ); } glEnd (); //psys.SPH_DrawDomain(); //Draw Particle Volume psys.Grid_Draw(&viewmat[0]); psys.Draw ( &viewmat[0], 0.8 ); // Draw particles } else { glDisable ( GL_LIGHTING ); psys.Draw ( &viewmat[0], 0.55 ); // Draw particles } }