Bonjour à tous.
je développe depuis peu un logiciel de CAO. Et donc je suis en train de mettre en place le système de sélection (c'est la première fois que j'utilise OpenGl) . Et là j'ai un petit problème j'ai du mal à comprendre en quel unité je dois passer mes variables dans la fonction gluPickMatrix dont le prototype est :
Dans la docs j'ai trouvé :void WINAPI gluPickMatrix(
GLdouble x,
GLdouble y,
GLdouble height,
GLdouble width,
GLint viewport[4]
);
"window coordinates" c'est a dire? en pixel sur la fenêtre ou dans le plan openGL ? personnellement j'aurais dis pixel mais vu les résultats qui ressortes de mes tests je préfère poser la question.x -> The x window coordinate of a picking region.
y -> The y window coordinate of a picking region.
height ->The height of the picking region in window coordinates.
width ->The width of the picking region in window coordinates.
viewport -> The current viewport (as from a glGetIntegerv call).
J'ai tenté pour mes tests de mettre 1.0 et 1.0 pour width et height si c'était vraiment en pixel je ne devrais avoir le nom que de ce que j'ai en dessous de la souris. or là il me sélectionne tout les objets à une distance d'environ 3 (unité dans le plan openGL) autour de là où j'ai cliqué...
Donc quelqu'un peut m'expliquer comment bien se servir de cette fonction? sachant que je dois pouvoir sélectionner avec un rectangle de sélection.
EDIT : En fait j'ai remarqué qu'il me renvoyait les nom de TOUS ce qui est présent dans le viewport.
Partager