LEMMA Interactable GUIs

Currently the following interactables are available:
  • intern and extern:
    • Dragger3D spatial manipulation
    • VectorInput3D input by pulling out vectors
    • Button3D the name says it
    • Switch3D a button with an on- and off- state
    • Slider3D a board that can be dragged to generate a value between 0 and 1

  • only system intern:
    • LabeledIcon3D like Button3D but with icon and text
    • LabeledIconSwitch3D like Switch3D but with icon and text

The user interface is controlled by Interactable GUIs. Those are classes, that inherit from the abstract class Interactable3D.

The class, that uses them has to implement the interface Environment3D. To use them generate them and add them to the using class by the method addInteractable() and give them an actor that can manipulate them by setActor(Node actor). The class that wants to react to their output must implement the interface ActionListener3D (this is very similar to the button concept in AWT/Swing). The Environment asks them in every eventloop for events. The interactables can implement their own update() method. This should always call the super.update() method first. That gives you the property "currentEvent" which is an evaluation of the current gestures. Besides that disabling / enabling automatically takes place. Evaluating currentEvent the interactable can act in two different ways (designed so for more flexibility regarding the authoring system). It produces an ActionEvent3D and provides it to its listeners (again like in the AWT/Swing concept). The other option is that a property "toModify" was set in the authoring system in choosing a modifiable property from a list. The interactable then modifies this property without a listener. Using the Authoring Environment Interactables can be further parameterized. You can find a description of how that works technically here. Interactables can be arranged either in the program or in the 3d modeler (see Modeling).
Topic revision: r3 - 16 May 2007, RainerFink
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Medieninformatik-Wiki? Send feedback