21 #ifndef _OF_FRAMEMANAGER_ 22 #define _OF_FRAMEMANAGER_ 26 #include <OpenThreads/Mutex> 27 #include <osg/Referenced> 28 #include <osg/ref_ptr> 71 inline osg::Group* getData()
73 if(_frame.valid())
return _frame->getGroup();
77 inline int lock(Priority priority = HIGH_PRIORITY)
79 if(priority == LOW_PRIORITY) _mutexLP.lock();
81 int val = _mutexData.lock();
87 inline int unlock(Priority priority = HIGH_PRIORITY)
89 int val = _mutexData.unlock();
90 if(priority == LOW_PRIORITY) _mutexLP.unlock();
94 inline int trylock(Priority priority = HIGH_PRIORITY)
96 if(priority == LOW_PRIORITY) _mutexLP.lock();
98 int val = _mutexData.trylock();
104 virtual ~FrameManager() {}
106 osg::ref_ptr<ReferenceFrame> _frame;
107 OpenThreads::Mutex _mutexData, _mutexNext, _mutexLP;
This class allows priority access to a ReferenceFrame heirarchy.
Definition: FrameManager.hpp:52
Definition: CoordinateAxes.hpp:29
int unlock(Priority priority=HIGH_PRIORITY)
Users must specify the same priority as they did for lock/trylock.
Definition: FrameManager.hpp:87
Definition: ReferenceFrame.hpp:54