Converted osgGA::GUIEventAdapter into a concrete class capable of respresenting
keyboard and mouse events. Added osgGA::EventQueue class to support a thread safe event queue and adaption of keyboard and mouse events. Removed osgProducer::EventAdapter as GUIEventAdapter replaces it. Adapted osgProducer and examples to work with the new changes to osgGA.
This commit is contained in:
@@ -862,9 +862,9 @@ bool GameEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionA
|
||||
if (_numberOfPlayers>=2) _players[1].moveRight();
|
||||
}
|
||||
|
||||
static double previous_time = ea.time();
|
||||
double dt = ea.time()-previous_time;
|
||||
previous_time = ea.time();
|
||||
static double previous_time = ea.getTime();
|
||||
double dt = ea.getTime()-previous_time;
|
||||
previous_time = ea.getTime();
|
||||
|
||||
// move objects
|
||||
for(CatchableObjectList::iterator itr=_catchableObjects.begin();
|
||||
@@ -921,7 +921,7 @@ bool GameEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionA
|
||||
}
|
||||
|
||||
if (!(*itr)->anyInside(_origin, _origin+_width+_height) ||
|
||||
(*itr)->needToRemove(ea.time()) ||
|
||||
(*itr)->needToRemove(ea.getTime()) ||
|
||||
removeEntry)
|
||||
{
|
||||
// need to remove
|
||||
@@ -944,16 +944,16 @@ bool GameEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionA
|
||||
// hit base line
|
||||
(*itr)->explode();
|
||||
(*itr)->stop();
|
||||
(*itr)->setTimeToRemove(ea.time()+3.0);
|
||||
(*itr)->setTimeToRemove(ea.getTime()+3.0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// create new catchable objects
|
||||
static double previousTime = ea.time();
|
||||
double deltaTime = ea.time()-previousTime;
|
||||
previousTime = ea.time();
|
||||
static double previousTime = ea.getTime();
|
||||
double deltaTime = ea.getTime()-previousTime;
|
||||
previousTime = ea.getTime();
|
||||
|
||||
float numDropsPerSecond = _initialNumDropsPerSecond * (_level+1);
|
||||
float r = (float)rand()/(float)RAND_MAX;
|
||||
|
||||
@@ -64,7 +64,7 @@ class CameraPacket {
|
||||
// us to do this, even though its a reference counted object.
|
||||
osg::FrameStamp _frameStamp;
|
||||
|
||||
osgProducer::KeyboardMouseCallback::EventQueue _events;
|
||||
osgGA::EventQueue::Events _events;
|
||||
|
||||
};
|
||||
|
||||
@@ -295,36 +295,36 @@ class DataConverter
|
||||
|
||||
}
|
||||
|
||||
void write(const osgProducer::EventAdapter& event)
|
||||
void write(const osgGA::GUIEventAdapter& event)
|
||||
{
|
||||
writeUInt(event._eventType);
|
||||
writeUInt(event._key);
|
||||
writeUInt(event._button);
|
||||
writeFloat(event._Xmin);
|
||||
writeFloat(event._Xmax);
|
||||
writeFloat(event._Ymin);
|
||||
writeFloat(event._Ymax);
|
||||
writeFloat(event._mx);
|
||||
writeFloat(event._my);
|
||||
writeUInt(event._buttonMask);
|
||||
writeUInt(event._modKeyMask);
|
||||
writeDouble(event._time);
|
||||
writeUInt(event.getEventType());
|
||||
writeUInt(event.getKey());
|
||||
writeUInt(event.getButton());
|
||||
writeFloat(event.getXmin());
|
||||
writeFloat(event.getXmax());
|
||||
writeFloat(event.getYmin());
|
||||
writeFloat(event.getYmax());
|
||||
writeFloat(event.getX());
|
||||
writeFloat(event.getY());
|
||||
writeUInt(event.getButtonMask());
|
||||
writeUInt(event.getModKeyMask());
|
||||
writeDouble(event.getTime());
|
||||
}
|
||||
|
||||
void read(osgProducer::EventAdapter& event)
|
||||
void read(osgGA::GUIEventAdapter& event)
|
||||
{
|
||||
event._eventType = (osgGA::GUIEventAdapter::EventType)readUInt();
|
||||
event._key = readUInt();
|
||||
event._button = readUInt();
|
||||
event._Xmin = readFloat();
|
||||
event._Xmax = readFloat();
|
||||
event._Ymin = readFloat();
|
||||
event._Ymax = readFloat();
|
||||
event._mx = readFloat();
|
||||
event._my = readFloat();
|
||||
event._buttonMask = readUInt();
|
||||
event._modKeyMask = readUInt();
|
||||
event._time = readDouble();
|
||||
event.setEventType((osgGA::GUIEventAdapter::EventType)readUInt());
|
||||
event.setKey(readUInt());
|
||||
event.setButton(readUInt());
|
||||
event.setXmin(readFloat());
|
||||
event.setXmax(readFloat());
|
||||
event.setYmin(readFloat());
|
||||
event.setYmax(readFloat());
|
||||
event.setX(readFloat());
|
||||
event.setY(readFloat());
|
||||
event.setButtonMask(readUInt());
|
||||
event.setModKeyMask(readUInt());
|
||||
event.setTime(readDouble());
|
||||
}
|
||||
|
||||
void write(CameraPacket& cameraPacket)
|
||||
@@ -337,9 +337,11 @@ class DataConverter
|
||||
write(cameraPacket._frameStamp);
|
||||
|
||||
writeUInt(cameraPacket._events.size());
|
||||
for(unsigned int i=0;i<cameraPacket._events.size();++i)
|
||||
for(osgGA::EventQueue::Events::iterator itr = cameraPacket._events.begin();
|
||||
itr != cameraPacket._events.end();
|
||||
++itr)
|
||||
{
|
||||
write(*(cameraPacket._events[i]));
|
||||
write(*(*itr));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -360,7 +362,7 @@ class DataConverter
|
||||
unsigned int numEvents = readUInt();
|
||||
for(unsigned int i=0;i<numEvents;++i)
|
||||
{
|
||||
osgProducer::EventAdapter* event = new osgProducer::EventAdapter;
|
||||
osgGA::GUIEventAdapter* event = new osgGA::GUIEventAdapter;
|
||||
read(*(event));
|
||||
cameraPacket._events.push_back(event);
|
||||
}
|
||||
|
||||
@@ -227,7 +227,7 @@ bool GliderManipulator::calcMovement()
|
||||
if (_ga_t0.get()==NULL || _ga_t1.get()==NULL) return false;
|
||||
|
||||
|
||||
double dt = _ga_t0->time()-_ga_t1->time();
|
||||
double dt = _ga_t0->getTime()-_ga_t1->getTime();
|
||||
|
||||
if (dt<0.0f)
|
||||
{
|
||||
|
||||
@@ -160,7 +160,7 @@ bool TestManipulator::isMouseMoving()
|
||||
float dx = _ga_t0->getXnormalized()-_ga_t1->getXnormalized();
|
||||
float dy = _ga_t0->getYnormalized()-_ga_t1->getYnormalized();
|
||||
float len = sqrtf(dx*dx+dy*dy);
|
||||
float dt = _ga_t0->time()-_ga_t1->time();
|
||||
float dt = _ga_t0->getTime()-_ga_t1->getTime();
|
||||
|
||||
return (len>dt*velocity);
|
||||
}
|
||||
|
||||
@@ -612,17 +612,17 @@ bool SlideEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIAction
|
||||
if (ea.getKey()=='a')
|
||||
{
|
||||
_autoSteppingActive = !_autoSteppingActive;
|
||||
_previousTime = ea.time();
|
||||
_previousTime = ea.getTime();
|
||||
return true;
|
||||
}
|
||||
else if (ea.getKey()=='n')
|
||||
{
|
||||
_album->nextPage(ea.time()+1.0f);
|
||||
_album->nextPage(ea.getTime()+1.0f);
|
||||
return true;
|
||||
}
|
||||
else if (ea.getKey()=='p')
|
||||
{
|
||||
_album->previousPage(ea.time()+1.0f);
|
||||
_album->previousPage(ea.getTime()+1.0f);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -634,13 +634,13 @@ bool SlideEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIAction
|
||||
if (_firstTraversal)
|
||||
{
|
||||
_firstTraversal = false;
|
||||
_previousTime = ea.time();
|
||||
_previousTime = ea.getTime();
|
||||
}
|
||||
else if (ea.time()-_previousTime>_timePerSlide)
|
||||
else if (ea.getTime()-_previousTime>_timePerSlide)
|
||||
{
|
||||
_previousTime = ea.time();
|
||||
_previousTime = ea.getTime();
|
||||
|
||||
_album->nextPage(ea.time()+1.0f);
|
||||
_album->nextPage(ea.getTime()+1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ bool SlideEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIAction
|
||||
if (ea.getKey()=='a')
|
||||
{
|
||||
_autoSteppingActive = !_autoSteppingActive;
|
||||
_previousTime = ea.time();
|
||||
_previousTime = ea.getTime();
|
||||
return true;
|
||||
}
|
||||
else if (ea.getKey()=='n')
|
||||
|
||||
@@ -667,8 +667,8 @@ class FollowMouseCallback : public osgGA::GUIEventHandler, public osg::StateSet:
|
||||
if (ev)
|
||||
{
|
||||
osgGA::GUIActionAdapter* aa = ev->getActionAdapter();
|
||||
osgGA::EventVisitor::EventList& events = ev->getEventList();
|
||||
for(osgGA::EventVisitor::EventList::iterator itr=events.begin();
|
||||
osgGA::EventQueue::Events& events = ev->getEvents();
|
||||
for(osgGA::EventQueue::Events::iterator itr=events.begin();
|
||||
itr!=events.end();
|
||||
++itr)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user