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();
91 if ((*it)->isOfType<
T>()) {
#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...
virtual std::list< SoInteraction * > getInteractions(SoState *state)=0
Returns the list of all interactions of this provider.
static void registerInteractionProviderNode(SoType type, GetProviderFunc func)
Register 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.
static SoInteractionProvider * getInteractionProvider(SoNode *node)
Get a SoInteractionProvider from a SoNode if registered, else NULL.
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.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.