JReality

JavaTM Virtual Reality Applications
"CM Surveyor"TM Usage Howto

Avatar Movement

Avatar Movement

          /\     Head
        /____\ 
         |  |
         |__|    Body
        /    \
       |  /\  |
       |/    \|  Tail

     Avatar Symbol
Purpose: Iconic representation of a person viewing the 3D scene. Provides visual indication of view position and view angle.

Usage:

Notes: View position determined by coordinates of point at center of avatar Body. View angle determined by direction in which avatar Head points.

Alternate iconic shapes for the avatar are possible, but not yet implemented.

Mouse-driven Movement

+Azimuth <--> -Azimuth
          /\               ____           +Elevation
        /____\ Head        \   \______|\    ^
         |  |               \   |     |  \  |
         |__| Body          /   |_____|  /  |
        /    \             /___/      |/    v
       |  /\  | Tail                      -Elevation
       |/    \|

    0 deg Azimuth          0 deg Elevation
  (Top View Window)    (End,Side View Windows)
Purpose: Provides ability to change view position and view angle using the mouse.

Usage:

  • To Change View Position (Translation):
    1. Press mouse button while on avatar Body.
    2. Note change of avatar cursor.
    3. Drag avatar.
    4. Release mouse button when at desired location.
    The new position is the location of the center of the Body of the avatar outline cursor at the time of release.
  • To Change View Angle (Rotation):
    1. Press mouse button while on avatar Head or Tail.
    2. Note change of avatar cursor.
    3. Drag avatar.
    4. Release mouse button when at desired angle.
    The new angle is the angle of the cursor at the time of release relative to the center of the avatar Body.

Notes: The avatar translational cursor is an unfilled outline of the avatar shape. The avatar rotational cursor is system dependent; for example, on Linux it is a cursor consisting of two crossed arrows.

When dragging or rotating the avatar with the mouse, the VR window will continuously update at the current VR Refresh Rate or at the maximum rate your system can handle, whichever is slower. The section window views are updated when the mouse button is released.

Moving the translational cursor to a location that is outside the 2D section window will cause the avatar to move to that location, and may cause it to disappear from the section window(s). In that event, control of the avatar in the affected views may be regained by using Precise Positioning or Keyboard-driven Movenment, or, possibly, by reducing the magnification factor.

Mouse-driven movement is limited in accuracy to one pixel of resolution. The scene distance represented by one pixel depends on the current Zoom Menu setting. To position the cursor at an exact location or angle, use Precise Positioning.

Ability to "drag the avatar by the nose" thereby changing position and angle simultaneously is possible, but is not yet implemented.

Keyboard-driven Movement

    +---++---++---++---++---++---++---++---++---++---+
    | 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0 |
    +---++---++---++---++---++---++---++---++---++---+

                +---+                   +---+
                | w |                   | i |
                +---+                   +---+
 +-------+   +---++---+---+          +---++---+---+
 | Shift |   | a || s | d |          | j || k | l |
 +-------+   +---++---+---+          +---++---+---+
 +-------+
 | Ctrl  |
 +-------+                                                 +---+
                                                           | ^ |
              +---------------------------+           +---++---++---+
              |          spacebar         |           | < || v || > |
              +---------------------------+           +---++---++---+
Purpose: Provides ability to change view position and view angle using the keyboard.

Usage:

  • To Give Keyboard Focus to a Section Window: Click the mouse in the blue background of the section window in which the avatar is to be moved. Keyboard input will now be directed to this section window.
  • To Transfer Keyboard Focus from one Section Window to Another: Press the space bar. Subsequent keyboard input will be sent to the next section window to the right, or will wrap from the rightmost to the leftmost. A section window must already have the keyboard focus for spacebar tranfer to work!
  • To Change View Position (Translation):
    1. Give or Transfer Keyboard Focus to a Section Window.
    2. Press w, i, or up arrow key to move avatar toward the top of the section window.
    3. Press s, k, or down arrow key to move avatar toward the bottom of the section window.
    4. Press a, j, or left arrow key to move avatar toward the left of the section window.
    5. Press d, l, or right arrow key to move avatar toward the right of the section window.
    With each keystroke, the avatar will move a number of pixels equal to the Step Rate.
  • To Change View Azimuth Angle (Rotation):
    1. Give or Transfer Keyboard Focus to a Section Window.
    2. Press and hold down either the Shift or Ctrl key.
    3. Press a, j, or left arrow key to rotate avatar in the (+) Azimuth direction.
    4. Press s, k, or right arrow key to rotate avatar in the (-) Azimuth direction.
    With each keystroke, the Azimuth angle will change one-half degree times the Step Rate. For example, if the Step Rate is 6, the Azimuth will change 0.5 * 6 = 3 degrees per keystroke.

  • To Change View Elevation Angle (Rotation):
    1. Give or Transfer Keyboard Focus to a Section Window.
    2. Press and hold down either the Shift or Ctrl key.
    3. Press w, i, or up arrow key to rotate avatar in the (+) Elevation direction.
    4. Press z, m, or down arrow key to rotate avatar in the (-) Elevation direction.
    With each keystroke, the Elevation angle will change one-half degree times the Step Rate. For example, if the Step Rate is 6, the Elevation will change 0.5 * 6 = 3 degrees per keystroke.
  • To Change the Step Rate:
    1. Give or Transfer Keyboard Focus to a Section Window.
    2. Press the 0 to 9 numeric key corresponding to the value of the desired Step Rate.
    The Step Rate may also be changed using the Step Rate Menu.

Notes: Most operating systems support key auto-repeat, allowing continuous movement of the avatar by holding down a single key.

When translating or rotating the avatar with the keyboard, the VR and section windows will update with each keystroke. One slower systems, the time to redraw the section views can introduce significant delays into the time between keystrokes, making avatar movement appear jerky or discontinuous.

Keyboard-driven movement is limited in accuracy to one pixel of resolution. The scene distance represented by one pixel depends on the current Zoom Menu setting. To position the cursor at an exact location or angle, use Precise Positioning.

Precise Positioning

+Azimuth <--> -Azimuth
          /\               ____           +Elevation
        /____\             \   \______|\    ^
         |  |               \   |     |  \  |
         |__|               /   |_____|  /  |
        /    \             /___/      |/    v
       |  /\  |                           -Elevation
       |/    \|

    0 deg Azimuth          0 deg Elevation
  (Top View Window)    (End,Side View Windows)

         |  _______    ________    ________    _______     _______    |
#7 Text  | |_______|X |________|Y |________|Z |_______|Az |_______|El |
   Fields|____________________________________________________________|
Purpose: Provide ability to set view position and view angle to exact values.

Usage:

  • To Set Exact View Position (Translation): Use X, Y, and Z Text Fields.

  • To Set Exact View Angle (Rotation): Use Az (Azimuth) and El (Elevation) Text Fields.

Notes: Precise positioning is also useful for regaining control of a cursor that was moved beyond the display limits of a 2D section window.


Overview - Browser Layout - Avatar Movement
File Menu - Personal Menu - Environ Menu - Section Menu
Fidelity Menu - View Menu - Hyperlinking

Copyright (C) 2000-2003 LDJ Trust