Virtuelle Realität und Simulation - Übung 2
Java-Script
Prof. Dr. Gabriel Zachmann (zach@in.tu-clausthal.de) David Mainzer (dm@tu-clausthal.de)
Institut für Informatik 20. November 2008
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 1
Gliederung
Software – Viewer/Editor VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation Java-Script
Ihre Aufgabe
Gliederung
Software – Viewer/Editor VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation Java-Script
Ihre Aufgabe
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 3
VRML-Viewer
Auf der VL-Website finden Sie Links zu diversen Viewern – InstantReality (Windows / OSX / Linux)
– FreeWRL (Linux / OSX (SourceCode verfügbar)) – Cortona dies ist ein kommerzielles Plugin für Browser
Rate zu InstantReality (bisher kein ebuild für Gentoo (amd64)) – Entwickelt durch Fraunhofer IGD
– Besitzt eine Art Debug-Konsole (siehe Anhang)
– Unterstützt Java und .Net für EAI (External Authoring Interface)
Manipulation
Editor
Hier sollte jeder seinen eigenen Favoriten wählen (rein Text basiert oder mit grafischer Oberfläche)
X3D-Edit scheint ein recht ausgereifter Editor zu sein Auch Notepad / Kwrite ...
Selber nutze ich vim / gvim (existiert Syntax-Highlighting)
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 5
Gliederung
Software – Viewer/Editor VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation Java-Script
Ihre Aufgabe
Lsg letzte Übungsblatt
Lösungen bitte per USB Stick an mich – oder direkt vorführen Später eventuell auf der Powerwall ?
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 7
Gliederung
Software – Viewer/Editor VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation Java-Script
Ihre Aufgabe
Java-Script — ECMAScript (ECMA 262)
Häufig für DOM Scripting in Browsern eingesetzt Wird zur Laufzeit interpretiert
Von allen aktuellen Browsern unterstützt – eventuell aus Sicherheitsgründen deaktiviert
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 9
Syntax I
Syntax ähnlich C/C++/Java
Variablen müssen nicht definiert werden
– Obwohl die Spezifikation sagt es soll var benutzt werden Daten-Typen
– Numbers (integers,float), boolean, string, objects, null, undefined
Automatische Konvertierung
– A = ’a’ + 9 = ’a9’
Syntax II
Arithmetik
– + * / % ++ - - - Vergleich
– == != > >= < <=
Boolean
– && || ! Strings
– ’Hello’ + ’World’
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 11
Syntax III
i f ( c o n d i t i o n ) { s t a t e m e n t s ; } e l s e { s t a t e m e n t s ; } switch ( e x p r e s s i o n ) {
case ’ l a b e l ’ :
5 statement ;
break;
d e f a u l t: s t a t e m e n t s ; }
10
f o r ( i n i t i a l statement ; t e s t ; increment ) { s t a t e m e n t s }
do { s t a t e m e n t s ; } while ( c o n d i t i o n ) ; 5 while ( c o n d i t i o n ) {
s t a t e m e n t s ; }
Syntax IV
f o r ( v a r i a b l e i n o b j e c t ) { s t a t e m e n t s ;
}
Kommentare
/ / comment t y p e 1 /∗ comment t y p e 2 ∗/
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 13
Script Interface
field – Lokale Variable mit default Wert
eventIn – Funktion mit gleichem Namen wird aufgerufen;
Parameter: [value(s), time stamp]
eventOut – Wird zurück gegeben, wenn Variable mit diesem Namen gesetzt wird
Achtung: exposedField ist nicht erlaubt
Zugriff auf VRML Szene V1
# d e f i n e t r a n s f o r m a t i o n w i t h some o b j e c t s l i k e BOX , SPHERE , . . . DEF MyTrans Transform { . . . }
# Java S c r i p t w i t h e v e n t I N ( f u n c t i o n ) incoming 5 # and eventOUT ( r e s u l t ) o u t g o i n g
DEF MyScript S c r i p t { eventIn SFVec3f incoming eventOut SFVec3f outgoing 10 u r l [ ’ j a v a s c r i p t :
f u n c t i o n incoming ( v a l u e ) { outgoing = v a l u e ; } ’
]
15 }
# send o u t g o i n t t o MyTrans . t r a n s l a t i o n ROUTE MyScript . outgoingTOMyTrans . t r a n s l a t i o n
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 15
Zugriff auf VRML Szene V2
# d e f i n e t r a n s f o r m a t i o n w i t h some o b j e c t s l i k e BOX , SPHERE , . . . DEF MyTrans Transform { . . . }
# Java S c r i p t w i t h e v e n t I N ( f u n c t i o n ) incoming 5 # and eventOUT ( r e s u l t ) o u t g o i n g
DEF MyScript S c r i p t { eventIn SFVec3f incoming f i e l d SFNode MTUSEMyTrans 10 u r l [ ’ j a v a s c r i p t :
f u n c t i o n incoming ( v a l u e ) { MT. s e t _ t r a n s l a t i o n = v a l u e ; } ’
]
15 }
Objekte
SFVec3f , SFColor etc. sind Objekte
v a r i a b l e = new SFVec3f ( ) ; v a r i a b l e = new SFVec3f ( 1 , 2 , 3 ) ;
V a r i a b l e [ 0 ] = 9 ; V a r i a b l e [ 1 ] = 5 ; V a r i a b l e [ 2 ] = 0 ;
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 17
Mathefunktionen
Zum Beispiel:
– sin – cos
– floor (Untergrenze)
Math . s i n ( . . . ) ; Math . cos ( . . . ) ; Math . f l o o r ( . . . ) ; Math . P I ;
Funktioniert wie im reinen JavaScript
Gliederung
Software – Viewer/Editor VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation Java-Script
Ihre Aufgabe
Autor: David Mainzer Virtuelle Realität und Simulation - Übung 2
Institut für Informatik 19