OpenWalnut  1.5.0dev
Public Types | Public Member Functions | Private Attributes | List of all members
WGEFunctorCallback< Type > Class Template Reference

This callback allows you a simple usage of callbacks in your module. More...

#include <WGEFunctorCallback.h>

+ Inheritance diagram for WGEFunctorCallback< Type >:
+ Collaboration diagram for WGEFunctorCallback< Type >:

Public Types

typedef osg::ref_ptr< WGEFunctorCallbackSPtr
 Shared pointer. More...
 
typedef osg::ref_ptr< const WGEFunctorCallbackConstSPtr
 Const shared pointer. More...
 
typedef boost::function< void(Type *)> FunctorType
 The type of functor supported in this callback. More...
 

Public Member Functions

 WGEFunctorCallback (FunctorType functor)
 Default constructor. More...
 
virtual ~WGEFunctorCallback ()
 Destructor. More...
 
virtual void operator() (Type *handled, osg::NodeVisitor *nv)
 This operator gets called by OSG every update cycle. More...
 
virtual void update (osg::NodeVisitor *nv, Type *handled)
 This gets called by OSG every update cycle. More...
 

Private Attributes

FunctorType m_functor
 The functor getting called each callback. More...
 

Detailed Description

template<typename Type = osg::Node>
class WGEFunctorCallback< Type >

This callback allows you a simple usage of callbacks in your module.

The callback uses function pointers and calls them every update cycle. This is especially useful if you want to use a callback in a module without the need of writing subclasses providing a shared_ptr to the parent module.

Template Parameters
Typethe callback type. You can specify every class that has a nested class called "Callback".

Definition at line 45 of file WGEFunctorCallback.h.

Member Typedef Documentation

◆ ConstSPtr

template<typename Type = osg::Node>
typedef osg::ref_ptr< const WGEFunctorCallback > WGEFunctorCallback< Type >::ConstSPtr

Const shared pointer.

Definition at line 56 of file WGEFunctorCallback.h.

◆ FunctorType

template<typename Type = osg::Node>
typedef boost::function< void ( Type* )> WGEFunctorCallback< Type >::FunctorType

The type of functor supported in this callback.

Definition at line 61 of file WGEFunctorCallback.h.

◆ SPtr

template<typename Type = osg::Node>
typedef osg::ref_ptr< WGEFunctorCallback > WGEFunctorCallback< Type >::SPtr

Shared pointer.

Definition at line 51 of file WGEFunctorCallback.h.

Constructor & Destructor Documentation

◆ WGEFunctorCallback()

template<typename Type >
WGEFunctorCallback< Type >::WGEFunctorCallback ( FunctorType  functor)
explicit

Default constructor.

Creates the callback and sets the specified functor instance.

Parameters
functorthe function pointer.

Definition at line 101 of file WGEFunctorCallback.h.

◆ ~WGEFunctorCallback()

template<typename Type >
WGEFunctorCallback< Type >::~WGEFunctorCallback
virtual

Destructor.

Definition at line 109 of file WGEFunctorCallback.h.

Member Function Documentation

◆ operator()()

template<typename Type >
void WGEFunctorCallback< Type >::operator() ( Type *  handled,
osg::NodeVisitor *  nv 
)
virtual

This operator gets called by OSG every update cycle.

It calls the specified functor.

Parameters
handledthe osg node, stateset or whatever
nvthe node visitor

Definition at line 115 of file WGEFunctorCallback.h.

References WGECallbackTraits< Type >::traverse().

+ Here is the call graph for this function:

◆ update()

template<typename Type >
void WGEFunctorCallback< Type >::update ( osg::NodeVisitor *  nv,
Type *  handled 
)
virtual

This gets called by OSG every update cycle.

It calls the specified functor.

Note
we provide several versions here as the OSG does not uniformly use operator().
Parameters
handledthe osg node, stateset or whatever
nvthe node visitor

Definition at line 123 of file WGEFunctorCallback.h.

Member Data Documentation

◆ m_functor

template<typename Type = osg::Node>
FunctorType WGEFunctorCallback< Type >::m_functor
private

The functor getting called each callback.

Definition at line 97 of file WGEFunctorCallback.h.


The documentation for this class was generated from the following file: