#VRML V2.0 utf8 Group { children [ # Axes Shape { appearance Appearance { material Material { emissiveColor 1.0 1.0 1.0 diffuseColor 1.0 1.0 1.0 } } }, Shape { geometry IndexedLineSet { coord Coordinate { point [ # Green line -3.0 -3.0 0.0, -2.0 -1.0 0.0, -1.0 -3.0 0.0, -2.0 -1.0 0.0, -1.0 1.0 0.0, 0.0 -1.0 0.0, -1.0 1.0 0.0, 1.0 3.0 0.0, 3.0 1.0 0.0, 2.0 -1.0 0.0, 3.0 1.0 0.0, 4.0 -1.0 0.0 3.0 -3.0 0.0 4.0 -1.0 0.0 5.0 -3.0 0.0 ] } coordIndex [ # Green line 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, ] colorPerVertex FALSE color Color { color [ 0.0 1.0 0.0, 1.0 0.0 0.0 ] } colorIndex [ 0, 1 ] } } ] } DEF Cube Transform { translation -4.5 0.65 -5 children [ DEF CubeTouch TouchSensor { } DEF CubeTimer TimeSensor { cycleInterval 40.0 } DEF CubePositionInterp PositionInterpolator { key [0, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65, 0.70 0.75, 0.80, 0.85, 0.90, 0.95, 1] keyValue [1 3 0, -1 1 0, -2 -1 0, -3 -3 0, -2 -1 0, -1 -3 0, -2 -1 0, -1 1 0, 0 -1 0, -1 1 0, 1 3 0, 3 1 0, 2 -1 0, 3 1 0, 4 -1 0, 3 -3 0, 4 -1 0, 5 -3 0, 2 -1 0, -2 0 -5 -4.5 0.65 -5 ] } Shape { appearance Appearance { material Material { emissiveColor 1 0 0 } } geometry Sphere {radius 0.2 } } ] } ROUTE CubeTouch.touchTime TO CubeTimer.set_startTime ROUTE CubeTimer.fraction_changed TO CubePositionInterp.set_fraction ROUTE CubePositionInterp.value_changed TO Cube.set_translation Transform { translation -22 1 -20 children [ Shape { geometry Text { string "Click the small sphere to see" fontStyle FontStyle { size 1 family [ "SANS" ] style "PLAIN" horizontal TRUE #SFBool leftToRight TRUE #SFBool topToBottom TRUE #SFBool justify [ "BEGIN" ] spacing 1.0 } } } ] } Transform { translation -22 0 -20 children [ Shape { geometry Text { string "DEPTH FIRST TREE demonstration" fontStyle FontStyle { size 1 family [ "SANS" ] style "PLAIN" horizontal TRUE #SFBool leftToRight TRUE #SFBool topToBottom TRUE #SFBool justify [ "BEGIN" ] spacing 1.0 } } } ] }