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>
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.
virtual std::list< SoInteraction * > getInteractions(SoState *state)=0
Returns the list of all interactions of this provider.
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.
SoInteractionProvider()
Default constructor.
std::list< T * > getInteractionsOfType(SoState *state)
Returns list of interactions of a specific type.
virtual ~SoInteractionProvider()
virtual std::list< SoOffsetAction * > getOffsetActions(SoState *state)
virtual std::list< SoCommandAction * > getCommandActions(SoState *state)
virtual std::list< SoPointingAction * > getPointingActions(SoState *state)
virtual void pointerPosition(SoState *state, const SoPointerPosition &pos)=0
Override this to always be informed of the current mouse cursor position.
SoInteractionProvider *(* GetProviderFunc)(SoNode *)
static SoInteractionProvider * getInteractionProvider(SoNode *node)
SoPointerPosition manages the current position of the mouse cursor.