X3D Model Documentation: NancyTeamAddRoutes.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <X3D profile='Immersive' version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  4       <head>
  5            <component level='1name='DIS'/>
  6            <meta name='titlecontent=' NancyTeamAddRoutes.x3d '/>
  7            <meta name='creatorcontent='Thomas E. Miller'/>
  8            <meta name='createdcontent='7 December 2000'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='descriptioncontent='Human team aggregation for Capture the Flag.'/>
 11            <meta name=' warning content=' Incomplete translation, work in progress '/>
 12            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/NancyTeamAddRoutes.x3d '/>
 13            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 14            <meta name='licensecontent='../../license.html'/>
 15       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Autogun, AutogunTransform, BLUE, Grenadier, GrenadierTransform, Huey, HueyTransform, Leader, LeaderTransform, MountAutogun, MountGrenadier, MountHuey, MountLeader, MountRifle1, MountRifle2, NancyTeamAddRoutes_EspduTransform, NancyTeamSwap, NancyTeamVisible, Rifle1, Rifle1Transform, Rifle2, Rifle2Transform

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3
-->
 16       <Scene>
 17            <Group>
 18 
 19                      <!-- traceColor='0 0 1' traceJava='false' traceOffset='0 3 0' traceSize='1 1 1' -->
 20                      <Viewpoint description='NancyTeam 40 *** Trailorientation='0 1 0 -1.571position='-10 0.2 0'/>
 21                      <LOD range='30'>
 22                           <Group>
 23                                <Viewpoint description='Blue 40 Frontorientation='0 1 0 1.571position='20 0 0'/>
 24                                <Viewpoint description='Blue 40 Right Side Viewposition='0 0 15'/>
 25                           </Group>
 26                           <WorldInfo info='"null node for LOD to switch out the Viewpoint when distant"'/>
 27                      </LOD>
 28 
                    <!-- ROUTE information for NancyTeamSwap node:  [from NancyTeamVisible.Visible_changed to set_whichChoice ] -->
                    <Switch DEF='NancyTeamSwapwhichChoice='0'>
 29                           <Transform translation='0 1 0'>
 30                                <Shape>
 31 
                                   <!-- Appearance BLUE is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                   <Appearance DEF='BLUE'>
 32                                          <Material diffuseColor='0 0 1'/>
 33                                     </Appearance>
 34                                     <Box size='2 0.25 0.25'/>
 35                                </Shape>
 36                                <Shape>
 37                                     <Appearance USE='BLUE'/>
 38                                     <Box size='0.25 2 0.25'/>
 39                                </Shape>
 40                                <Shape>
 41                                     <Appearance USE='BLUE'/>
 42                                     <Box size='0.25 0.25 2'/>
 43                                </Shape>
 44                                <Transform rotation='0 0 -1 1.571translation='1 0 0'>
 45                                     <Shape>
 46                                          <Appearance USE='BLUE'/>
 47                                          <Cone bottomRadius='0.375height='1'/>
 48                                     </Shape>
 49                                </Transform>
 50 
                              <!-- Transform LeaderTransform is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for LeaderTransform node:  [from NancyTeamAddRoutes_EspduTransform.translation_changed to translation ] -->
                              <Transform DEF='LeaderTransform'>
 51                                     <Inline DEF='Leader'   url=' "Leader.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Leader.x3d" "Leader.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Leader.wrl" '/>
 52                                </Transform>
 53 
                              <!-- ROUTE information for Rifle1Transform node:  [from NancyTeamAddRoutes_EspduTransform.translation_changed to translation ] -->
                              <Transform DEF='Rifle1Transform'>
 54                                     <Inline DEF='Rifle1'   url=' "Rifle1.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Rifle1.x3d" "Rifle1.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Rifle1.wrl" '/>
 55                                </Transform>
 56 
                              <!-- Transform Rifle2Transform is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for Rifle2Transform node:  [from NancyTeamAddRoutes_EspduTransform.translation_changed to translation ] -->
                              <Transform DEF='Rifle2Transform'>
 57                                     <Inline DEF='Rifle2'   url=' "Rifle2.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Rifle2.x3d" "Rifle2.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Rifle2.wrl" '/>
 58                                </Transform>
 59 
                              <!-- Transform AutogunTransform is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for AutogunTransform node:  [from NancyTeamAddRoutes_EspduTransform.translation_changed to translation ] -->
                              <Transform DEF='AutogunTransform'>
 60                                     <Inline DEF='Autogun'   url=' "Autogun.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Autogun.x3d" "Autogun.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Autogun.wrl" '/>
 61                                </Transform>
 62 
                              <!-- Transform GrenadierTransform is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for GrenadierTransform node:  [from NancyTeamAddRoutes_EspduTransform.translation_changed to translation ] -->
                              <Transform DEF='GrenadierTransform'>
 63                                     <Inline DEF='Grenadier'   url=' "Grenadier.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Grenadier.x3d" "Grenadier.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Grenadier.wrl" '/>
 64                                </Transform>
 65 
                              <!-- Transform HueyTransform is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for HueyTransform node:  [from NancyTeamAddRoutes_EspduTransform.translation_changed to translation ] -->
                              <Transform DEF='HueyTransform'>
 66                                     <Inline DEF='Huey'   url=' "Huey.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Huey.x3d" "Huey.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/Huey.wrl" '/>
 67                                </Transform>
 68 
                              <!-- ROUTE information for NancyTeamVisible node:  [from NancyTeamAddRoutes_EspduTransform.articulationParameterValue0 to set_Visible ] [from Visible_changed to NancyTeamSwap.set_whichChoice ] -->
                              <Script DEF='NancyTeamVisiblemustEvaluate='true'>
 69                                     <field name='set_Visibletype='SFFloataccessType='inputOnly'/>
 70                                     <field name='Visible_changedtype='SFInt32accessType='outputOnly'/>
  <![CDATA[
              
ecmascript:
function set_Visible ( Visible, timeStamp )
{
	Browser.println ('Visible = ' + Visible);
	if ( Visible == -1 )
		Visible_changed = -1;
	else	Visible_changed = 0;
}

            
]]>
 72                                </Script>
 73 
                              <!-- Script MountLeader is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for MountLeader node:  [from NancyTeamAddRoutes_EspduTransform.articulationParameterValue1 to mountedState ] -->
                              <Script DEF='MountLeaderdirectOutput='truemustEvaluate='true'>
 74                                     <field name='mountedStatetype='SFFloataccessType='inputOnly'/>
 75                                     <field name='translationtype='SFVec3faccessType='inputOnly'/>
 76                                     <field name='zeroTranslationtype='SFVec3faccessType='outputOnly'/>
 77                                     <field name='routeLoadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
 78                                     <field name='routeUnloadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
 79                                     <field name='thisNodetype='SFNodeaccessType='initializeOnly'>
 80                                          <Script USE='MountLeader'>
 81                                          </Script>
 81                                     </field>
 82                                     <field name='fromNodetype='SFNodeaccessType='initializeOnly'>
 83                                          <EspduTransform USE='NancyTeamAddRoutes_EspduTransformcontainerField='children'/>
 84                                     </field>
 85                                     <field name='toNodetype='SFNodeaccessType='initializeOnly'>
 86                                          <Transform USE='LeaderTransform'/>
 87                                     </field>
  <![CDATA[
              
ecmascript:

function mountedState (mState, timeStamp)
{
	// 0=unmounted, 1=mounted
	if (mState == 0)
	{
		if (!routeUnloaded)
		{
			Browser.deleteRoute (fromNode, 'translation_changed', thisNode, 'translation');
			Browser.deleteRoute (thisNode, 'zeroTranslation',     toNode, 'set_translation');
			routeUnloaded = true;
			Browser.println ('Just deleted Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
		if (!routeLoaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', toNode, 'set_translation');
			routeLoaded = true;
			Browser.println ('Just added Espdu Translation Routes. routeLoaded =' + routeLoaded);
		}
	}
	else
	{
		if (routeLoaded)
		{
			Browser.deleteRoute (fromNode, 'translation_changed', toNode, 'set_translation');
			routeLoaded = false;
			Browser.println ('Just deleted Espdu Translation Routes. routeLoaded = ' + routeLoaded);
		}
		if (routeUnloaded)
		{
			Browser.addRoute (fromNode, 'translation_changed', thisNode, 'translation');
			Browser.addRoute (thisNode, 'zeroTranslation', toNode, 'set_translation');
			routeUnloaded = false;
			Browser.println ('Just added Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
	}
}

function translation (trans, timeStamp)
{
	 zeroTranslation.x = 0.0;
	 zeroTranslation.y = 0.0;
	 zeroTranslation.z = 0.0;
}

            
]]>
 89                                </Script>
 90 
                              <!-- Script MountRifle1 is a DEF node that has 2 USE nodes: USE_1, USE_2
                              <!-- ROUTE information for MountRifle1 node:  [from NancyTeamAddRoutes_EspduTransform.articulationParameterValue2 to mountedState ] -->
                              <Script DEF='MountRifle1directOutput='truemustEvaluate='true'>
 91                                     <field name='mountedStatetype='SFFloataccessType='inputOnly'/>
 92                                     <field name='translationtype='SFVec3faccessType='inputOnly'/>
 93                                     <field name='zeroTranslationtype='SFVec3faccessType='outputOnly'/>
 94                                     <field name='routeLoadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
 95                                     <field name='routeUnloadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
 96                                     <field name='thisNodetype='SFNodeaccessType='initializeOnly'>
 97                                          <Script USE='MountRifle1'>
 98                                          </Script>
 98                                     </field>
 99                                     <field name='fromNodetype='SFNodeaccessType='initializeOnly'>
100                                          <EspduTransform USE='NancyTeamAddRoutes_EspduTransformcontainerField='children'/>
101                                     </field>
102                                     <field name='toNodetype='SFNodeaccessType='initializeOnly'>
103                                          <Script USE='MountRifle1'>
104                                          </Script>
104                                     </field>
  <![CDATA[
              
ecmascript:

function mountedState ( mState, timeStamp )
{
	// 0=unmounted, 1=mounted
	if (mState == 0)
	{
		if (!routeUnloaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.deleteRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = true;
			Browser.println ('Just deleted Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
		if (!routeLoaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = true;
			Browser.println ('Just added Espdu Translation Routes. routeLoaded =' + routeLoaded);
		}
	}
	else
	{
		if (routeLoaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = false;
			Browser.println ('Just deleted Espdu Translation Routes. routeLoaded = ' + routeLoaded);
		}
		if (routeUnloaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.addRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = false;
			Browser.println ('Just added Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
	}
}
function translation (trans, timeStamp)
{
	zeroTranslation.x = 0.0;
	zeroTranslation.y = 0.0;
	zeroTranslation.z = 0.0;
}

            
]]>
106                                </Script>
107 
                              <!-- Script MountRifle2 is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for MountRifle2 node:  [from NancyTeamAddRoutes_EspduTransform.articulationParameterValue3 to mountedState ] -->
                              <Script DEF='MountRifle2directOutput='truemustEvaluate='true'>
108                                     <field name='mountedStatetype='SFFloataccessType='inputOnly'/>
109                                     <field name='translationtype='SFVec3faccessType='inputOnly'/>
110                                     <field name='zeroTranslationtype='SFVec3faccessType='outputOnly'/>
111                                     <field name='routeLoadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
112                                     <field name='routeUnloadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
113                                     <field name='thisNodetype='SFNodeaccessType='initializeOnly'>
114                                          <Script USE='MountRifle2'>
115                                          </Script>
115                                     </field>
116                                     <field name='fromNodetype='SFNodeaccessType='initializeOnly'>
117                                          <EspduTransform USE='NancyTeamAddRoutes_EspduTransformcontainerField='children'/>
118                                     </field>
119                                     <field name='toNodetype='SFNodeaccessType='initializeOnly'>
120                                          <Transform USE='Rifle2Transform'/>
121                                     </field>
  <![CDATA[
              
ecmascript:

function mountedState ( mState, timeStamp )
{
	// 0=unmounted, 1=mounted
	if (mState == 0)
	{
		if (!routeUnloaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.deleteRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = true;
			Browser.println ('Just deleted Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
		if (!routeLoaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = true;
			Browser.println ('Just added Espdu Translation Routes. routeLoaded =' + routeLoaded);
		}
	}
	else
	{
		if (routeLoaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = false;
			Browser.println ('Just deleted Espdu Translation Routes. routeLoaded = ' + routeLoaded);
		}
		if (routeUnloaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.addRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = false;
			Browser.println ('Just added Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
	}
}
function translation (trans, timeStamp)
{
	zeroTranslation.x = 0.0;
	zeroTranslation.y = 0.0;
	zeroTranslation.z = 0.0;
}

            
]]>
123                                </Script>
124 
                              <!-- Script MountAutogun is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for MountAutogun node:  [from NancyTeamAddRoutes_EspduTransform.articulationParameterValue4 to mountedState ] -->
                              <Script DEF='MountAutogundirectOutput='truemustEvaluate='true'>
125                                     <field name='mountedStatetype='SFFloataccessType='inputOnly'/>
126                                     <field name='translationtype='SFVec3faccessType='inputOnly'/>
127                                     <field name='zeroTranslationtype='SFVec3faccessType='outputOnly'/>
128                                     <field name='routeLoadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
129                                     <field name='routeUnloadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
130                                     <field name='thisNodetype='SFNodeaccessType='initializeOnly'>
131                                          <Script USE='MountAutogun'>
132                                          </Script>
132                                     </field>
133                                     <field name='fromNodetype='SFNodeaccessType='initializeOnly'>
134                                          <EspduTransform USE='NancyTeamAddRoutes_EspduTransformcontainerField='children'/>
135                                     </field>
136                                     <field name='toNodetype='SFNodeaccessType='initializeOnly'>
137                                          <Transform USE='AutogunTransform'/>
138                                     </field>
  <![CDATA[
              
ecmascript:

function mountedState ( mState, timeStamp )
{
	// 0=unmounted, 1=mounted
	if (mState == 0)
	{
		if (!routeUnloaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.deleteRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = true;
			Browser.println ('Just deleted Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
		if (!routeLoaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = true;
			Browser.println ('Just added Espdu Translation Routes. routeLoaded =' + routeLoaded);
		}
	}
	else
	{
		if (routeLoaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = false;
			Browser.println ('Just deleted Espdu Translation Routes. routeLoaded = ' + routeLoaded);
		}
		if (routeUnloaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.addRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = false;
			Browser.println ('Just added Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
	}
}
function translation (trans, timeStamp)
{
	zeroTranslation.x = 0.0;
	zeroTranslation.y = 0.0;
	zeroTranslation.z = 0.0;
}

            
]]>
140                                </Script>
141 
                              <!-- Script MountGrenadier is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for MountGrenadier node:  [from NancyTeamAddRoutes_EspduTransform.articulationParameterValue5 to mountedState ] -->
                              <Script DEF='MountGrenadierdirectOutput='truemustEvaluate='true'>
142                                     <field name='mountedStatetype='SFFloataccessType='inputOnly'/>
143                                     <field name='translationtype='SFVec3faccessType='inputOnly'/>
144                                     <field name='zeroTranslationtype='SFVec3faccessType='outputOnly'/>
145                                     <field name='routeLoadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
146                                     <field name='routeUnloadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
147                                     <field name='thisNodetype='SFNodeaccessType='initializeOnly'>
148                                          <Script USE='MountGrenadier'>
149                                          </Script>
149                                     </field>
150                                     <field name='fromNodetype='SFNodeaccessType='initializeOnly'>
151                                          <EspduTransform USE='NancyTeamAddRoutes_EspduTransformcontainerField='children'/>
152                                     </field>
153                                     <field name='toNodetype='SFNodeaccessType='initializeOnly'>
154                                          <Transform USE='GrenadierTransform'/>
155                                     </field>
  <![CDATA[
              
ecmascript:

function mountedState ( mState, timeStamp )
{
	// 0=unmounted, 1=mounted
	if (mState == 0)
	{
		if (!routeUnloaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.deleteRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = true;
			Browser.println ('Just deleted Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
		if (!routeLoaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = true;
			Browser.println ('Just added Espdu Translation Routes. routeLoaded =' + routeLoaded);
		}
	}
	else
	{
		if (routeLoaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = false;
			Browser.println ('Just deleted Espdu Translation Routes. routeLoaded = ' + routeLoaded);
		}
		if (routeUnloaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.addRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = false;
			Browser.println ('Just added Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
	}
}
function translation (trans, timeStamp)
{
	zeroTranslation.x = 0.0;
	zeroTranslation.y = 0.0;
	zeroTranslation.z = 0.0;
}

            
]]>
157                                </Script>
158 
                              <!-- Script MountHuey is a DEF node that has 1 USE node: USE_1
                              <!-- ROUTE information for MountHuey node:  [from NancyTeamAddRoutes_EspduTransform.articulationParameterValue6 to mountedState ] -->
                              <Script DEF='MountHueydirectOutput='truemustEvaluate='true'>
159                                     <field name='mountedStatetype='SFFloataccessType='inputOnly'/>
160                                     <field name='translationtype='SFVec3faccessType='inputOnly'/>
161                                     <field name='zeroTranslationtype='SFVec3faccessType='outputOnly'/>
162                                     <field name='routeLoadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
163                                     <field name='routeUnloadedtype='SFBoolvalue='trueaccessType='initializeOnly'/>
164                                     <field name='thisNodetype='SFNodeaccessType='initializeOnly'>
165                                          <Script USE='MountHuey'>
166                                          </Script>
166                                     </field>
167                                     <field name='fromNodetype='SFNodeaccessType='initializeOnly'>
168                                          <EspduTransform USE='NancyTeamAddRoutes_EspduTransformcontainerField='children'/>
169                                     </field>
170                                     <field name='toNodetype='SFNodeaccessType='initializeOnly'>
171                                          <Transform USE='HueyTransform'/>
172                                     </field>
  <![CDATA[
              
ecmascript:

function mountedState ( mState, timeStamp )
{
	// 0=unmounted, 1=mounted
	if (mState == 0)
	{
		if (!routeUnloaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.deleteRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = true;
			Browser.println ('Just deleted Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
		if (!routeLoaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = true;
			Browser.println ('Just added Espdu Translation Routes. routeLoaded =' + routeLoaded);
		}
	}
	else
	{
		if (routeLoaded)
		{
			Browser.deleteRoute ( fromNode, 'translation_changed', toNode, 'set_translation' );
			routeLoaded = false;
			Browser.println ('Just deleted Espdu Translation Routes. routeLoaded = ' + routeLoaded);
		}
		if (routeUnloaded)
		{
			Browser.addRoute ( fromNode, 'translation_changed', thisNode, 'translation' );
			Browser.addRoute ( thisNode, 'zeroTranslation', toNode, 'set_translation' );
			routeUnloaded = false;
			Browser.println ('Just added Local Translation Routes. routeUnloaded = ' + routeUnloaded);
		}
	}
}
function translation (trans, timeStamp)
{
	zeroTranslation.x = 0.0;
	zeroTranslation.y = 0.0;
	zeroTranslation.z = 0.0;
}

            
]]>
174                                </Script>
175                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='articulationParameterValue0' toNode='NancyTeamVisible' toField='set_Visible'/>
176                                < ROUTE  fromNode='NancyTeamVisible' fromField='Visible_changed' toNode='NancyTeamSwap' toField='set_whichChoice'/>
177                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='articulationParameterValue1' toNode='MountLeader' toField='mountedState'/>
178                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='translation_changed' toNode='LeaderTransform' toField='translation'/>
179                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='articulationParameterValue2' toNode='MountRifle1' toField='mountedState'/>
180                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='translation_changed' toNode='Rifle1Transform' toField='translation'/>
181                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='articulationParameterValue3' toNode='MountRifle2' toField='mountedState'/>
182                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='translation_changed' toNode='Rifle2Transform' toField='translation'/>
183                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='articulationParameterValue4' toNode='MountAutogun' toField='mountedState'/>
184                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='translation_changed' toNode='AutogunTransform' toField='translation'/>
185                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='articulationParameterValue5' toNode='MountGrenadier' toField='mountedState'/>
186                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='translation_changed' toNode='GrenadierTransform' toField='translation'/>
187                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='articulationParameterValue6' toNode='MountHuey' toField='mountedState'/>
188                                < ROUTE  fromNode='NancyTeamAddRoutes_EspduTransform' fromField='translation_changed' toNode='HueyTransform' toField='translation'/>
189                           </Transform>
190                      </Switch>
191                 </EspduTransform>
192            </Group>
193       </Scene>
194  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Autogun, AutogunTransform, BLUE, Grenadier, GrenadierTransform, Huey, HueyTransform, Leader, LeaderTransform, MountAutogun, MountGrenadier, MountHuey, MountLeader, MountRifle1, MountRifle2, NancyTeamAddRoutes_EspduTransform, NancyTeamSwap, NancyTeamVisible, Rifle1, Rifle1Transform, Rifle2, Rifle2Transform

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3
-->
X3D Tooltips element index: Appearance, Box, component, Cone, EspduTransform, field, Group, head, Inline, LOD, Material, meta, ROUTE, Scene, Script, Shape, Switch, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 14 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

This node has 13 outgoing ROUTEs, which is greater than $maxROUTEdepth=8
NancyTeamAddRoutes_EspduTransform
EspduTransform
articulationParameterValue0
SFInt32

ROUTE
event to
(1)
NancyTeamVisible
Script
set_Visible
SFFloat
then
 
 
 
NancyTeamVisible
Script
Visible_changed
SFInt32

ROUTE
event to
(2)
NancyTeamSwap
Switch
set_whichChoice
SFInt32
NancyTeamAddRoutes_EspduTransform
EspduTransform
articulationParameterValue1
SFInt32

ROUTE
event to
(1)
MountLeader
Script
mountedState
SFFloat
NancyTeamAddRoutes_EspduTransform
EspduTransform
translation_changed
SFVec3f

ROUTE
event to
(1)
LeaderTransform
Transform
translation
SFVec3f
NancyTeamAddRoutes_EspduTransform
EspduTransform
articulationParameterValue2
SFInt32

ROUTE
event to
(1)
MountRifle1
Script
mountedState
SFFloat
NancyTeamAddRoutes_EspduTransform
EspduTransform
translation_changed
SFVec3f

ROUTE
event to
(1)
Rifle1Transform
Transform
translation
SFVec3f
NancyTeamAddRoutes_EspduTransform
EspduTransform
articulationParameterValue3
SFInt32

ROUTE
event to
(1)
MountRifle2
Script
mountedState
SFFloat
NancyTeamAddRoutes_EspduTransform
EspduTransform
translation_changed
SFVec3f

ROUTE
event to
(1)
Rifle2Transform
Transform
translation
SFVec3f
NancyTeamAddRoutes_EspduTransform
EspduTransform
articulationParameterValue4
SFInt32

ROUTE
event to
(1)
MountAutogun
Script
mountedState
SFFloat

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/NancyTeamAddRoutesIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Scenarios/CaptureTheFlag/NancyTeamAddRoutes.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->