Table of Contents Previous Chapter Details Viewpoint Slideshow Next Chapter Details X3D Resources

X3D Example Archives: Conformance Nist, Sensors, Time Sensor

X3D Scenes Descriptions
cycleinterval By setting the cycleInterval field to 5, the animation of a red Sphere geometry should take 5 seconds to complete. When the geometry is indicated by the pointing device, it should move from center, to right, to center, to left and back to center in 5 seconds.
cycletime Test if TimeSensor sends cycleTime event at the start of each cycle. The world includes two TimeSensors: TIME1 and TIME2. The cycleTime field for TIME1 triggers startTime for TIME2. When clicking the red sphere, the ball starts to move, complete one cycle of animation in 2 seconds, stop, and move again after 3 seconds.
default Test default properties. Using default TimeSensor values, a red Sphere geometry is associated with TouchSensor. Indicating the Sphere with a pointing device sends the "touchTime" event to the default TimeSensor "startTime" field. The TimeSensor drives an animation of the Sphere, for a duration of 1 second (the default cycleTime), and does not repeat (because loop is false). The Sphere should move to the right, to center to left, and back to center one time, taking one second of time.
enabled With the enabled field set to false, a startTime event sent to a TimeSensor that animates the movement of the red Sphere geometry will not start the TimeSensor. The result should be, indicating the red Sphere with a pointing device does NOT start its movement.
fraction Test the fraction_changed field of a TimeSensor node. Two TimeSensors with cycleIntervals of 2 and 4 seconds animate a blue and green Sphere geometry respectively along the same distance. Because the cycleInterval of one TimeSensor is half that of the other, the fraction_changed events are routed to one PositionInterpolator twice as fast as the other TimeSensor, and the blue Sphere completes its animation twice as fast as the green Sphere. To verify this, click on the red Sphere to start the animation.
isactive Test if TimeSensor sends isActive true event when it is running, and sends isActive false when it is stoped. A central white Sphere geometry has an associated TouchSensor that sends its touchTime event to the TimeSensors startTime field. The TimeSensors isActive event is sent to a PointLights "on" field. As a result: when the pointing device indicates the central Sphere, the TimeSensor should turn the PointLight on, and keep it on for 3 seconds (the cycleInterval value). After the cycleInterval completes, the light should turn off.
loop Test loop equals true. With the loop field set to true on a default TimeSensor node, the TimeSensor will continuously loop and generate events. The result is, a red Sphere geometry will continuously move from left to right in a loop forever when the world is loaded into the browser.
stopeqstartloopfalse Test TimeSensor behavior when stopTime equals startTime, and loop is set to false. A stopTime and starTime of 5 (5 seconds past midnight, January 1, 1970) are assigned to a TimeSensor node. EventOuts from this node are routed to start an animation of a red Sphere geometry. The result is: Because loop is false, a red Sphere geometry should NOT move from right to center to left and back to center one time when the world is loaded.
stopeqstartlooptrue Test TimeSensor behavior when stopTime equals startTime, and loop is set to true. A stopTime and starTime of 5 (5 seconds past midnight, January 1, 1970) are assigned to a TimeSensor node. EventOuts from this node are routed to start an animation of a red Sphere geometry. The result is: StopTime should be ignored. A red Sphere geometry should move from right to center to left and back to center forever when the world is loaded.
stopgtstartloopfalse Test TimeSensor behavior when stopTime is greater than startTime, and loop is set to false. A stopTime of (5) and starTime of (1) (1 second past midnight, January 1, 1970) are assigned to a TimeSensor node. EventOuts from this node are routed to start an animation of a red Sphere geometry. The result is: EventOuts should not be generated by the TimeSensor node. Because loop is false, a red Sphere geometry should NOT move from right to center to left and back to center one time when the world is loaded.
stopgtstartlooptrue Test TimeSensor behavior when stopTime is greater than startTime, and loop is set to true. A stopTime of (5) and starTime of (1) (1 second past midnight, January 1, 1970) are assigned to a TimeSensor node. EventOuts from this node are routed to start an animation of a red Sphere geometry. The result is: EventOuts should not be generated by the TimeSensor node. A red Sphere geometry should NOT move from right to center to left and back to center forever when the world is loaded.
stopltstartloopfalse Test TimeSensor behavior when stopTime is less than startTime, and loop is set to false. A stopTime of (1) and starTime of (5) (5 seconds past midnight, January 1, 1970) are assigned to a TimeSensor node. EventOuts from this node are routed to start an animation of a red Sphere geometry. The result is: Because loop is false, a red Sphere geometry should NOT move from right to center to left and back to center one time when the world is loaded.
stopltstartlooptrue Test TimeSensor behavior when stopTime is less than startTime, and loop is set to true. A stopTime of (1) and starTime of (5) (5 seconds past midnight, January 1, 1970) are assigned to a TimeSensor node. EventOuts from this node are routed to start an animation of a red Sphere geometry. The result is: StopTime should be ignored. A red Sphere geometry should move from right to center to left and back to center forever when the world is loaded.
stoptime Test TimeSensor behavior when stopTime equals startTime, and loop is set to false. A TouchSensor routes its touchTime event to both a TimeSensors startTime AND stopTime field. The result is: A red Sphere geometry should move from right to center to left and back to center one time when the Sphere geometry is indicated by the pointing device.
stoptime 1 Test TimeSensor behavior when stopTime is less than startTime, and loop is set to false. A TouchSensor routes its touchTime event to a TimeSensors startTime field. The stopTime field is set to 0. The result is: the stopTime field should be ignored, and a red Sphere geometry should move from right to center to left and back to center one time when the Sphere geometry is indicated by the pointing device.
stoptime 1 looptrue Test TimeSensor behavior when stopTime is less than startTime, and loop is set to true. A TouchSensor routes its touchTime event to a TimeSensors startTime field. The stopTime field is set to 1. The result is: indicating the red Sphere with the pointing device should set the startTime for the TimeSensor to "now". The stopTime field (because it is set to 1) should be ignored, and a red Sphere geometry should move from right to center to left and back to center forever.
stoptime 2 Test TimeSensor behavior when stopTime is greater than startTime,and loop is set to false. A red Sphere geometry has an associated TimeSensor . A TouchSensor also associated with the Sphere sends its touchTime event to the TimeSensors startTime field. As a result, indicating the moving Sphere geometry with the pointing device should start the Sphere movement. A green Box geometry has an associated TouchSensor. The touchTime event of the TouchSensor is routed to the set_stopTime field of the red Spheres TimeSensor. Results should be: indicating the red Sphere geometry with the pointing device should start the Sphere movement. Indicating the green Box geometry with the pointing device should stop the Sphere movement. If the green Box is not indicated by the pointing device after the Sphere starts moving, the Sphere should stop its movement after its 5 second cycleTime.
stoptime 2 looptrue Test TimeSensor behavior when stopTime is greater then startTime, and loop is set to true. A red Sphere geometry has an associated TimeSensor . A TouchSensor also associated with the Sphere sends its touchTime event to the TimeSensors startTime field. As a result, indicating the moving Sphere geometry with the pointing device should start the Sphere movement. A green Box geometry has an associated TouchSensor. The touchTime event of the TouchSensor is routed to the set_stopTime field of the red Spheres TimeSensor. Results should be: indicating the red Sphere geometry with the pointing device should start the Sphere movement. Indicating the green Box geometry with the pointing device should stop the Sphere movement. If the green Box is not indicated by the pointing device after the Sphere starts moving, the Sphere should continue its movement forever.
stoptime looptrue Test TimeSensor behavior when stopTime equals startTime and loop = true. A TouchSensor routes its touchTime event to both a TimeSensors startTime AND stopTime field. The result is: If the red Sphere geometry is indicated by the pointing device, it should move from right to center to left and back to center continuously.

Online at http://www.web3d.org/x3d/content/examples/ConformanceNist/Sensors/TimeSensor

Master source code archive is under subversion control at
http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/ConformanceNist/Sensors/TimeSensor

Table of Contents Previous Chapter Details Viewpoint Slideshow Next Chapter Details X3D Resources

Also available: current and archived nightly builds and distributions of these examples, all published under an Open-Source License.

The X3D Resources: Examples page and Savage Developers Guide provide more information about the production of this archive.