#VRML V2.0 utf8 # # Timed-timer # timetime.wrl # by David R. Nadeau # # Demonstrate how to drive one TimeSensor with another one in order # periodically trigger another animation. # WorldInfo { title "Timed timer" info [ "Copyright (c) 1997, David R. Nadeau" ] } Viewpoint { position 0.0 0.0 12.0 description "Entry view" } NavigationInfo { type [ "EXAMINE", "ANY" ] headlight TRUE } # Red Boxes DEF Red Transform { # animated scale children [ Shape { appearance Appearance { material Material { diffuseColor 1.0 0.0 0.0 } } geometry Box { } } ] } Transform { translation 2.0 2.0 0.0 children USE Red } Transform { translation -2.0 2.0 0.0 children USE Red } Transform { translation 2.0 -2.0 0.0 children USE Red } Transform { translation -2.0 -2.0 0.0 children USE Red } Transform { translation 0.0 -2.0 2.0 children USE Red } Transform { translation 0.0 2.0 2.0 children USE Red } Transform { translation 2.0 0.0 2.0 children USE Red } Transform { translation -2.0 0.0 2.0 children USE Red } Transform { translation 0.0 -2.0 -2.0 children USE Red } Transform { translation 0.0 2.0 -2.0 children USE Red } Transform { translation 2.0 0.0 -2.0 children USE Red } Transform { translation -2.0 0.0 -2.0 children USE Red } # Blue Boxes DEF Blue Transform { translation 2.0 0.0 0.0 # animated scale children [ Shape { appearance Appearance { material Material { diffuseColor 0.0 0.0 1.0 } } geometry Box { } } ] } Transform { translation -4.0 0.0 0.0 children USE Blue } Transform { translation -2.0 0.0 2.0 children USE Blue } Transform { translation -2.0 0.0 -2.0 children USE Blue } Transform { translation -2.0 2.0 0.0 children USE Blue } Transform { translation -2.0 -2.0 0.0 children USE Blue } Transform { translation 0.0 2.0 2.0 children USE Blue } Transform { translation 0.0 2.0 -2.0 children USE Blue } Transform { translation -4.0 2.0 2.0 children USE Blue } Transform { translation -4.0 2.0 -2.0 children USE Blue } Transform { translation 0.0 -2.0 2.0 children USE Blue } Transform { translation 0.0 -2.0 -2.0 children USE Blue } Transform { translation -4.0 -2.0 2.0 children USE Blue } Transform { translation -4.0 -2.0 -2.0 children USE Blue } DEF Clock TimeSensor { cycleInterval 3.0 loop FALSE } DEF Trigger TimeSensor { loop TRUE cycleInterval 5.0 } DEF RedScale PositionInterpolator { key [ 0.0, 0.5, 1.0 ] keyValue [ 1.0 1.0 1.0, 0.0001 0.0001 0.0001, 1.0 1.0 1.0, ] } DEF BlueScale PositionInterpolator { key [ 0.0, 0.25, 0.5, 0.75, 1.0 ] keyValue [ 1.0 1.0 1.0, 0.0001 0.0001 0.0001, 1.0 1.0 1.0, 0.0001 0.0001 0.0001, 1.0 1.0 1.0, ] } ROUTE Trigger.cycleTime TO Clock.set_startTime ROUTE Clock.fraction_changed TO RedScale.set_fraction ROUTE Clock.fraction_changed TO BlueScale.set_fraction ROUTE RedScale.value_changed TO Red.set_scale ROUTE BlueScale.value_changed TO Blue.set_scale