#VRML V2.0 utf8 Interactive Terrahedron, Evgeny Demidov, 12 July 2000 NavigationInfo{ type "EXAMINE" } Viewpoint{ description "start"} Background{ skyColor 0 0 .75} DEF Clock TimeSensor { cycleInterval 15} DEF Animation OrientationInterpolator { key [ 0, .5, 1 ] keyValue [ 0 1 0 0, 0 1 0 1.57, 0 1 0 3.14 ]} Transform{ translation -4 -1 0 rotation 1 0 0 1.57 children[ Shape{ appearance Appearance{ material Material{ diffuseColor 1 0 0}} geometry Cylinder{ height .2 radius .25}} DEF tsRot TouchSensor{} ]} Transform{ translation -4 1 0 children[ Shape{ appearance Appearance{ material Material{ diffuseColor 1 0 0}} geometry Box{ size .4 .4 .2 }} DEF tsPlus TouchSensor{} ]} Transform{ translation -4 0 0 children[ Shape{ appearance Appearance{ material Material{ diffuseColor 0 1 0}} geometry Box{ size .4 .4 .2 }} DEF tsMinus TouchSensor{} ]} DEF ROOT Transform{ rotation 0 1 0 -.25 scale 1.5 1.5 1.5 children[]} DEF Polyhedron Script { eventIn SFBool Plus eventIn SFBool Minus eventOut MFNode new_f field SFNode ROOT USE ROOT directOutput TRUE url ["javascript: function initialize(){ strArr = new MFString(); strArr.length = 10; strArr[0] = 'DEF s0 Shape{ appearance Appearance{ material Material{ emissiveColor 1 1 1}} '+ 'geometry IndexedLineSet{ coord Coordinate{ '+ 'point[0 0 0,0 1.4 0,2 -.6 0,0 -.6 -2,-2 -.6 0,0 -.6 2]} '+ 'coordIndex[1 0 2 -1 3 0 4 -1 0 5]}}'; for ( i= 1; i<10; i++) strArr[i] = 'Transform{ translation 0 .7 0 children '+ 'DEF s'+i+' Transform{ scale .5 .5 .5 children[ '+ strArr[i-1] + ']}} Transform{ translation 1 -.3 0 children USE s'+i+'} '+ 'Transform{ translation 0 -.3 -1 children USE s'+i+'} '+ 'Transform{ translation -1 -.3 0 children USE s'+i+'} '+ 'Transform{ translation 0 -.3 1 children USE s'+i+'} '; iter = 4; new_f = Browser.createVrmlFromString( strArr[iter] ); ROOT.addChildren = new_f; } function Plus(value){ if (value) { //ROOT.removeChildren = new_f; iter++; if (iter > 9) iter = 9; new_f = Browser.createVrmlFromString( strArr[iter] ); ROOT.addChildren = new_f; } } function Minus(value){ if (value) { //ROOT.removeChildren = new_f; iter--; if (iter<0) iter = 0; new_f = Browser.createVrmlFromString( strArr[iter] ); ROOT.addChildren = new_f; } } "]} ROUTE tsPlus.isActive TO Polyhedron.Plus ROUTE tsMinus.isActive TO Polyhedron.Minus ROUTE tsRot.touchTime TO Clock.startTime ROUTE Clock.fraction_changed TO Animation.set_fraction ROUTE Animation.value_changed TO ROOT.rotation