13 #ifndef SO_INTERACTION_PROVIDER_H
14 #define SO_INTERACTION_PROVIDER_H
29 #include <ThirdPartyWarningsDisable.h>
30 #include <Inventor/nodes/SoNode.h>
31 #include <boost/unordered_map.hpp>
34 #include <ThirdPartyWarningsRestore.h>
51 std::list<T*> getInteractionsOfType(SoState* state);
81 static boost::unordered_map<int,GetProviderFunc>* _providerFunctions;
89 std::list<SoInteraction*>::const_iterator it = interactions.begin();
90 for(;it!=interactions.end();it++) {
91 if ((*it)->isOfType<
T>()) {
92 result.push_back(
static_cast<T*
>(*it));
#define SOMANAGEDINTERACTION_API
File to resolve system dependencies in View2D library.
SoCommandAction is the base class for instantaneous actions.
SoInteractionProvider is an abstract interface class that provides interactions to the SoInteractionC...
static SoInteractionProvider * getInteractionProvider(SoNode *node)
Returns a SoInteractionProvider from a SoNode if registered, else NULL.
static void registerInteractionProviderNode(SoType type, GetProviderFunc func)
Registers a function to obtain a SoInteractionProvider from a SoNode.
virtual void pointerLeftWindow(SoState *state)=0
This is called when the mouse cursor leaves the window.
virtual std::list< SoPointingAction * > getPointingActions(SoState *state)
SoInteractionProvider()
Default constructor.
virtual std::list< SoOffsetAction * > getOffsetActions(SoState *state)
std::list< T * > getInteractionsOfType(SoState *state)
Returns list of interactions of a specific type.
virtual ~SoInteractionProvider()
virtual std::list< SoCommandAction * > getCommandActions(SoState *state)
virtual std::list< SoInteraction * > getInteractions(SoState *state)=0
Returns the list of all interactions of this provider.
virtual void pointerPosition(SoState *state, const SoPointerPosition &pos)=0
Override this to always be informed of the current mouse cursor position.
SoOffsetAction is the base class for any interaction that only provides (numeric) offsets in one or t...
SoPointerPosition manages the current position of the mouse cursor.
SoPointingAction is the base class for any mouse based interaction.