Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2684 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [gl4java - Java]Problème de picking avec gl4java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[gl4java - Java]Problème de picking avec gl4java

n°761871
methodlol
Posté le 13-06-2004 à 17:21:47  profilanswer
 

Bonjour à tous
 
Je fais appel à votre aide car j'ai découvert récemment gk4java et j'ai pour projet de développer une application l'utilisant. Cette application consiste à simuler le développer de fourmilières. Bref, c'était pour situer le contexte. J'aimerais que quand on clique sur une fourmi ou un autre objet du monde, je puisse afficher les caractéristiques de l'objet sélectionné. Je me suis inspiré d'articles, bouquins, tutos et voila la fonction que j'ai pondu qui est appelée avec mon MouseListener:
 

Code :
  1. public int retrieveObjectID(int x, int y) {
  2.     int objectsFound = 0;
  3.     int[] viewportCoords = new int[4];
  4.     int[] selectBuffer = new int[32];
  5.     gl.glSelectBuffer(32, selectBuffer);
  6.     gl.glGetIntegerv(GL_VIEWPORT, viewportCoords);
  7.     gl.glMatrixMode(GL_PROJECTION);
  8.     gl.glPushMatrix();
  9.     gl.glRenderMode(GL_SELECT);
  10.     gl.glLoadIdentity();
  11.     glu.gluPickMatrix(x, viewportCoords[3] - y, 5, 5, viewportCoords);
  12.     glu.gluPerspective(45.0f,(float)getWidth()/(float)getHeight(),0.1f,150.0f);
  13.     gl.glMatrixMode(GL_MODELVIEW);
  14.     display();
  15.     objectsFound = gl.glRenderMode(GL_RENDER);
  16.     gl.glMatrixMode(GL_PROJECTION);
  17.     gl.glPopMatrix();
  18.     gl.glMatrixMode(GL_MODELVIEW);
  19.     if (objectsFound > 0) {
  20.       int lowestDepth = selectBuffer[1];
  21.       int selectedObject = selectBuffer[3];
  22.       for(int i = 1; i < objectsFound; i++) {
  23.         if(selectBuffer[(i * 4) + 1] < lowestDepth) {
  24.           lowestDepth = selectBuffer[(i * 4) + 1];
  25.           selectedObject = selectBuffer[(i * 4) + 3];
  26.         }
  27.       }
  28.       return selectedObject;
  29.     }
  30.     return -1;
  31.   }


 
Je l'accorde, comme ça, on n'a pas très envie de lire... Evidemment si je demande votre aide c'est que dans tous les cas cette fonction ne me renvoie aucun objet sélectionné. Ce qui est étrange c'est que mon tableau viewportCoords est rempli de 0 même après un appel à glGetIntegerv.
 
Je tiens à préciser aussi que j'ai bien rempli la pile de noms dans la fonction display. quelqu'un saurait-il m'aider à m'en sortir?
 
Merci beaucoup


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
mood
Publicité
Posté le 13-06-2004 à 17:21:47  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [gl4java - Java]Problème de picking avec gl4java

 

Sujets relatifs
[JAVA - DEBUTANT] Plusieurs containers ?[ HTML ] formulaire, élément input type="image" --> Problème
Java Multimedia[ XHTML et CSS ] Problème d'overflow: auto...
[Java 1.5] Types generiquesprobleme avec TOMCAT
[Java] Emplacement d'un fichier dans un JARprobleme de lien...
problème de lecture de fichier texte[java pour les nuls] question gratuite sur la lecture d'un fichier
Plus de sujets relatifs à : [gl4java - Java]Problème de picking avec gl4java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR