Managed Interaction is a framework for handling interactions - mouse gestures, keyboard presses, etc. - that was introduced to the OpenInventor framework in the MeVisLab context. It builds on the conventional input event handling system and replaces it with more abstract interaction objects. This way it tries to solve some of the shortcomings of conventional event handling:
To achieve this discrete interactions are encapsulated into interaction objects. There are currently three different types of interactions:
Each interaction type can be enabled or disabled. Disabled interactions can be discovered but do not react on input events.
Each interaction also has an identifying name. This name consists of the ID of the Inventor node providing this interaction (usually the name of the node, but this can be overridden), and the individual ID of the interaction, separated by a dot from its provider's ID. This name is, e.g., used to centrally override the input mappings for interactions.
Not all Inventor modules in MeVisLab support Managed Interaction yet. Besides it being some work to switch to a Managed Interaction implementation, there are also some backwards compatibility considerations, since the rigidly defined approach of Managed Interaction does not allow to emulate every quirk of an old classic-event-handling based implementation. That is also the reason why some modules have a useManagedInteraction flag to switch to the new behavior.
Note
There is also the caveat that mixing Managed Interaction and classic style modules invalidates some of the guarantees that Managed Interaction normally gives: That only one interaction can ever react to an input, and that the methods of a SoPointingAction are called in a defined order.
Some of the main modules to support Managed Interaction are listed here:
If you want to implement managed interactions for your own Inventor node, have a look at the documentation in the toolbox reference: