The aim of this package is to provide an abstract representation of any landscape rendering system. They all operate on a set of basic principles of a basic change in detail dependent on the viewer position, encapsulation of terrain information and the view information. While this package does not provide any hints to the implementation of a particular algorithm, it can be used to represent all of them in a general sense. Each algorithm extends this basic package with their own specific code.
Raw terrain information you probably don't need to implement most of the time.
The repository codebase also includes a number of loaders for different file
formats as well as a generalised implementation of the TerrainData
class that works with these loaders. For most simple cases, you should not
need to do anything more. For more information on this code, have a look at the
{@link org.j3d.loaders} package.
To implement a specific algorithm (eg ROAM) you would extend the {@link org.j3d.terrain.Landscape} class and implement the {@link org.j3d.terrain.Landscape#setView(javax.vecmath.Tuple3f, javax.vecmath.Vector3f)} method. Every time that the user's viewpoint changes, you will be notified by this method (assuming that you have implemented a navigation system that calls it!). That means you should perform any culling/LOD and update the scene graph at this point. This will be called at most once per frame. As this class extends the Java3D {@link javax.media.j3d.BranchGroup} interface, it means that all your geometry of the scene should be added to this class.