Scripts
Java
La puissance de VRML est due en grande partie à sa faculté
de s'interfacer 'facilement' avec un langage de programmation tel Java.
L'appel d'un programme Java (une classe) externe ne diffère en rien
de l'appel d'un script JavaScript: il suffit de donner à l'url
l'adresse du fichier .class à appeler.
Par contre, développer en Java demande beaucoup plus de ressources
que de développer en JavaScript. Il vous faudra posséder
un outil de développement tel le JDK de Sun (gratuit) et surtout
apprendre à maitriser ce langage. L'appel d'un script Java est désigné
par le terme JSAI (Java
Scripting Authoring
Interface). Pour que les exemples de ce cours
fonctionnent, il faut que votre système soit configuré selon
les spécifications de votre navigateur VRML. A titre indicatif voici
un extrait de mon autoexec.bat pour utiliser
JSAI avec Netscape 4.04 et Cosmo
Player 2.1 sous W95:
SET CLASSPATH=C:\Program
Files\Netscape\Communicator\Program\Plugins\npcosmop21.jar
Le développement en Java sera abordé dans le cours
sur les techniques avancées et en particulier dans le chapitre sur
l'EAI (External
Authoring Interface)
qui permet de faire intéragir une applet Java et une scène
VRML au sein d'une page web.
Les exemples du cours ont été réalisés
avec le JDK 1.1.3 de Sun et avec l'aide de l'éditeur Java freeware
Bluette.
Exemple - Source VRML:
#VRML
V2.0 utf8
#
Script Java : Pendule
#
S. Geunier - Membre du GVF
NavigationInfo
{
}
DirectionalLight
{
}
Transform
{
translation
0 2 0
children
[
Shape
{
geometry
Box {
}
appearance
Appearance {
}
}
DEF
T_R Transform
{
translation
0 -1.5 0
center
0 1.5 0
children
[
Shape
{
}
Transform
{
translation
0 -1.5 0
children
[
Shape
{
geometry
Sphere {
}
appearance
Appearance {
}
}
]
}
]
}
]
}
DEF
TS TimeSensor
{
stopTime
-1
loop
TRUE
cycleInterval
2
}
DEF
Programme Script
{
directOutput
TRUE
url
"pprog.class"
eventIn
SFFloat
temps
eventOut
SFRotation
rotation
}
ROUTE
TS.fraction_changed
TO Programme.set_temps
ROUTE
Programme.rotation_changed
TO T_R.set_rotation
Analyse:
Cet exemple simule le fonctionnement d'un pendule. Le bloc Script
appelle le programme Java externe pprog.class
dont le source est donné ci-dessous.