Navigation Modes



Since API 1.4, you can set the navigation mode to fit your application's needs.

Enabling & querying

There are 3 navigation modes:

You can:

For example, you can enable the First Person navigation mode as follows.

if (germ.GetNavigationMode() != Germanium.Navigation.FirstPerson) {

Customizing behavior

You can customize the behavior of each navigation mode.

Disabled Mode

This mode is suitable for applications with limited interactivity, such as a fly-through presentation. When this mode is enabled, end-users of your application cannot manipulate the Eye. Specifically:

When you activate the Disabled navigation mode, most likely you want to limit the end-user's interaction with the scene. However, setting this property to true may give the impression that your application is totally non-interactive. Thus, you typically will want to set this property to false.

No navigation mouse cursor
Disabled mouse cursor

The only setting for the Disabled mode is whether or not to show "disabled" mouse cursor when end-users click any of the mouse buttons.


Orbit Mode

This is the default navigation mode of GermaniumWeb, and is suitable for panning applications. When this mode is active, the scene is treated as if it is a miniature. The end-user can explore different parts of the scene quickly, but inspecting a particular part of the scene is more difficult. Specifically:

Maximum target distance

You can set the maximum limit to the distance between the Eye and the target point. This will prevent the end-user from straying too far from the point of interest in the scene.

germ.GetOptions().SetOrbitMaxTargetDistance(500);	// in meters

First Person Mode

This mode is suitable for immersive applications. When this mode is enabled, the scene is treated according to its actual size. Thus, it takes more time for the end-user to explore different parts of the scene; but exploring a particular part of the scene is natural. Specifically:

Eye height
Eye height

You can set the eye height of the virtual person exploring the scene by calling SetFirstPersonEyeHeight().

germ.GetOptions().SetFirstPersonEyeHeight(1.9);	// simulating a basketball player
Floor height
Floor height

You can also set the height of the floor on which the virtual person is standing by calling SetFirstPersonFloorHeight(). As a good practice, you should get the height value from a Level object instead of setting a hard-coded value.

// will be called when loading finishes successfully
function PutVirtualPersonOnSecondFloor()
	// put Eye inside the building
	germ.GetEye().SetPosition(10, 0, 28);
	// make Eye look horizontal
	germ.GetEye().SetOrientation(0, Germanium.DegreeToRadian(35), 0);
	// activate First Person navigation mode
	// set floor height	var currLevel = germ.GetLevelByBBLId('Juke', 'Juke', 'LV02');	germ.GetOptions().SetFirstPersonFloorHeight(currLevel.GetFloorHeight());}
var file = '';
germ.Load(file, null, PutVirtualPersonOnSecondFloor, function(){alert("Loading failed.");});


Retrieved from ""

This page has been accessed 70,880 times. This page was last modified on 26 April 2010, at 02:18.



API Key Registration

Developer Guide
- Introduction
- Buildings
- Point Placemarks
- Line & Polygon      PlacemarksUpdated
- Model Placemarks New
- HTMLBoxes New
- Eye Control
- Clip Planes
- Events
- Coordinate System
- Navigation Modes
- Options

API Documentation

- Applications Gallery
- Hello Germanium
- Interactive samples

More Resources
- API Release Notes
- Developer FAQ
- "A Beginner's Guide" slides
- Training Materials
- Icon Gallery
- Sample Buildings
- BBL Tree

Report Bugs