A primer to the vishnu tk interface


Emmanuel Frécon- emmanuel@sics.se
Olof Hagsand - olof@sics.se


Vishnu is a browser that gives access to multi-user 3D Dive and VRML worlds. The browser is designed to be easy to use. Further information is available on a world-wide web page at http://www.sics.se/dive, or by the Dive contacts (mail: dive-help@sics.se). You can also follow the tutorial.

1. The vishnu window interface

The vishnu window consists of three parts: a header, a viewport and a statusbar. The header consists of a set of menubuttons with pull-down menus and a possible button bar with shortcuts to some usual operations. The viewport displays a 3D view as seen from the user. The status bar located at the bottom of the window displays "interesting" information, such as the current world name.

You can "tear off" menus by pressing the dotted line at the top of each pull-down menu.

1.1 Fundamental concepts - Glossary
    Actor - The virtual user, vishnu is bound to one actor.
    World - A space containing objects where actors reside.
    Object - Entities with graphical representations.
    Avatar - The virtual representation of an actor consisting of a set of objects.
    Head - Top part of avatar that can be independently rotated.
    Eye - The object of the avatar from where the current scene is rendered.
    Navigate - The act of moving the actor's avatar in the world.
    Marked object - The actor's currently selected object (with shift-select or double-click).
    Graspable - Only graspable objects may be marked or moved.

2. Mouse interaction

Vishnu interaction is based on mouse interaction and to some extent keyboard interaction. The four main operations are "activate", "mark", "move" and "rotate". In vishnu, objects are "activated" by pressing the left mouse button. Objects are "marked" by pressing the left mouse button while pressing the shift button or double-clicking with the left mouse button. "Move" is performed by the middle mouse button, while "rotate" by the right mouse button.

2.1 Left mouse button: "activate" and "mark"

When the left mouse button is pressed, objects are "activated". One example of an activated object is a vehicle icon which moves a user when it is activated.

If the shift button is pressed at the same time as the left mouse button, objects are "marked". When an object is marked, it is "blinked". Several operations may be performed on marked objects, such deletion, movements, etc. (see the Objects menu). Only graspable objects may be marked. Marking actually selects an object hierarchy, and it is possible to "traverse" the hierarchy and thereby access sub-hierarchies and individual objects.

2.2 Middle mouse button : "move"

By pressing the middle mouse button and dragging, graspable objects are moved around. If the shift button is pressed at the same time, (without moving) the object is attached to the user. The object then moves along with the user.

If the control button is simultaneously pressed, the object is moved in the z-axis of the user (in/out of the screen)

2.3 Right mouse button : "rotate"

If an object is selected while pressing the right mouse button, the object may be rotated by moving the mouse while keeping the mouse button pressed.

If the control button is simultaneously pressed, the object is rotated according to a different mode.

3. File menu

4. Render menu

The Render Menu contains operations to control the current setting of the 3D graphic rendering. The stationary flags sets the rendering when the actor is not moving, while the Motion flags sets the rendering when the actor moves.

5. World menu

The World menu contains operations on the world that the actor associated with vishnu (self) is in.

6. Object menu

In the objects menu, operations with objects can be performed. Apart from loading and saving objects, operations can be performed on "marked" objects (with "shift select").

7. Self menu

Operations performed on the actor associated with this vishnu.

8. Navigate menu

Vehicles represent tools that allow a user to navigate in 3D space.

Keyboard vehicle

Navigate using the keyboard vehicle:

    <- Turn left.
    - Turn right.
    ^ Move forward.
    v Move backward.
    Home Align y-axis to world.
    +/- Zoom in or out.
    PgUp/PgDown Increase/Decrease speed.
    F1,...,F6 Rotate and change eye view.

9. Tools menu

10. Window menu

The window menu has an entry for each of the top level window which are currently opened by the Dive viewer. Clicking on an entry will deiconify the window, if necessary and raise it to the front.

11. Help menu

12. Status bar

The status bar shows notifications from Dive, such as the number of bytes which have been read since an URL was opened, the HTTP connection status, the result of an HTTP connection, etc.

When the button bar is not shown, the status bar shows additionally the name of the current world, and the URL that was used to access it. The position and presence of the button bar can be controlled using its positioning button or the Tk interface configuration.

13. Button bar

The Button bar shows shortcuts to useful operations which may, otherwise, be found in the menus. The button to the extreme left will attach/detach the button bar from vishnu main window. The Dive logo will be rotating each time Dive is reading from a URL or a local file. Clicking on it will open a menu which replicates the menu of the main window. The location entry shows the URL of the current world and is editable. Pressing return once edition is done will connect to another world.

The remaining buttons, from left to right, in the button bar have the following functions: