OpenWalnut  1.4.0
Public Member Functions | Private Types | Private Member Functions | Private Attributes
WGENodeMaskCallback Class Reference

This callback is useful to en-/disable nodes using the node mask based on properties. More...

#include <WGENodeMaskCallback.h>

+ Inheritance diagram for WGENodeMaskCallback:

List of all members.

Public Member Functions

 WGENodeMaskCallback (boost::shared_ptr< WBoolFlag > flag)
 Creates new instance.
virtual ~WGENodeMaskCallback ()
 Destructor.
virtual void operator() (osg::Node *node, osg::NodeVisitor *nv)
 This operator gets called by OSG every update cycle.

Private Types

typedef
boost::signals2::signal< void() > 
ReactivateSignal
 The type of signal used to reactivate the signal.

Private Member Functions

virtual void activate ()
 Gets called if m_flag changes.

Private Attributes

boost::shared_ptr< WBoolFlagm_flag
 The flag controlling the node mask.
boost::signals2::connection m_connection
 The subscription to the change signal of m_flag.
boost::signals2::connection m_reactivateConnection
 This connection gets established during the deactivation in operator() to ensure re-activation.
ReactivateSignal m_reactivateSignal
 The reactivation signal.

Detailed Description

This callback is useful to en-/disable nodes using the node mask based on properties.

In contrast to WGEManagedGroupNode, this callback can be added to every kind of node. DO NOT use one instance of this class for multiple nodes. The problem is not very obvious. If a node gets deactivated, its node callback is inactive too. To reactive the node again, the callback somehow needs to remember which node it has deactivated. This is done during the first deactivation in update traversal.

Definition at line 42 of file WGENodeMaskCallback.h.


Member Typedef Documentation

typedef boost::signals2::signal< void() > WGENodeMaskCallback::ReactivateSignal [private]

The type of signal used to reactivate the signal.

Definition at line 85 of file WGENodeMaskCallback.h.


Constructor & Destructor Documentation

WGENodeMaskCallback::WGENodeMaskCallback ( boost::shared_ptr< WBoolFlag flag) [explicit]

Creates new instance.

Parameters:
flagthe bool property which controls activation.

Definition at line 27 of file WGENodeMaskCallback.cpp.

References activate(), m_connection, and m_flag.

Destructor.

Definition at line 37 of file WGENodeMaskCallback.cpp.

References m_connection.


Member Function Documentation

void WGENodeMaskCallback::activate ( ) [private, virtual]

Gets called if m_flag changes.

This handles activation of the node.

Definition at line 43 of file WGENodeMaskCallback.cpp.

References m_flag, and m_reactivateSignal.

Referenced by WGENodeMaskCallback().

void WGENodeMaskCallback::operator() ( osg::Node *  node,
osg::NodeVisitor *  nv 
) [virtual]

This operator gets called by OSG every update cycle.

Parameters:
nodethe osg node
nvthe node visitor

Definition at line 51 of file WGENodeMaskCallback.cpp.

References m_flag, m_reactivateConnection, and m_reactivateSignal.


Member Data Documentation

boost::signals2::connection WGENodeMaskCallback::m_connection [private]

The subscription to the change signal of m_flag.

Definition at line 75 of file WGENodeMaskCallback.h.

Referenced by WGENodeMaskCallback(), and ~WGENodeMaskCallback().

boost::shared_ptr< WBoolFlag > WGENodeMaskCallback::m_flag [private]

The flag controlling the node mask.

Definition at line 70 of file WGENodeMaskCallback.h.

Referenced by activate(), operator()(), and WGENodeMaskCallback().

boost::signals2::connection WGENodeMaskCallback::m_reactivateConnection [private]

This connection gets established during the deactivation in operator() to ensure re-activation.

Definition at line 80 of file WGENodeMaskCallback.h.

Referenced by operator()().

The reactivation signal.

Definition at line 90 of file WGENodeMaskCallback.h.

Referenced by activate(), and operator()().


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