// Draw prime numbers pattern : void DisplayFunc() { float zoom; float X, Y; unsigned int primeNumberCounter; PreDisplay(); zoom = 1.0f / (greatestPrimeNumber+1.0f); primeNumberCounter = 0; glColor3f(1.0f, 1.0f, 1.0f); glBegin(GL_POINTS); // 'primeNumbersCount' can excess 'primeNumbersMaxCount' if the limit of drawable points has been reached : while ( (primeNumberCounter < primeNumbersCount) && (primeNumberCounter < primeNumbersMaxCount) ) { X = 0.5f * tPrimesCoordinatesOnSpiral[primeNumberCounter*2] * zoom; Y = 0.5f * tPrimesCoordinatesOnSpiral[primeNumberCounter*2+1] * zoom; glVertex2f(X, Y); primeNumberCounter++; } glEnd(); PostDisplay(); }
static void DisplayFunc(void) { PreDisplay(); if (dvel) DrawVelocity(); else DrawDensity(); PostDisplay(); }
static void Display() { PreDisplay(); if (bVel) DisplayVelocityField(); else if (bSmoke) DispolayDensityField(); else if (bParticles) DisplayParticles(); else DisplayParticles(); PostDisplay(); }
static void DisplayFunc() { PreDisplay(); if (DisplayVel) { DrawVelocity(); } else { DrawDensity(); } PostDisplay(); }
// Draw prime numbers pattern : void DisplayFunc() { float zoom; float X, Y; unsigned int primeNumberCounter; PreDisplay(); zoom = 1.0f / (greatestPrimeNumber+1.0f); primeNumberCounter = 0; glPointSize(3.f); int nbParticlesLeft = 0; std::vector<float> currentColor; int currentIndex = 0; std::map<int, std::vector<float> >::iterator it; if(previousNbPositions > 0){ it = tableColorProducer.find(currentMessageTrace.at(currentIndex)); nbParticlesLeft = currentMessageTrace.at(currentIndex+1); } glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0,(GLfloat)glutGet(GLUT_WINDOW_WIDTH) / (GLfloat)glutGet(GLUT_WINDOW_HEIGHT), 1.0, 2000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0,0,5, 0,0,0, 0,1,0); track.center=vcg::Point3f(0, 0, 0); track.radius= 1; track.GetView(); track.Apply(false); glPushMatrix(); float d=2.0f/(sqrt(dx*dx + dy*dy + dz*dz)); glScalef(d,d,d); glTranslatef(-cx,-cy,-cz); glBegin(GL_POINTS); for(unsigned int i = 0; i < previousNbPositions; i++){ if(it != tableColorProducer.end()) glColor3f(it->second.at(0),it->second.at(1),it->second.at(2)); else glColor3f(1.f,1.f,1.f); glVertex3d(positions[i * 3],positions[i * 3 + 1],positions[ i * 3 + 2]); glColor3f(1.f,1.f,1.f); nbParticlesLeft--; if(nbParticlesLeft <= 0 && currentIndex <( (int)(currentMessageTrace.size()) - 2)){ currentIndex+=2; it = tableColorProducer.find(currentMessageTrace.at(currentIndex)); nbParticlesLeft = currentMessageTrace.at(currentIndex+1); } } glEnd(); DrawSimulationArea(); glPopMatrix(); track.DrawPostApply(); PostDisplay(); }