IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenSceneGraph Discussion :

OpenSceneGraph gestion d'événements


Sujet :

OpenSceneGraph

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 9
    Points
    9
    Par défaut OpenSceneGraph gestion d'événements
    Bonjours à tous,
    Voilà je vous expose mon problème j'ai tenté de mettre en place une gestion d'événement mais sans succès. En fait le problème ce situe sur les différents case de mon switch lors de la gestion de l'événement, je m'explique:

    - J'ai créer une classe dérivant de GUIEventhandler, ré-implémenté la fonction Handle(.....).

    - J'ai ajouté un eventHandler dans mon viewer, mais lorsque je cherche à afficher l'identifiant de l'événement il me sort toujours le même event quelque soit l'action sur le viewer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void QOSGWidget::initializeGL()
    {
        window = viewer->setUpViewerAsEmbeddedInWindow(0, 0, width(), height());
    	viewer->setCameraManipulator(new osgGA::TrackballManipulator);
    	viewer->addEventHandler(new gestionEvent());
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #ifndef GESTIONEVENT_H
    #define GESTIONEVENT_H
    #include <osgGA\GUIEventHandler>
    #include <Qt\qdebug.h>
    #include <iostream>
     
    class gestionEvent: public osgGA::GUIEventHandler
    {
    private:
     
    public:
    	gestionEvent(void);
    	~gestionEvent(void);
     
    	bool handle (const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa);
     
    	void clickGauche();
    	void clickDroit();
    };
     
    #endif //GESTIONEVENT_H
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    bool gestionEvent::handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa)
    {
    	qDebug()<<ea.getEventType();
    	qDebug()<<osgGA::GUIEventAdapter::PUSH;
     
    	switch(ea.getEventType())
    	{
    		case(osgGA::GUIEventAdapter::PUSH):
    		{
    			if(ea.getButtonMask() == osgGA::GUIEventAdapter::LEFT_MOUSE_BUTTON)
    				clickGauche();
     
    			if(ea.getButtonMask() == osgGA::GUIEventAdapter::RIGHT_MOUSE_BUTTON)
    				clickDroit();
    			break;
    		}
    		default:
    			break;
    	}
    	return false;
    }
     
    void gestionEvent::clickGauche()
    {
    	qDebug()<<"Click Gauche";
    }
    void gestionEvent::clickDroit()
    {
    	qDebug()<<"Click Droit";
    }
    merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Bonsoir,

    Alors là a vue de nez tout semble correct, les events sont les clics souris droit et gauche, moi je ne vois rien qui cloche...

    Dans tes logs tu verra toujours l'event push d'apres ton code, mais ça devrait distinguer en effet les deux clics souris.
    J'ai sensiblement le meme code et il fonctionne tres bien...

    Ajoute dans les logs aussi le buttonMask peut etre, histoire de voir si ça log bien des buttons differents.
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Aucun changement à signaler au niveau des log j'ai toujours le même ID qui correspond à l'event FRAME, qui je suppose est appelé lors du redimensionnement mais impossible de récupérer les autres event. là je dois avouer que je sèche.

    EDIT: j'ai trouver le moyen de gérer les événements, comme le viewer se doit d'être intégrer à Qt, il m'a semblé logique de les gérer avec Qt, tous simplement.
    Je met le sujet en résolut, mais si quelqu'un veut des précision je reste dispo par MP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des évènements Netscape 7.0
    Par RATHQUEBER dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 19/12/2005, 16h26
  2. Problème avec la gestion des événements
    Par CynO dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 10h07
  3. [JTable] gestion des événements
    Par soulhouf dans le forum Composants
    Réponses: 4
    Dernier message: 19/08/2005, 13h21
  4. Gestion des évènements lors d'un clique sur une image.
    Par yoghisan dans le forum Débuter
    Réponses: 7
    Dernier message: 23/06/2005, 19h04
  5. Gestion d'événements hors tables
    Par Quentin dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 11/02/2005, 00h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo