User interface components and capabilities for implementing simple navigation on any Canvas 3D.

The classes here are designed to work with any {@link javax.media.j3d.Canvas3D} to provide fast navigation. These classes do not use the standard behaviour mechanism, instead opting to get the updates directly from the Java AWT system instead.

Apart from the basic navigation code, a set of convenience toolbars are provided that interact with the normal world. These use images from the config area in the navigation sub-directory. Once this code is working nicely, some examples and nice looking pictures will be added here.

Implementation Details

There are a collection of different implementation items within this package. Mostly this is just general run of the mill listener handling and event propogation. There are two major algorithms to be interested in - the terrain following/collision detection code and the mouse movement methods.

A complete tutorial and write up of the terrain following code can be found on the j3d.org Collision Detection Tutorial and further information in the j3d.org Code Repository Navigation Implementation document.

Acknowledgements

This code is based on the work of the Halden VR Centre, Institute for Energy Technology. The code provided from them has been cleaned up dramatically and made more suitable to use as a general library. Regardless, many thanks go to Laszlo Seregi and the team there for providing this codebase!