![]() |
OSG-based implementation of graphics manager class. More...
#include <SurgSim/Graphics/OsgManager.h>
Public Member Functions | |
OsgManager () | |
Constructor. More... | |
virtual | ~OsgManager () |
Destructor. More... | |
osg::ref_ptr< osgViewer::CompositeViewer > | getOsgCompositeViewer () const |
Returns the OSG CompositeViewer used to manage and render the views. More... | |
virtual void | dumpDebugInfo () const override |
OsgManager will write out the scenegraph in the working directory. More... | |
![]() | |
Manager () | |
Constructor. More... | |
virtual | ~Manager () |
Destructor. More... | |
const std::vector< std::shared_ptr< Representation > > & | getRepresentations () const |
Returns the representations assigned to the manager. More... | |
const std::unordered_map< std::string, std::shared_ptr< Group > > & | getGroups () const |
Returns the groups assigned to the manager. More... | |
const std::vector< std::shared_ptr< View > > & | getViews () const |
Returns the views assigned to the manager. More... | |
![]() | |
ComponentManager (const std::string &name="Unknown Component Manager") | |
virtual | ~ComponentManager () |
bool | enqueueAddComponent (const std::shared_ptr< Component > &component) |
Queues a component to be added later. More... | |
bool | enqueueRemoveComponent (const std::shared_ptr< Component > &component) |
Queues a component to be removed. More... | |
std::shared_ptr< Runtime > | getRuntime () const |
void | setRuntime (std::shared_ptr< Runtime > val) |
![]() | |
BasicThread (const std::string &name="Unknown Thread") | |
virtual | ~BasicThread () noexcept(false) |
C++11 introduced noexcept. More... | |
void | start (std::shared_ptr< Barrier > startupBarrier=nullptr, bool isSynchronous=false) |
C++11 introduced noexcept. More... | |
void | stop () |
Stopping the execution, blocks until the running thread has actually stopped,. More... | |
void | setIdle (bool isIdle) |
Set/Unset the thread in an idle state (doUpdate() called or not in the update() method) More... | |
bool | isIdle () |
Query if this thread is in idle state or not. More... | |
bool | isInitialized () |
Query if this object is initialized. More... | |
bool | isRunning () const |
Query if this object is running. More... | |
void | operator() () |
This is what boost::thread executes on thread creation. More... | |
boost::thread & | getThread () |
std::string | getName () const |
void | setRate (double val) |
Set the update rate of the thread. More... | |
bool | setSynchronous (bool val) |
Sets the thread to synchronized execution in concert with the startup barrier, the startup barrier has to exist for this call to succeed. More... | |
bool | isSynchronous () |
Query if this object is synchronized. More... | |
Protected Member Functions | |
virtual bool | doUpdate (double dt) override |
Performs an update for a single timestep. More... | |
virtual bool | doInitialize () override |
Initializes the manager. More... | |
virtual bool | doStartUp () override |
Starts up the manager after all threads have initialized. More... | |
virtual bool | addRepresentation (std::shared_ptr< Representation > representation) override |
Adds an representation to the manager. More... | |
virtual bool | addView (std::shared_ptr< View > view) override |
Adds a view to the manager. More... | |
virtual bool | removeView (std::shared_ptr< View > view) override |
Removes a view from the manager. More... | |
virtual std::shared_ptr< Group > | getOrCreateGroup (const std::string &name) override |
Fetch a group with a given name, if the group does not exist, create it. More... | |
![]() | |
virtual bool | executeAdditions (const std::shared_ptr< SurgSim::Framework::Component > &component) |
Adds a component. More... | |
virtual bool | executeRemovals (const std::shared_ptr< SurgSim::Framework::Component > &component) |
Removes a component. More... | |
virtual bool | removeRepresentation (std::shared_ptr< Representation > representation) |
Removes an representation from the manager. More... | |
virtual int | getType () const override |
Overrides ComponentManager::getType() More... | |
virtual void | addGroup (std::shared_ptr< Group > group) |
Adds a group to the manager, override for manager specific behavior when adding. More... | |
![]() | |
template<class T > | |
std::shared_ptr< T > | tryAddComponent (std::shared_ptr< SurgSim::Framework::Component > component, std::vector< std::shared_ptr< T >> *container) |
Template version of the addComponent method. More... | |
template<class T > | |
bool | tryRemoveComponent (std::shared_ptr< SurgSim::Framework::Component > component, std::vector< std::shared_ptr< T >> *container) |
Template version of the removeComponent method. More... | |
void | processComponents () |
Processes all the components that are scheduled for addition or removal, this needs to be called inside the doUpdate() function. More... | |
void | processBehaviors (const double dt) |
Processes behaviors This needs to be called inside doUpdate() function in each 'sub' manager. More... | |
void | copyScheduledComponents (std::vector< std::shared_ptr< Component >> *inflightAdditions, std::vector< std::shared_ptr< Component >> *inflightRemovals) |
Helper, blocks access to the additions and removal queue and copies the components from there to the intermediate inflight queues, after this call, the incoming queues will be empty. More... | |
std::shared_ptr< SurgSim::Framework::Logger > | getLogger () const |
Returns this manager's logger. More... | |
![]() | |
bool | initialize () |
Trigger the initialization of this object, this will be called before all other threads doStartup() are called. More... | |
bool | startUp () |
Trigger the startup of this object, this will be called after all other threads doInit() was called the thread will only enter the run loop triggering upated() if all threads doInit() and doStartup() returned true. More... | |
bool | waitForBarrier (bool success) |
Private Member Functions | |
void | doBeforeStop () |
Prepares the manager for its execution to be stopped. More... | |
Private Attributes | |
osg::ref_ptr< osgViewer::CompositeViewer > | m_viewer |
OSG CompositeViewer to manage and render the individual views. More... | |
std::shared_ptr< OsgScreenSpacePass > | m_hudElement |
Builtin RenderPass that can be used for HUD functionality, uses Group "ossHud". More... | |
Friends | |
class | OsgManagerTest |
Additional Inherited Members | |
![]() | |
boost::mutex | m_componentMutex |
Blocks protects addition and removal queues. More... | |
std::shared_ptr< SurgSim::Framework::Logger > | m_logger |
Logger for this class. More... | |
std::vector< std::shared_ptr< SurgSim::Framework::Behavior > > | m_behaviors |
Collection of behaviors. More... | |
std::vector< std::shared_ptr< Component > > | m_componentAdditions |
std::vector< std::shared_ptr< Component > > | m_componentRemovals |
OSG-based implementation of graphics manager class.
A Graphics::OsgManager sets up an osgViewer::CompositeViewer to manage and render each Graphics::OsgView added to the Manager.
SurgSim::Graphics::OsgManager::OsgManager | ( | ) |
|
virtual |
Destructor.
|
overrideprotectedvirtual |
Adds an representation to the manager.
representation | The representation to be added. Only allows OsgRepresentation components, any other will not be set and it will return false. |
Reimplemented from SurgSim::Graphics::Manager.
|
overrideprotectedvirtual |
Adds a view to the manager.
view | The view to be added. Only allows OsgView components, any other will not be set and it will return false. |
Reimplemented from SurgSim::Graphics::Manager.
|
privatevirtual |
Prepares the manager for its execution to be stopped.
Reimplemented from SurgSim::Framework::BasicThread.
|
overrideprotectedvirtual |
Initializes the manager.
Reimplemented from SurgSim::Graphics::Manager.
|
overrideprotectedvirtual |
Starts up the manager after all threads have initialized.
Reimplemented from SurgSim::Graphics::Manager.
|
overrideprotectedvirtual |
Performs an update for a single timestep.
dt | The time in seconds of the preceding timestep. |
Reimplemented from SurgSim::Graphics::Manager.
|
overridevirtual |
OsgManager will write out the scenegraph in the working directory.
Implements SurgSim::Graphics::Manager.
|
overrideprotectedvirtual |
Fetch a group with a given name, if the group does not exist, create it.
name | Name of the group to be fetched. |
Implements SurgSim::Graphics::Manager.
osg::ref_ptr< osgViewer::CompositeViewer > SurgSim::Graphics::OsgManager::getOsgCompositeViewer | ( | ) | const |
Returns the OSG CompositeViewer used to manage and render the views.
|
overrideprotectedvirtual |
Removes a view from the manager.
view | The view to be removed. |
Reimplemented from SurgSim::Graphics::Manager.
|
friend |
|
private |
Builtin RenderPass that can be used for HUD functionality, uses Group "ossHud".
|
private |
OSG CompositeViewer to manage and render the individual views.