FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.

Slides:



Advertisements
Ähnliche Präsentationen
Konzeptioneller Vergleich von VRML, Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen von Christian Stein.
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
Collision Detection in Java3D Hristo Matev WS 02/03.
Eine Seminararbeit von Gerd Mühlinghaus
Klassen - Verkettete Liste -
Konzepte objektorientierter Systeme
Java3D Einfacher scene graph View branch graph BG Shape3D Knoten S
Application Programming Interface Graphische Datenverarbeitung
FH-Hof Einbindung von JavaScript Anweisungen
Java: Programmierung grafischer Oberflächen
Threads Richard Göbel.
Java: Reversi Spielbrett
Sortieren mit Binären Bäumen
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Java: Objektorientierte Programmierung
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
Java2D Richard Göbel.
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
Java: Dynamische Datentypen
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Listen Richard Göbel.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Indirekte Adressierung
Licht und Schatten Richard Göbel.
FH-Hof Automatisches Erzeugen von Geometrie Richard Göbel.
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Animation - Teil 1 Richard Göbel. FH-Hof Themen Darstellung der Geometrie ändern (Transformation, Appearance, etc.) Geometrie ändern (Morphing)
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
FH-Hof Java3D - Grundlagen Richard Göbel. FH-Hof Java3D Konzept Erzeugung eines Szenengraphen als virtuelle Welt Darstellung der virtuellen Welt mit Hilfe.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Java: Referenzen und Zeichenketten
Baumstrukturen Richard Göbel.
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Ein Beispiel in Java.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Abstrakter Datentyp in C++ I - Klasse -
1DVG3 - Eventbehandlung Eventbehandlung. DVG3 - Eventbehandlung 2 Events Events sind externe Ereignisse, die parallel zum normalen Programmablauf auftreten.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
© Prof. Dr. H. Gläser, Graphische Datenverarbeitung Benutzer Interaktion Benutzer Interaktion (interaction): die virtuelle Welt reagiert auf Benutzer Eingaben.
© 2004 Pohlig - Taulien Swing Ereignissteuerung. © 2004 Pohlig - Taulien GK Informatik mit Java 2 Auf Button-Klick reagieren.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
FH-Hof Konfiguration eines Universums Richard Göbel.
FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung.
Template Pattern Richard Göbel.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
FH-Hof Singleton Pattern Richard Göbel. FH-Hof Motivation Bestimmte Klassen sollen nur ein Objekt haben Nur ein Fabrikobjekt für eine Fabrikklasse Zentraler.
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Venusspiegel und Marsschild
Grundkurs Informatik 11-13
 Präsentation transkript:

FH-Hof Interaktion Richard Göbel

FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch Ereignisse aktiviert, z.B.: Aktionen des Anwenders (Tastatur, Maus) Kollisionen Aktionen anderer Behavior-Objekte... Ein Behavior-Objekt führt für ein Ereignis eine Aktion auf einem Knoten des Graphen aus. Für die Erzeugung eines Behavior-Objekt muss eine eigene Unterklasse von Behavior definiert werden!

FH-Hof Aufbau einer Unterklasse von Behavior public class MyBehavior extends Behavior { private Node n; private WakeupCondition wakeup = new... ; public MyBehavior (Node aNode) { n = aNode; } public void initialize () { wakeupOn(wakeup); } public void processStimulus(Enumeration criteria) {... wakeupOn(wakeup); }

FH-Hof Unterklassen von WakeupCondition Eingaben mit Maus und Tastatur: WakeupOnAWTEvent Kollisionen zwischen Objekten: WakeupOnCollisionEntry,... Von Behavior-Klassen ausgelöste Ereignisse: WakeupOnBehaviorPost Kombination von Ereignissen: WakeupAnd, WakeupOr, WakeupOrOfAnds,... und andere...

FH-Hof Behavior-Objekt im Szenengraph - Beispiel public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); TransformGroup trans = new TransformGroup(); trans.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(trans); OtherBehavior beh = new OtherBehavior(trans); beh.setSchedulingBounds( new BoundingSphere()); trans.addChild(beh);... }

FH-Hof Parameter der Methode processStimulus Alle relevanten Ereignisse werden der Methode processStimulus als ein Objekt der Klasse Enumeration übergeben. Zugriff auf die Ereignisse mit den Methoden: hasMoreElements nextElement Für die Abfrage eines Ereignis mit nextElement ist ein geeigneter Cast-Operator zu verwenden. In einigen Fällen kann ein Ereignis-Objekt mehrere elementare Ereignisse enthalten (z.B. WakeupOnAWTEvent )

FH-Hof Parameter der Methode processStimulus public void processStimulus(Enumeration criteria) { Object o; WakeupOnAWTEvent wu; AWTEvent[] events; while (criteria.hasMoreElements()) { o = criteria.nextElement(); if (o instanceof WakeupOnAWTEvent) { wu = (WakeupOnAWTEvent) o; events = wu.getAWTEvent(); for (int i = 0; i < events.length; i++) {... }

FH-Hof Auswahl von Objekten - Konzept Die Position eines Mausklicks im Canvas wird abgefragt. Ausgehend von dem Punkt im Canvas wird eine Linie senkrecht zur "Projektionsfläche" erzeugt. Alle Objekte, welche die Linie berühren sind Kandidaten für die Auswahl. Nur registrierte Objekte ( setPickable ) werden bei der Auswahl berücksichtigt. Das erste registrierte Objekt wird in der Regel ausgewählt.

FH-Hof Auswahl von Objekten - PickMouseBehavior Die Klasse PickMouseBehavior implementiert: initialize processStimulus PickMouseBehavior ruft die Methode updateScene mit Koordinaten des Mausklicks auf. Das Attribut pickCanvas (Objekt der Klasse PickCanvas ) übernimmt die Identifikation des selektierten Objekts. Der Entwickler muss eine Unterklasse von PickMouseBehavior mit der Methode updateScene implementieren!

FH-Hof Auswahl von Objekten - Beispiel Unterklasse public class MyPickBeh extends PickMouseBehavior { public MyPickBeh ( Canvas3D c, BranchGroup r, Bounds b) { super(c, r, b); this.setSchedulingBounds(b); pickCanvas.setMode(PickTool.BOUNDS); } public void updateScene(int xpos, int ypos) { pickCanvas.setShapeLocation(xpos, ypos); PickResult pickResult = pickCanvas.pickClosest(); if (pickResult != null) {... }}}

FH-Hof Auswahl von Objekten – Beispiel 1 updateScene public class MyPickBeh extends PickMouseBehavior {... public void updateScene(int xpos, int ypos) {... PickResult pickResult = pickCanvas.pickClosest(); if (pickResult != null) { Node node = pickResult.getObject();... // Operation für dieses Objekt, z.B.: Object obj = node.getUserData();... }}}

FH-Hof Auswahl von Objekten – Beispiel 2 updateScene public class MyPickBeh extends PickMouseBehavior {... public void updateScene(int xpos, int ypos) {... PickResult pickResult = pickCanvas.pickClosest(); if (pickResult != null) { SceneGraphPath path = pickResult.getSceneGraphPath(); if (path.nodeCount > 0) { Object o = path.getNode(path.nodeCount()-1); if (o instanceof TransformGroup) { tg = (TransformGroup) o;... }}}}

FH-Hof Auswahl von Objekten - Verfahren Argument für pickCanvas.setMode(... ) : PickTool.BOUNDS : umschreibende Form PickTool.GEOMETRY : exakte Überprüfung zwischen Strahl und Geometrie PickTool.GEOMETRY_INTERSECT_INFO : exakte Überprüfung und Bestimmung der Überlappungsposition

FH-Hof Auswahl von Objekten – Szenengraph I public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); BoundingSphere bp = new BoundingSphere(); MyPickBeh beh = new MyPickBeh(this, objRoot, bp); objRoot.addChild(beh);... ColorCube cube = new ColorCube(0.2); MyClass myObject = new MyClass(...); cube.setUserData(myObject); cube.setPickable(true); objRoot.addChild(cube1);...

FH-Hof Auswahl von Objekten – Szenengraph II public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); BoundingSphere bp = new BoundingSphere(); MyPickBeh beh = new MyPickBeh(this, objRoot, bp); objRoot.addChild(beh); TransformGroup tg1 = new TransformGroup(); tg1.setCapability( TransformGroup.ENABLE_PICK_REPORTING);... objRoot.addChild(tg1); ColorCube cube = new ColorCube(0.2); cube.setPickable(true); tg1.addChild(cube);...