#VRML V2.0 utf8 # on s'éloigne, pour profiter de l'animation Viewpoint { position 0 0 20 } # un transform pour faire bouger un cube # C'est bien sur ce noeud que sera appliquer le PositionInterpolator DEF Cube Transform { children [ # le cube qui va bouger Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Box {} } # Un TouchSensor pour gérer le clique sur un cube DEF TouchS TouchSensor {} # Le TimeSensor qui va rythmer l'animation DEF TimeSource TimeSensor { cycleInterval 2.0 # l'animation va dure en tout deux seondes startTime 0 loop FALSE # L'animation est jouée une fois } # Voila le PositionInterpolator DEF Animation PositionInterpolator { # Un seul déplacement de gauche à droite key [ 0, 1 ] # La liste des positions du cube keyValue [ 0 0 0 , 4 0 0 ] } ] } # Quand on clique sur le cube, on démarre de TimeSensor, pour démarrer l'animation ROUTE TouchS.touchTime TO TimeSource.startTime # on copie la fraction du TimeSensor sur la fraction de l'animation ROUTE TimeSource.fraction_changed TO Animation.set_fraction # On copie la valeur calculée sur la position du cube ROUTE Animation.value_changed TO Cube.translation