Revois mon post précédent (qui contient l'erreur : je fais glPopMatrix au lieu de glPopName... sûrement que ton erreur vient de là) et revois quand je dessine l'arbre des noms. Il faut vraiment que tu saisisses cette notion d'arbre dans les noms.
Version imprimable
Revois mon post précédent (qui contient l'erreur : je fais glPopMatrix au lieu de glPopName... sûrement que ton erreur vient de là) et revois quand je dessine l'arbre des noms. Il faut vraiment que tu saisisses cette notion d'arbre dans les noms.
TankEk, j'ai bien lu ton post et je te remercie de tes envois. Mais, malheureusement, je ne vois pas en quoi un modèle d'arbre pourrais m'aider.
En effet, il n'y a pas de notions de hiérarchie dans mon réseau. Tout ce dont j'ai besoin lors d'un clic, c'est de savoir: "J'ai cliqué sur le noeud numéro X donc c'est la molécule MX".
Et, comme dit plus haut, si j'ajoute un glPopName(), je n'ai toujours que le premier de sélectionné.
Donc, il y a manifestement un problème dans mon implémentation. La question est de savoir précisément où. J'y travaille encore d'ailleurs.
@++ et merci encore pour tes renseignements ;)
dans ton code tu ne fais aucune condition ... tu prends directement le premier noeud dans le buffer alors que ce n'est peut etre pas celuila qui est par decus des autres ...Code:
1
2 names = buffer[ptr] - 1; selected = names;
Essai de voire ce que contient le buffer et lire le tuto. Normallement dans ton buffer tu trouve tous les objets qui sont sous la souris au moment du pick et c'est a toi de chercher le quel a vraiment ete cliqué et triant le tout suivant la profondeur ...
Oki goast, je vais retravailler cette méthode ;)
@++
il y a quelque chose que je comprend pas dans ta fonction private void pickPoint(GL gl)
tu passes en mode picking et selectBuffer sert à stocker les hitsCode:
1
2 gl.glSelectBuffer(BUFSIZE, selectBuffer); gl.glRenderMode(GL.GL_SELECT);
mais à la fin tu n'utilises pas selectBuffer mais selectBuf
bon je t'avoue qu'il semble que tu fais pas mal de truc que je ne comprend pas avec selectBuf mais dans le doute il y a peut-etre un problème là dedansCode:
1
2
3
4
5 hits = gl.glRenderMode(GL.GL_RENDER); selectBuffer.get(selectBuf); if(hits > 0) processHits(hits, selectBuf);
pourquoi est-ce que tu as un selectBuffer ET un selectBuf ?
Salut Shenron
Je vais être franc, c'est du code que j'ai adapté des tutoriaux pour jogl.
Certainement que l'adaptation est mauvaise.
Je vais également voir ça.
Merci à toi.
@++
Bonjour
Quelques nouvelles. J'ai finalement implémenté un "Color Picking". J'ai eu, malgré votre aide, trop de difficultées à gérer la pile des noms.
J'ai donc décidé de me lancer une bonne fois pour toutes dans le color picking et les premiers résultats sont satisfaisants. Reste à voir sur la durée. D'ailleurs, merci pour le lien vers Lighthouse ;)
Ainsi, merci à vous pour ces discussions très intéressantes.
A charge de revanche !!!
@++