Tutorial:Developing Aristoteles3D-PlugIns

From Aristoteles

Jump to: navigation, search

Contents


Aristoteles3D-PlugIns

The Aristoteles3D Viewer provides 5 types of interfaces to extend the viewer, without the need to recompile the core aristoteles project. Using this option you can develope and compile extensions without the need to have access to the aristoteles source code. You only need the jar-files provided with the binary aristoteles version.

Available types of PlugIns

Importer

These plugins implement different importers for different file formats like gml, x3d, vrml97 ... An importer is able to add data to the viewer. First by converting a imported file to a valid gml file and use the ogc.gml.Document to open this new virtual file or second by directly creating a java3d scene tree and add this to the viewer. The first option provides full semantic access to the objects, the objects loaded via the second option will only be "background objects" which are not accessible via the viewer interface yet!

Exporter

These plugins convert a loaded gml-file or java3d scene tree into one file format and write it to the hard disk on a given location.

Picking

These plugins enable the implentation of operations that require interactive access to the loaded scene objetcs. One example for this is a plugin to add textures to visualized objects.

Operator

These plugins are intended for "background" operations. Examples for this type are selection operations providing query mask, then performing the selection operation on all scene objects and finally displaying the result.

Control

With this interface it is possible to realize new navigation types. While the AristotelesViewer provides only two navigation types it might occur that you prefer a totally different kind of navigation, e.g. a navigation as used by Google Earth.


What do you have to do to realize a plugin ?

  1. Extend the associated abstract root classes for the inteded type
    possible are:
    • aristoteles.plugin.AbstractSceneImporter
    • aristoteles.plugin.AbstractSceneExporter
    • aristoteles.plugin.AbstractPickingOperator
    • aristoteles.plugin.AbstractSceneOperator
    • aristoteles.plugin.NavigationUnitInterface
  2. Add the root class to the plugin.xml
    1. add a new tag with the localname of the plugintype
    2. set its class attribute to the complete canonical name of your plugin
  3. Restart your aristoteles viewer
powered by