Multi-Perspektivität in Modellierung und Simulation

Home  Einführung  Perspektiven  Prototyp  Download  Impressum 

Download

Quellcode

Source-19.11.2007.tar.gz (26MB) enthält alle Dateien der in der Dissertation beschriebenen Software. Der Stand entspricht der Abgabe des schriftlichen Teils vom 31. Oktober 2007.

Verwendete Tools

Die Software ist unter Linux mit mono und MonoDevelop entwickelt worden. Dreidimensionale Grafiken wurden mit Blender erstellt und nach X3D exportiert. Weitere benutzte Software und Tools:

Die Software lässt sich unter Windows mit der mono-Umgebung und entsprechenden Bibliotheken (GTKGLArea, Tao) ausführen (Screenshot), jedoch werden die dreidimensionalen Szenen nicht korrekt dargestellt (Objekte sind transparent). Die Simulation und die Komplexen Objekte sind funktionsfähig.

Struktur

Die Bedeutung der einzelnen Ordner und Projekte im Archiv:

  • cpp
    • gtkglarea-1.99.0(*) - OpenGL GTK-Widget
  • dotNET
    • BondGraph - Die Implementierung der Bondgraph-Bibliothek.
    • ComplexObject - Komplexe Objekte
    • freetype(*) - Bibliothek zum Verarbeiten von True-Type Fonts
    • gtkglarea(*) - >OpenGL GTK-Widget, C# Wrapper
    • mpmod - Der Prototyp einer multi-perspektivischen Modellier- und Simulationsumgebung
    • Ontology - Ontologien für C#
    • shared - Gemeinsam benutzte Bibliotheken. Werden durch Deploy in MonoDevelop automatisch erstellt.
    • Space - Einfache 2D-/3D-Grafikengine
    • tao-2.0.0(*) - OpenGL C# Wrapper
  • Prolog
    • CausalAnalysis.pl - Implemtierung der Kausalitätsanalyse
(*) Diese Bibliotheken verwende ich nur. Alle anderen Elemente sind von mir programmiert.

Starten der Anwendung

Als erstes muss die Konfiguration von mono (/etc/mono/config) angepasst werden:
  <dllmap dll="freetype.dll" target="libfreetype.so" os="!windows" />
  <dllmap dll="opengl32.dll" target="libGL.so" os="!windows" />
  <dllmap dll="freeglut.dll" target="libglut.so.3" os="!windows" />
  <dllmap dll="OpenAL32.dll" target="libopenal.so" os="!windows" />
  <dllmap dll="libgtkglarea-win32-2.0-0.dll" target="libgtkgl-2.0.so.1" os="!windows" />
Jetzt findet mono die entsprechenden Bibliotheken unter Linux, die dort auf .so enden.

Damit mono die gemeinsamen Bibliotheken aus shared findet, muss der die Umgebungsvariable MONO_PATH angepasst werden:
  export MONO_PATH=path-to/dotNET/shared/.

Das Programm wird wie folgt gestartet:
  cd path-to/dotNET/mpmod/mpmod/bin/Debug
  mono mpmod.exe --library ../../../data/library.xml --doc press.xml

Dabei können folgende Parameter angegeben werden:

  • --library <path> Laden einer Komponentenbibliothek
  • --doc <path> Laden einer Szene

Navigation in der virtuellen Welt:

  • Linke Maustaste - Selektion von Objekten und Verschiebung (dragging)
  • Rechte Maustaste - Kontextmenü
  • Mittlere Maustaste - X-/Y-Translation der Kamera
  • Shift+Mittlere Maustaste - Z-Translation der Kamera
  • Strg+Mittlere Maustaste - Heading-Rotation der Kamera
  • Mausrad - Pitch der Kamera
  • Shift+Wheel - Zoom

Probleme, Einschränkungen, TODOs

  • Beim Starten der Anwendung erscheint die dreidimensionale Darstellung zu klein. Ein Resize des Fensters schafft Abhilfe
  • Verbindungen können derzeit nicht per Maus eingegeben werden, sondern müssen in der XML-Datei einer Szene direkt eingegeben werden.
  • Nach dem Starten der Simulation wird die Grafik nicht angepasst. Hier tritt ein Seiteneffekt mit der GTK-Bibliothek auf, der bisher nicht gelöst werden konnte. Abhilfe ist die Benutzung des Step-Buttons.
  • PNG- und SVG-Export setzen voraus, dass das Programm dot im Suchpfad ist.
  • Navigation in der virtuellen Welt ist nicht ergonomisch und muss verbessert werden.
  • ...

Bei Fragen oder Problemen stehe ich gerne zur Verfügung.


©Copyright 2006-2007 by Martin Faust
Verbatim copying and distribution of this entire article is permitted in any medium without royalty provided this notice is preserved.