<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<![CDATA[
ecmascript:
function initialize ()
{
index = 0;
viewpointCount = viewpoints.length;
traceEnabled = TraceHolderNode.loop;
tracePrint ('initialize: viewpoints.length=' + viewpointCount);
tracePrint ('initialize: Viewpoint [' + index + '] ' + viewpoints[index].description);
if (TriggerNode.enabled=='false') return;
if (viewpointCount > 0) viewpoints[index].set_bind = true;
}
function set_enabled (newValue, timeStamp)
{
enabled = newValue;
tracePrint ('enabled=' + newValue);
if ((newValue == true) && (viewpoints.length >= 1))
viewpoints[0].bind = true;
}
function triggerNext(triggerTime, timeStamp)
{
if ((TriggerNode.enabled=='false') || (viewpointCount==0)) return;
if (index < viewpointCount - 1)
index++;
else index = 0;
if (viewpointCount > 1) viewpoints[index].set_bind = true;
tracePrint ('triggerNext: Viewpoint [' + index + '] ' + viewpoints[index].description);
}
function previous (value, timeStamp)
{
if ((TriggerNode.enabled=='false') || (viewpointCount==0)) return;
if (value==true) // trigger on true events only
{
if (index > 0)
index--;
else index = viewpointCount - 1;
if (viewpointCount > 1) viewpoints[index].set_bind = true;
tracePrint ('previous: Viewpoint [' + index + '] ' + viewpoints[index].description);
}
}
function next (value, timeStamp)
{
if ((TriggerNode.enabled=='false') || (viewpointCount==0)) return;
if (value==true) // trigger on true events only
{
if (index < viewpointCount - 1)
index++;
else index = 0;
if (viewpointCount > 1) viewpoints[index].set_bind = true;
tracePrint ('next: Viewpoint [' + index + '] ' + viewpoints[index].description);
}
}
function tracePrint(outputString)
{
if (traceEnabled) Browser.print ('[ViewpointSequencer] ' + outputString + '\n');
}
function alwaysPrint(outputString)
{
Browser.print ('[ViewpointSequencer] ' + outputString + '\n');
}
]]>
<!--
Color key:
<X3dNode
DEF='idName' field='value'/>
matches
<XmlElement
DEF='idName' attribute='value'/>
(Light blue background: behavior node) (Grey background: inserted documentation) (Magenta background: X3D Extensibility)
<Prototype
name='ProtoName'>
<field
name='fieldName'/> </Prototype>
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources and X3D Scene Authoring Hints. -->