21
Einführung in VRML - Teil 2 „Advanced Features“

Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

Embed Size (px)

Citation preview

Page 1: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

Einführung in VRML - Teil 2

„Advanced Features“

Page 2: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 2

Inhalt

Typen- und Event-ModellModularisierungskonzepteInteraktionBrowserinteraktionAnimation

Page 3: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 3

Typen- und Event-Modell

Felder eines Knotens

Bestehen aus 4 Teilen Feldtyp (field, exposedField, eventIn,

eventOut) Datentyp (MFNode, SFVec3f, ...) Name (translation, ...) Default-Wert ( 0 0 0, [] ...)

Page 4: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 4

Typen- und Event-Modell

Feldtypen

field wird nur einmal gesetzt

exposedField kann verändert werden

eventIn Eingang von EventseventOut Ausgang von

Events

Page 5: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 5

Typen- und Event-Modell

Event-Konventionen

Konventionen zur Bezeichnung bestimmter Events Präfix set_ für eventIn (set_on) Suffix _changed für eventOut

(enabled_changed) Präfix is für Boolean-Ereignisse (isActive) Suffix Time für Time-Ereignisse (enterTime) Suffix Children für Manipulation von

KindKnoten (addChildren)

Page 6: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 6

Modularisierungskonzepte

DEF/USE

Jeden Knoten kann mit DEF ein (eindeutiger) Name gegeben werden.z.B.: DEF Baum Transform{ ... }

Benannter Knoten kann mit USE wiederverwendet werden.z.B.: children USE Baum

Page 7: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 7

Modularisierungskonzepte

Inline

Externe VRML-Dateien werden über den Inline-Knoten eingebunden.

Bsp.: Inline {url „foobar.wrl“ }

Page 8: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 8

Modularisierungskonzepte

PROTO

Zur Erzeugung eigener Knoten dient das PROTO-Konzept.

Zwei Teile: Deklaration der Felder Definition des Objekts

Page 9: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 9

Modularisierungskonzepte

PROTO - Beispiel

PROTO Quader[field SFVec3f Groesse 4 2 1 ] {

Box { size IS Groesse }}

Zugriff auf Felder mit Schlüsselwort IS.

Benutzung des Objekts nur innerhalb einer Datei

Page 10: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 10

Modularisierungskonzepte

EXTERNPROTO

Mit EXTERNPROTO können PROTOs aus anderen Dateien benutzt werden.

Dazu muß aber die Felddeklaration lokal wiederholt werden.

Bsp.:EXTERNPROTO Baum [field SFColor Blätter 0 1 0 ]„http://www.wald.de/baum.wrl“

Page 11: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 11

Interaktion

ROUTE

Mit ROUTE können eventIn- mit eventOut-Feldern verbunden werden

ROUTE-Befehle stehen außerhalb der restlichen Knoten-Deklarationen

Die zu verbindenden Knoten müssen mit DEF benannt sein, um sie anzusprechen

Page 12: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 12

Interaktion

ROUTE - Beispiel

ROUTE Schalter.enabled TO Licht.on

Verbundene Knoten müssen vom gleichen Datentyp sein.

Page 13: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 13

Interaktion

Sensoren

Um auf Ereignisse reagieren zu können benutzt man Sensoren, deren Ausgabe dann mit ROUTE in entsprechende Objekte umgeleitet wird.

Sensoren sind einer Knoten und seinen evtl. Kindern zugeordnet

Page 14: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 14

Interaktion

TouchSensor

Reagiert auf Berührung (Anklicken)Benutzung:ROUTE Taste.touchTime TO Musik.set_startTime

Page 15: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 15

Interaktion

PoximitySensor

Reagiert auf Betreten eines QuadersBsp:DEF Raum ProximitySensor{

size 10 10 10}ROUTE Raum.enterTime TO Musik.setStartTime

Page 16: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 16

Interaktion

TimeSensor

Läßt eine Uhr ablaufenWichtig für Animation (später)Wichtige Parameter:

loop: Wenn TRUE, dann zyklisches Ablaufen der Uhr

cycleIntervall: Länge der Zeit, die ablaufen soll in Sekunden

Page 17: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 17

Interaktion

TimeSensor - Beispiel

DEF Wecker TimeSensor{loop TRUEcycleIntervall 60

}...ROUTE Wecker.cycleTime TO Alarm_Ton.startTime

Page 18: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 18

Browserinteraktion

Anchor

Links ins WWW realisierbar mit dem Anchor-Knoten.

Reagiert auf Anklicken des Objekts.Parameter

url - URL der zu ladenden Seite parameter - zusätzliche Informationen

mit „target=xxx“ können Frames angesprochen werden

Page 19: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 19

Animation

Interpolatoren

Zur Animation (= fließender Veränderung von Objektparametern) benutzt man Interpolatoren.

Diese berechnen den Weg entlang eines „Wertepfades“ mit linearer Interpolation

Jede Ecke auf diesem Pfad wird durch ein Wertepaar im key/keyValue-Feld festgelegt.

Page 20: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 20

Animation ColorInterpolator

Animation von FarbwertenBsp.:

DEF Timer TimeSensor{cycleIntervall 5.0loop TRUE }

DEF FarbGeber ColorInterpolator{key [0, 1]keyValue[0 0 0, 1 0 0] }

ROUTE Timer.fraction TO FarbGeber.fractionROUTE FarbGeber.value TO Blinker.color

Page 21: Einführung in VRML - Teil 2 Advanced Features. 7. 7. 2000AWS 2000 - Jan Schröter2 Inhalt zTypen- und Event-Modell zModularisierungskonzepte zInteraktion

7. 7. 2000 AWS 2000 - Jan Schröter 21

Animation Weitere Interpolatoren

CoordinateInterpolator Animation von 3D-Koordinaten

OrientationInterpolator Animation von Rotationen