Pages: 1
Bien le bonjour,
Mon problème du jour est assez simple, comment obtenir la liste de tous les noeuds situés derrière un rectangle défini en coordonnées écran ?
Sachant que bien sûr la solution doit être légère.
L'idée est de faire du picking, mais en prenant un rectangle au lieu d'un point.
Des idées ? (propres, faisables et robustes)
J'ai bien quelques idées, mais peut-être avez-vous des idées novatrices ....
Hors ligne
Bonjour;
Tout depend de la nature de ton projet:si il y a un terrain ( rts ) ou pas ( jeux dans l'espace par exemple ) du nombre de node ( si c'est de l'ordre de 10 ou 200) mais voila un methode faisable :
irr::core::line3df getLinePick(irr::scene::ICameraSceneNode* camera,irr::gui::ICursorControl* cursor){ irr::scene::SViewFrustum* VF=camera->getViewFrustum(); irr::core::vector3df LU=VF->getFarLeftUp(); irr::core::vector3df Y=VF->getFarLeftDown()-LU; irr::core::vector3df X=VF->getFarRightUp()-LU; return irr::core::line3df(camera->getPosition(),LU+X*cursor->getRelativePosition().X+Y*cursor->getRelativePosition().Y); }
( code fait a la volet ... donc surment pas bien optimisé )
Tu appliques cette fonction au 4 sommets du rectangle de selection et tu recupere une pyramide apres selon ton projet :
-si il a y un terrain et que les nodes sont dessus tu transfomes cette pyramide en un rectangle ( intersection terrain pyramide ) et tu recuperes les nodes dans celui
-si il n'y a pas de terrain tu peux rechercher les nodes dans la pyramide directement
Bref utiliser au mieu les specificitées du projet il y plein de methode mais la base et de recuperer "la pyramide de selection"
Hors ligne
Pages: 1
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 19 invités en ligne Aucun membre connecté RSS Feed |