insertion d'objet dynamique
bonjour à tous,
je voudrais savoir comment insérer des objet glut de façon dynamique.
Je m'explique :
j'ai une fenêtre glut dans laquelle j'ai un cube qui définie mon espace.
je souhaiterais ajouter dans mon cube des sphères via la touche "n" (les sphere seront stockées dans un tableau).
Pour cela j'ai créer une classe sphere :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
float sphere::lieuDeNaissance(float P_min,float P_max){
P_x = ((P_max-P_min)*((float)rand()/RAND_MAX))+P_min;
P_y = ((P_max-P_min)*((float)rand()/RAND_MAX))+P_min;
P_z = ((P_max-P_min)*((float)rand()/RAND_MAX))+P_min;
}
void sphere::affiche(){
sphere::lieuDeNaissance(0.0,30.0);
glTranslatef(0.0f, 0.0f, -100.0f);
glPushMatrix();
glColor3f(5.0, 34.0, 1.0);
glTranslated(P_x,P_y,P_z);
glutSolidSphere(5.0, 60,60);
glPopMatrix();
} |
Voici ma fonction d'affichage du main:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
void Affichage_Scene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT |
GL_STENCIL_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
Positionne_Camera();
// on déplace tous les objets pour qu'ils soient visibles
glTranslatef(0.0f, 0.0f, -100.0f);
glRotatef(xcam, ycam, xcam, ycam);
sphere S; //création d'un objet S
S.affiche(); //appel de la fontion affiche de la classe sphere
// Activation du blending
glEnable(GL_BLEND);
glDepthMask(GL_FALSE); // mode lecture seul pour le tampon de profondeur
glBlendFunc(GL_ONE, GL_ONE); // fonction utilisé pour la transparence
// Dessin du cube transparent
glPushMatrix();
glColor4f(0.0, 0.0, 5.7, 0.0);
glutWireCube(tailleEspace);
glPopMatrix();
glDepthMask(GL_TRUE); // mode écriture pour le tampon de profondeur
glDisable(GL_BLEND); // Arrêt du blending
glFlush();
glutSwapBuffers();
} |
Pour l'instant lorsque je compile une sphère est créer avec une position aléatoire mais elle est aussitôt détruite et une autre apparait infiniment.
Je souhaiterais savoir comment stocké mes sphères dans un tableau vector et pouvoir les afficher depuis ma fonction Affichage_Scene.
Merci pour vos réponse!