#VRML V2.0 utf8 ## ##:@* spheres ##@ HUD Transform { translation 0 0 15 children [ DEF REDSPHERES Transform { ##translation -8 0 -35 translation -15 0 -35 scale 2 2 2 children [ Transform { children [ DEF REDSPHERE Shape { appearance DEF REDSPHEREAPP Appearance { material DEF REDSPHEREMAT Material { emissiveColor 1 0.0 0.0 diffuseColor 1 0.2 0.2 transparency 0.4 } } geometry Sphere {} } ] } Transform { children[ Shape{appearance USE REDSPHEREAPP geometry Sphere{} }]} Transform { children[ Shape{appearance USE REDSPHEREAPP geometry Sphere{} }]} Transform { children[ Shape{appearance USE REDSPHEREAPP geometry Sphere{} }]} Transform { children[ Shape{appearance USE REDSPHEREAPP geometry Sphere{} }]} Transform { children[ Shape{appearance USE REDSPHEREAPP geometry Sphere{} }]} Transform { children[ Shape{appearance USE REDSPHEREAPP geometry Sphere{} }]} Transform { children[ Shape{appearance USE REDSPHEREAPP geometry Sphere{} }]} ] } DEF REDTIMER TimeSensor { enabled TRUE cycleInterval 12 loop TRUE } DEF REDSCRIPT Script { directOutput TRUE eventIn SFFloat trigger field SFNode spheres USE REDSPHERES url "javascript: function initialize() { } function trigger(v,t) { a = v*14*3.14; b = v*12*3.14; c = v*16*3.14; d = v*2*3.14; i = 0; for(i=0;i<8;i++) { spheres.children[i].translation = new SFVec3f( i*2+Math.sin(a), 0.5*Math.cos(b)+6*Math.sin(d), 0.5*Math.sin(c) ); spheres.children[i].children[0].geometry.radius = 1+0.1*Math.sin(c); a+=0.8; b+=0.5; c+=0.7; } // sphere.appearance.material.transparency = 0.6; } " } ROUTE REDTIMER.fraction_changed TO REDSCRIPT.trigger ] } ##