[Open Inventor]
Context
SoHandleEventAction is used to allow nodes in a scene graph to handle input events (e.g. from a mouse or keyboard). Manipulator, dragger and selection nodes respond to and process events. Most group nodes just pass the event to their children, while most other nodes simply ignore the action.
The SoEventCallback node invokes a callback/delegate method when traversed by a handle event action processing a specific type of event (e.g. key press event). This is the primary mechanism for handling event input in Open Inventor. See below what is allowed in such a callback.
Description
You must not change parts of the scene graph that are already traversed during a SoEventCallback. The behavior is undefined in this case. More generally, you can change any part of the scene graph that does not affect the path of the SoEventCallback as soon as the handle event action stops at the end of the SoEventCallback traversal. If the scene graph is created such as:
Do not modify the red parts during the SoHandleEventAction. The green parts can be modified if the SoHandleEventAction stops at the SoEventCallback node.
For all modifications that are not in this use case, use a SoOneShotSensor.