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_Hmerci d'avance
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"; }
Partager