SoInteractionMapping

InventorModule
genre Interaction
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll SoInteractionControllers
definition SoInteractionControllers.def
keywords mouse, keyboard, event, managed, scheme

Purpose

This module allows to override the mouse/keyboard bindings of interactions provided through the new managed interaction scheme.

Usage

Put this module into an Open Inventor scene graph with managed interactions, _before_ the nodes whose interactions are to be mapped to a new mouse/keyboard binding.

Tips

Note

The order of actions in the ‘override’ fields has no influence on the precedence of the actions. If two actions have the same mapping (and are sensitive at the same position), the action that comes first in the Inventor scene wins.

Output Fields

self

name: self, type: SoNode

Connect this to a group node containing nodes that defined managed interactions. This node must connected _before_ the nodes with the interactions to have some effect.

Parameter Fields

Visible Fields

Override (overridePointingActions)

name: overridePointingActions, type: String

Lines must have the following structure:

[providerID “.”]actionID “:” [trigger][“,” triggers][“,”]

Where triggers look like this:

[“S”[“?”]][“C”[“?”]][“A”[“?”]][“1”[“?”]][“2”[“?”]][“3”[“?”]]

Letters stand for modifier keys Shift, Ctrl and Alt, Numbers for the mouse buttons. If letter or number is followed by a question mark, this modifier or button is completely ignore when matching. If a line does not end on a comma, the default triggers are ignored. If a modifier/button is not given, the action will only trigger if the modifier/button is released.

So now some examples:

SoView2DCSOExtensibleEditor.CSOBrushCreateAction:1

places the brush create action on the left mouse button with released modifiers and other mouse buttons released.

SoView2DCSOExtensibleEditor.CSOBrushCreateAction:S?C2

places the action on the middle mouse button, shift modifier can be pressed or released (because of the S?) , control modifier must be pressed (because it is given as C) and alt modifier needs to be released (because A is not given).

SoView2DCSOExtensibleEditor.CSOBrushCreateAction:

will disable the action completely, because not trigger is given.

Override (overrideCommandActions)

name: overrideCommandActions, type: String

Lines must have the following structure:

[providerID “.”]actionID “:” [shortcut][“,” shortcuts][“,”]

Where shortcuts look like this:

[“S[hift]-“][“C[trl]-“][“A[lt]-“]Keyname

or like this:

[“S[hift]+”][“C[trl]+”][“A[lt]+”]Keyname

If a line does not end on a comma, the default shortcuts are ignored.

Override (overrideOffsetActions)

name: overrideOffsetActions, type: String

Lines must have the following structure:

[providerID “.”]actionID “:” [triggerEntry][“,” triggerEntries][“,”]

Where triggerEntries must conform to the following:

trigger[“;” sensitivity][“;” sensitivity][“;swap”]

(Where sensitivity is a floating point value that gives a multiplication factor for the offset values - if two are given these are different for the two axes an offset action can have. If “swap” is specified, the values for the two axes are swapped. This can e.g. be used for keyboard shortcuts, since normally these are only mapped to the first axis.)

And a trigger can have one of three forms:

“button:”<Trigger as described in Override>
“key:”<Trigger as described in Override>[“/” <Second trigger for opposite direction>]
“wheel:”[“S”[“?”]][“C”[“?”]][“A”[“?”]]

If a line does not end on a comma, the default shortcuts are ignored.

Ignore Other Pointing Actions

name: ignoreOtherPointingActions, type: Bool, default: FALSE

If this is set, all pointing actions not mentioned as override are ignored completely.

Ignore Other Command Actions

name: ignoreOtherCommandActions, type: Bool, default: FALSE

If this is set, all command actions not mentioned as override are ignored completely.

Ignore Other Offset Actions

name: ignoreOtherOffsetActions, type: Bool, default: FALSE

If this is set, all offset actions not mentioned as override are ignored completely.