j3d.org Code

Package org.j3d.ui.navigation

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

See:
          Description

Interface Summary
HeightDataSource A marker interface to indicate that a class can contain direct height information without needing to calculate intersection points.
HeightMapGeometry A marker interface to indicate that an item of geometry contains height map information that will be useful for terrain following and collision detection.
NavigationMouseProcessor Abstract interface to take mouse events and process them for a navigation response.
NavigationState A collection of navigation state information constants.
NavigationStateListener A listener interface used to communicate changes in the navigation state from one handler to another.
ViewpointSelectionListener A listener interface used to communicate changes in the navigation state from one handler to another.
 

Class Summary
NavigationStateManager A handler for navigation state to make sure that all the right events are passed around the system and everyone agrees on the same state.
NavigationToolbar A toolbar for all navigation commands.
ViewpointCellRenderer An implementation of a ListCellRenderer specific for viewpoint data in the viewpoint selection toolbar.
ViewpointData A class to represent viewpoint information so that we can put it on screen, move around to it etc etc.
ViewpointToolbar A toolbar for all view manipulation commands that offers convenient and common code.
 

Package org.j3d.ui.navigation Description

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

The classes here are designed to work with any 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!


j3d.org Code

Latest Info from http://code.j3d.org/
Copyright © 2001 - j3d.org