Entwicklung eines interaktiven Editors für eine 3D visuelle Programmiersprache

Diplomarbeit von Ralf Wegener

Beschreibung

Die Diplomarbeit baut auf der Diplomarbeit "3D Visualisierung und Echtzeitanimation kommunizierender Agenten" von Waldemar Rosenbach auf. In dieser Arbeit wurde die visuelle Programmmiersprache SAM (Solid Agent in Motion) entwickelt, die es ermöglicht, mit sehr einfachen Mitteln eine Echtzeitvisualisierung eines nachrichtenaustauschenden Agentensystems zu programmieren. Der Programmcode für diese Programmiersprache ist einfach und überschaubar, wodurch komplizierte Agentensysteme durch einfachen Programmcode animiert dargestellt werden können. Solche SAM-Programme können auf zwei Arten visualisiert werden. Es gibt zum einen die abstrakte SAM-Sicht, in der das konstruierte Agentensystem durch primitive Objekte (Kugel, Pyramiden, Quader, Zylinder) dargestellt wird und zum anderen die konkrete SAM-Sicht, in der der Benutzer in die 3D Szene Bilder, OpenInventor-Modelle etc. einfügt und ihr so einen realistischen Inhalt gibt.

Bisher wurden SAM-Programme textuell entwickelt, durch den SAM- Interpreter übersetzt und in einem Editor visualisiert und animiert. Die neue Aufgabe besteht nun darin, in einem 3D-Editor ein SAM-Programm direkt manipulativ mit Agenten aufzubauen. Dieser Aufbau erfolgt interaktiv mit dem Benutzer, d.h. er kann durch Drag & Drop eine 3D Szene mit Agenten aufbauen und durch Eingaben in Dialoboxen festlegen, welche Beziehungen zwischen diesen Agenten gelten sollen und wie die Geometrie deiser Szene aussehen soll.
Nach Fertigstellung der Szene wird der SAM-Programmcode generiert und in einer Datei abgespeichert. Diese Datei kann nun vom SAM-Interpreter visuell ausgeführt werden.
Für die exakte Positionierung der primitiven Objekte wird die Diplomarbeit "Entwicklung eines 3D-Widget Editors" von Rolf Zelder benutzt. Die Konzepte dieser Arbeit werden bei der Erstellung einer 3D Szene und zur exakten Bestimmung der Geometrie für die konkrete SAM-Sicht benötigt.

Realisierung

Die Programmierung erfolgt in C++ mit den Grafikbibliotheken Motif 2.0 und OpenINventor. Mit Hilfe der Motif Bibliothek werden die Pulldown Menues und die Dialogboxen mit den entsprechenden Callback Routinen erzeugt. Die 3D Szene wird anhand eines Szenengraphen (baumartige Struktur von Objektknoten) durch OpenInventor aufgebaut. Diese Bibliothek setzt auf OpenGL auf. Die Entwicklung der Software erfolgt auf einem O2 SGI Rechner (Irix 5.3).