Я хотел бы знать, как я могу вводить события клавиатуры для управления сферой? Мне нужна сфера и перемещать ее по экрану с помощью событий клавиатуры.
события клавиатуры OSG (открытый график сцены)
Ответы (1)
OSG использует обработчики событий. Просто создайте такой:
// KeyboardEventHandler.h
#pragma once
#include <osgGA/GUIEventHandler>
class KeyHandler : public osgGA::GUIEventHandler
{
public:
KeyHandler()
{}
public:
virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter&)
{
switch(ea.getEventType())
{
case(osgGA::GUIEventAdapter::KEYDOWN):
{
// Place your code here...
}
default:
return false;
}
}
virtual void accept(osgGA::GUIEventHandlerVisitor& v)
{
v.visit(*this);
}
};
Теперь подключите его к вашему представлению:
m_osgViewer->addEventHandler(new KeyHandler());
Вы можете передать указатель "this" в KeyboardHandler и вызывать методы просмотра изнутри.
person
samdavydov
schedule
14.05.2014