X3D Model Documentation: PointTrackGeneratorPrototype5.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            <meta name='titlecontent=' PointTrackGeneratorPrototype5.x3d '/>
  6            <meta name='descriptioncontent='Generator of randomized colored points using script nodes. The data arrays for coordinates and colors are generated in realtime or everyting is displayed, depending on your choice. This is still experimental, it is very difficult to get good contrast even despite trying different backgrounds.'/>
  7            <meta name='creatorcontent='Frederic Roussille'/>
  8            <meta name='createdcontent='14 May 2001'/>
  9            <meta name='modifiedcontent='28 November 2019'/>
 10            <meta name=' warning content=' some debugging remains necessary. '/>
 11            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/PointTrackGeneratorPrototype5.x3d '/>
 12            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 13            <meta name='licensecontent='../../license.html'/>
 14       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: ActiveLineSet, ActiveLineSetColorNode, ActiveLineSetCoordinateNode, ActivePointSet, ActivePointSetColorNode, ActivePointSetCoordinateNode, AuvNameInline, auvTransform, ColorMapInterpolator, ColorMapInterpolatorForCompletePointsSet, CompletePointSet, CompletePointSetColorNode, CompletePointSetCoordinateNode, CompletePointSetTimeSensor, Debugger, DisplayingTimer, displaypointsMode_0, displaypointsMode_1, displaypointsMode_2, DrawPointScript, PointsGeometrySwitch, TrackGeneratorInstance

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: PointTrackGenerator
-->
 15       <Scene>
 16            <WorldInfo title='PointTrackGeneratorPrototype5.x3d'/>
 17            <ProtoDeclare name='PointTrackGeneratorappinfo='Sequentially display track points. Both points and times are initially provided as a full set of values.'>
 18                 <ProtoInterface>
 19                      <field name='pointPositionsArraytype='MFVec3fvalue='0 0 0 10 -4 0 25 -6 0 30 -8 5 38 -15 5 45 -18 5 55 -22 5 60 -25 15 60 -27 22 55 -30 35 48 -35 35 35 -35 35 25 -45 35 20 -55 35 15 -70 35 3 -70 35 -5 -72 40 -5 -75 50 0 -80 55 15 -75 55 30 -70 55 35 -60 55 40 -50 55 50 -34 55 65 -23 70accessType='initializeOnly'
                     appinfo='Point coordinates in meters referenced to local coordinate system origin.'/>
 20                      <field name='pointTimesArraytype='MFTimevalue='1 3 6 8 10 12 14 15 17 18 23 28 35 37 39 43 45 47 48 53 58 60 61 65 70accessType='initializeOnly'
                     appinfo='Point times in seconds for local exercise clock. (Each time is clock time in seconds not in interval durations.)'/>
 21                      <field name='totalDurationtype='SFTimeaccessType='outputOnly'
                     appinfo='totalDuration is derived from the pointTimesArray and used to set cycleInterval on a controlling TimeSensor clock outside the PointTrackGenerator ProtoInstance.'/>
 22                      <field name='displaypointsModetype='SFInt32value='2accessType='inputOutput'
                     appinfo='displaypointsMode settings: -1=none 0=some (active interval) 1=all 2=IndexedLineSet.'/>
 23                      <field name='durationActivePointstype='SFTimeaccessType='inputOnly'
                     appinfo='durationActivePoints is in seconds default initialization value is totalDuration.'/>
 24                      <field name='timeLatestActivePointtype='SFTimeaccessType='inputOnly'
                     appinfo='timeLatestActivePoint is in seconds default initialization value is final point time.'/>
 25                      <field name='getStartTimetype='SFTimeaccessType='outputOnly'/>
 26                      <field name='getStopTimetype='SFTimeaccessType='outputOnly'/>
 27                      <field name='mappedColorPointCreatortype='SFTimeaccessType='inputOnly'/>
 28                      <field name='auvNametype='MFStringvalue=' "../../Robots/UnmannedUnderwaterVehicles/AriesExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesExample.wrl"' accessType='inputOutput'/>
 29                 </ProtoInterface>
 30                 <ProtoBody>
 31                      <Group>
 32                           <Switch DEF='PointsGeometrySwitchwhichChoice='-1'>
 33                                <IS>
 34                                     <connect nodeField='whichChoiceprotoField='displaypointsMode'/>
 35                                </IS>
 36                                <Shape DEF='displaypointsMode_0'>
 37                                     <PointSet DEF='ActivePointSet'>
 38 
                                        <!-- Coordinate ActivePointSetCoordinateNode is a DEF node that has 1 USE node: USE_1
                                        <!-- ROUTE information for ActivePointSetCoordinateNode node:  [from point_changed to Debugger.set_debugcoordinate ] -->
                                        <Coordinate DEF='ActivePointSetCoordinateNode'/>
 39 
                                        <!-- Color ActivePointSetColorNode is a DEF node that has 1 USE node: USE_1
                                        <!-- ROUTE information for ActivePointSetColorNode node:  [from color_changed to Debugger.set_debugcolor ] -->
                                        <Color DEF='ActivePointSetColorNode'/>
 40                                     </PointSet>
 41                                </Shape>
 42                                <Shape DEF='displaypointsMode_1'>
 43                                     <PointSet DEF='CompletePointSet'>
 44 
                                        <!-- Coordinate CompletePointSetCoordinateNode is a DEF node that has 1 USE node: USE_1
                                        <!-- ROUTE information for CompletePointSetCoordinateNode node:  [from point_changed to Debugger.set_debugcoordinateC ] -->
                                        <Coordinate DEF='CompletePointSetCoordinateNode'/>
 45 
                                        <!-- Color CompletePointSetColorNode is a DEF node that has 1 USE node: USE_1
                                        <!-- ROUTE information for CompletePointSetColorNode node:  [from color_changed to Debugger.set_debugcolorC ] -->
                                        <Color DEF='CompletePointSetColorNode'/>
 46                                     </PointSet>
 47                                </Shape>
 48                                <Group DEF='displaypointsMode_2'>
 49                                     <Shape>
 50 
                                        <!-- ROUTE information for ActiveLineSet node:  [from DrawPointScript.coordIndex_changed to set_coordIndex ] -->
                                        <IndexedLineSet DEF='ActiveLineSet'>
 51 
                                             <!-- Coordinate ActiveLineSetCoordinateNode is a DEF node that has 1 USE node: USE_1
                                             <!-- ROUTE information for ActiveLineSetCoordinateNode node:  [from point to Debugger.set_debugcoord ] -->
                                             <Coordinate DEF='ActiveLineSetCoordinateNode'/>
 52 
                                             <!-- Color ActiveLineSetColorNode is a DEF node that has 1 USE node: USE_1 -->
                                             <Color DEF='ActiveLineSetColorNode'/>
 53                                          </IndexedLineSet>
 54                                     </Shape>
 55 
                                   <!-- Transform auvTransform is a DEF node that has 1 USE node: USE_1 -->
                                   <Transform DEF='auvTransformscale='4 4 4'>
 56                                          <Inline DEF='AuvNameInline'>
 57                                               <IS>
 58                                                    <connect nodeField='urlprotoField='auvName'/>
 59                                               </IS>
 60                                          </Inline>
 61                                     </Transform>
 62                                </Group>
 63                           </Switch>
 64                           <!-- work on color mapping later... -->
 65 
                         <!-- ColorInterpolator ColorMapInterpolator is a DEF node that has 1 USE node: USE_1 -->
                         <ColorInterpolator DEF='ColorMapInterpolatorkey='0 0.12 0.48 0.7 1keyValue='1 1 1 1 0 0 0 1 0 0 0 1 0 0 0'/>
 66 
                         <!-- ColorInterpolator ColorMapInterpolatorForCompletePointsSet is a DEF node that has 1 USE node: USE_1
                         <!-- ROUTE information for ColorMapInterpolatorForCompletePointsSet node:  [from value_changed to DrawPointScript.set_completePointSetColorArray ] -->
                         <ColorInterpolator DEF='ColorMapInterpolatorForCompletePointsSetkey='0 0.12 0.48 0.7 1keyValue='1 1 1 1 0 0 0 1 0 0 0 1 0 0 0'/>
 67 
                         <!-- ROUTE information for CompletePointSetTimeSensor node:  [from cycleTime to DrawPointScript.completePointSetValue_changed ] -->
                         <TimeSensor DEF='CompletePointSetTimeSensorcycleInterval='0.01loop='true'/>
 68 
 69                                <!-- For proper operation, first insert newPoint and then newPointTimeStamp -->
 70                                <field name='pointPositionsArraytype='MFVec3faccessType='initializeOnly'>
 71                                     <!-- no default initialization value -->
 72                                </field>
 73                                <field name='pointTimesArraytype='MFTimeaccessType='initializeOnly'>
 74                                     <!-- no default initialization value -->
 75                                </field>
 76                                <field name='newPointPositionsArraytype='MFVec3faccessType='initializeOnly'>
 77                                     <!-- no default initialization value -->
 78                                </field>
 79                                <field name='newPointTimesArraytype='MFTimeaccessType='initializeOnly'>
 80                                     <!-- no default initialization value -->
 81                                </field>
 82                                <field name='lineIndextype='SFInt32value='1accessType='initializeOnly'/>
 83                                <field name='mappedColorPointCreatortype='SFTimeaccessType='inputOnly'/>
 84                                <field name='indextype='SFInt32value='0accessType='initializeOnly'/>
 85                                <field name='completeIndextype='SFInt32value='0accessType='initializeOnly'/>
 86                                <field name='ConditionCompletetype='SFBoolaccessType='outputOnly'/>
 87                                <field name='ActivePointSetCoordinateNodetype='SFNodeaccessType='initializeOnly'>
 88                                     <Coordinate USE='ActivePointSetCoordinateNode'/>
 89                                </field>
 90                                <field name='ActivePointSetColorNodetype='SFNodeaccessType='initializeOnly'>
 91                                     <Color USE='ActivePointSetColorNode'/>
 92                                </field>
 93                                <field name='CompletePointSetCoordinateNodetype='SFNodeaccessType='initializeOnly'>
 94                                     <Coordinate USE='CompletePointSetCoordinateNode'/>
 95                                </field>
 96                                <field name='CompletePointSetColorNodetype='SFNodeaccessType='initializeOnly'>
 97                                     <Color USE='CompletePointSetColorNode'/>
 98                                </field>
 99                                <field name='ColorMapInterpolatortype='SFNodeaccessType='initializeOnly'>
100                                     <ColorInterpolator USE='ColorMapInterpolator'/>
101                                </field>
102                                <field name='ColorMapInterpolatorForCompletePointsSettype='SFNodeaccessType='initializeOnly'>
103                                     <ColorInterpolator USE='ColorMapInterpolatorForCompletePointsSet'/>
104                                </field>
105                                <field name='ActiveLineSetCoordinateNodetype='SFNodeaccessType='initializeOnly'>
106                                     <Coordinate USE='ActiveLineSetCoordinateNode'/>
107                                </field>
108                                <field name='ActiveLineSetColorNodetype='SFNodeaccessType='initializeOnly'>
109                                     <Color USE='ActiveLineSetColorNode'/>
110                                </field>
111                                <field name='auvTransformtype='SFNodeaccessType='initializeOnly'>
112                                     <Transform USE='auvTransform'/>
113                                </field>
114                                <field name='totalDurationtype='SFTimeaccessType='outputOnly'/>
115                                <field name='getStartTimetype='SFTimeaccessType='outputOnly'/>
116                                <field name='getStopTimetype='SFTimeaccessType='outputOnly'/>
117                                <field name='coordIndex_changedtype='MFInt32accessType='outputOnly'/>
118                                <field name='durationActivePointstype='SFTimeaccessType='inputOnly'/>
119                                <field name='timeLatestActivePointtype='SFTimeaccessType='inputOnly'/>
120                                <field name='completePointSetValue_changedtype='SFTimeaccessType='inputOnly'/>
121                                <field name='set_completePointSetColorArraytype='SFColoraccessType='inputOnly'/>
122                                <IS>
123                                     <connect nodeField='pointPositionsArrayprotoField='pointPositionsArray'/>
124                                     <connect nodeField='pointTimesArrayprotoField='pointTimesArray'/>
125                                     <connect nodeField='totalDurationprotoField='totalDuration'/>
126                                     <connect nodeField='durationActivePointsprotoField='durationActivePoints'/>
127                                     <connect nodeField='timeLatestActivePointprotoField='timeLatestActivePoint'/>
128                                     <connect nodeField='getStartTimeprotoField='getStartTime'/>
129                                     <connect nodeField='getStopTimeprotoField='getStopTime'/>
130                                     <connect nodeField='mappedColorPointCreatorprotoField='mappedColorPointCreator'/>
131                                </IS>
  <![CDATA[
            
ecmascript:

function initialize() {
 totalDuration = pointTimesArray[pointTimesArray.length-1];
 var today = new Date();
 getStartTime = Math.round(today.getTime() / 1000);
 getStopTime = getStartTime + totalDuration;
 var m = 1;

 //default values for durationActivePoint and timeLatestActivePoint
 durationActivePoint = totalDuration;
 timeLatestActivePoint = pointTimesArray[pointTimesArray.length-1];

 if(timeLatestActivePoint == durationActivePoint) {
  newPointTimesArray = pointTimesArray;
  newPointPositionsArray = pointPositionsArray;
  Browser.println ('newPointTimesArray = ' + newPointTimesArray);
 }
 if(timeLatestActivePoint > durationActivePoint) {
  var firstTime = latestTime = k = 0;
  while((timeLatestActivePoint - durationActivePoint) != pointTimesArray[firstTime]) {
   firstTime++;
  }
  while(timeLatestActivePoint != pointTimesArray[latestTime]) {
   latestTime++;
  }
  for(var j = firstTime ; j <= latestTime ; j++) {
   newPointTimesArray[k] = pointTimesArray[j] - pointTimesArray[firstTime] + 1;
   newPointPositionsArray[k] = pointPositionsArray[j];
   k++;
  }
  Browser.println ('newPointTimesArray = ' + newPointTimesArray);
 }
 if(timeLatestActivePoint < durationActivePoint) {
  Browser.println ('Fatal error : timeLatestActivePoint < durationActivePoint !');
 }
 ConditionComplete = false;
}


function completePointSetValue_changed() {
 if(ConditionComplete == false && completeIndex <= (pointPositionsArray.length-1)) {
  ColorMapInterpolatorForCompletePointsSet.set_fraction = - pointPositionsArray[completeIndex][1] / 100;
  Browser.println ('ColorMapInterpolatorForCompletePointsSet.set_fraction['+completeIndex+ '] = ' + ColorMapInterpolatorForCompletePointsSet.set_fraction);
  //need to initialize ColorMapInterpolator.set_fraction with the first point color otherwise the value is shifted
  ConditionComplete = true;
 }
}

function set_completePointSetColorArray(Value) {
  CompletePointSetColorNode.color[completeIndex] = Value;
  CompletePointSetCoordinateNode.point[completeIndex] = pointPositionsArray[completeIndex];
  completeIndex++;
  ConditionComplete = false;
}


function mappedColorPointCreator(fractionValue) {

  ColorMapInterpolator.set_fraction = - newPointPositionsArray[index][1] / 100;
  //need to initialize ColorMapInterpolator.set_fraction with the first point color otherwise the value is shifted

  if(Math.floor(fractionValue) == (newPointTimesArray[index] + getStartTime)) {
   ActivePointSetColorNode.color[index] = ColorMapInterpolator.value_changed;
   ActivePointSetCoordinateNode.point[index] = newPointPositionsArray[index];
   auvTransform.translation = newPointPositionsArray[index];
   if(index <= 1) {
	   ActiveLineSetCoordinateNode.point[index] =  newPointPositionsArray[index];
       coordIndex_changed[index] = index;
	   ActiveLineSetColorNode.color[index][0] = 1;
	   ActiveLineSetColorNode.color[index][1] = 1;
	   ActiveLineSetColorNode.color[index][2] = 1;
	   auvTransform.translation = newPointPositionsArray[index];
	   if(index == 1) {
		   	 ActiveLineSetCoordinateNode.point[index] =  newPointPositionsArray[index];
             coordIndex_changed[index] = index;
             coordIndex_changed[index+1] = -1;
	         ActiveLineSetColorNode.color[index-1][0] = 1;
	         ActiveLineSetColorNode.color[index-1][1] = 0;
	         ActiveLineSetColorNode.color[index-1][2] = 0;
	         ActiveLineSetColorNode.color[index][0] = 1;
	         ActiveLineSetColorNode.color[index][1] = 1;
	         ActiveLineSetColorNode.color[index][2] = 1;
	   }
   }
   else {
	   ActiveLineSetCoordinateNode.point[index] =  newPointPositionsArray[index];
	   coordIndex_changed[index+lineIndex] = coordIndex_changed[index+lineIndex-2];
	   coordIndex_changed[index+lineIndex+1] = index;
	   coordIndex_changed[index+lineIndex+2] = -1;
	   ActiveLineSetColorNode.color[index-1][0] = 1;
	   ActiveLineSetColorNode.color[index-1][1] = 0;
	   ActiveLineSetColorNode.color[index-1][2] = 0;
	   ActiveLineSetColorNode.color[index][0] = 1;
	   ActiveLineSetColorNode.color[index][1] = 1;
	   ActiveLineSetColorNode.color[index][2] = 1;
	   lineIndex += 2;

   }
   //print ('ActivePointSetCoordinateNode.point[' +index + '][0]=' + ActivePointSetCoordinateNode.point[index][0]);
   //print ('ActivePointSetCoordinateNode.point[' +index + '][1]=' + ActivePointSetCoordinateNode.point[index][1]);
   //print ('ActivePointSetCoordinateNode.point[' +index + '][2]=' + ActivePointSetCoordinateNode.point[index][2]);
   index ++;
 }

}

          
]]>
133                           </Script>
134 
135                                <field name='set_debugcoordinatetype='MFVec3faccessType='inputOnly'/>
136                                <field name='set_debugcolortype='MFColoraccessType='inputOnly'/>
137                                <field name='set_debugcoordinateCtype='MFVec3faccessType='inputOnly'/>
138                                <field name='set_debugcolorCtype='MFColoraccessType='inputOnly'/>
139                                <field name='set_debugcoordtype='MFVec3faccessType='inputOnly'/>
140                                <field name='set_debugcoordIndex_changedtype='MFInt32accessType='inputOnly'/>
  <![CDATA[
            
ecmascript:

function set_debugcoordinate(Value) {
 Browser.println ('ActivePointSet : CoordinatePointArrray = ' + Value);
}

function set_debugcolor(Valeur) {
 Browser.println ('ActivePointSet : ColorPointArray = ' + Valeur);
}

function set_debugcoordinateC(Value) {
 Browser.println ('CompletePointSet : CoordinatePointArrray = ' + Value);
 Browser.println (' ');
}

function set_debugcolorC(Valeur) {
 Browser.println ('CompletePointSet : ColorPointArray = ' + Valeur);
}

function set_debugcoord(Valeur) {
 Browser.println ('ActiveLineSet : Coordinate.point = ' + Valeur);
 Browser.println (' ');
}

function set_debugcoordIndex_changed(Valeur) {
 Browser.println ('DrawPointScript : coordIndex_changed = ' + Valeur);
}

          
]]>
142                           </Script>
143                      </Group>
144                      < ROUTE  fromNode='CompletePointSetTimeSensor' fromField='cycleTime' toNode='DrawPointScript' toField='completePointSetValue_changed'/>
145                      < ROUTE  fromNode='ColorMapInterpolatorForCompletePointsSet' fromField='value_changed' toNode='DrawPointScript' toField='set_completePointSetColorArray'/>
146                      < ROUTE  fromNode='DrawPointScript' fromField='coordIndex_changed' toNode='ActiveLineSet' toField='set_coordIndex'/>
147                      < ROUTE  fromNode='ActivePointSetCoordinateNode' fromField='point_changed' toNode='Debugger' toField='set_debugcoordinate'/>
148                      < ROUTE  fromNode='ActivePointSetColorNode' fromField='color_changed' toNode='Debugger' toField='set_debugcolor'/>
149                      < ROUTE  fromNode='ActiveLineSetCoordinateNode' fromField='point' toNode='Debugger' toField='set_debugcoord'/>
150                      < ROUTE  fromNode='DrawPointScript' fromField='coordIndex_changed' toNode='Debugger' toField='set_debugcoordIndex_changed'/>
151                      < ROUTE  fromNode='CompletePointSetCoordinateNode' fromField='point_changed' toNode='Debugger' toField='set_debugcoordinateC'/>
152                      < ROUTE  fromNode='CompletePointSetColorNode' fromField='color_changed' toNode='Debugger' toField='set_debugcolorC'/>
153                 </ProtoBody>
154            </ProtoDeclare>
155            <!-- =================== -->
156            <!-- Example scene goes here -->
157            <Viewpoint description='MainViewposition='0 -50 200'/>
158 
159                 <fieldValue name='displaypointsModevalue='2'/>
160            </ProtoInstance>
161 
162            < ROUTE  fromNode='TrackGeneratorInstance' fromField='getStartTime' toNode='DisplayingTimer' toField='set_startTime'/>
163            < ROUTE  fromNode='TrackGeneratorInstance' fromField='getStopTime' toNode='DisplayingTimer' toField='set_stopTime'/>
164            < ROUTE  fromNode='TrackGeneratorInstance' fromField='totalDuration' toNode='DisplayingTimer' toField='set_cycleInterval'/>
165            < ROUTE  fromNode='DisplayingTimer' fromField='fraction_changed' toNode='TrackGeneratorInstance' toField='mappedColorPointCreator'/>
166       </Scene>
167  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: ActiveLineSet, ActiveLineSetColorNode, ActiveLineSetCoordinateNode, ActivePointSet, ActivePointSetColorNode, ActivePointSetCoordinateNode, AuvNameInline, auvTransform, ColorMapInterpolator, ColorMapInterpolatorForCompletePointsSet, CompletePointSet, CompletePointSetColorNode, CompletePointSetCoordinateNode, CompletePointSetTimeSensor, Debugger, DisplayingTimer, displaypointsMode_0, displaypointsMode_1, displaypointsMode_2, DrawPointScript, PointsGeometrySwitch, TrackGeneratorInstance

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: PointTrackGenerator
-->
X3D Tooltips element index: Color, ColorInterpolator, connect, Coordinate, field, fieldValue, Group, head, IndexedLineSet, Inline, IS, meta, PointSet, ProtoBody, ProtoDeclare, ProtoInstance, ProtoInterface, ROUTE, Scene, Script, Shape, Switch, TimeSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 13 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.

CompletePointSetTimeSensor
TimeSensor
cycleTime
SFTime

ROUTE
event to
(1)
DrawPointScript
Script
completePointSetValue_changed
SFTime
then
 
 
 
DrawPointScript
Script
coordIndex_changed
MFInt32

ROUTE
event to
(2)
ActiveLineSet
IndexedLineSet
set_coordIndex
MFInt32
  then
 
 
 
DrawPointScript
Script
coordIndex_changed
MFInt32

ROUTE
event to
(2)
Debugger
Script
set_debugcoordIndex_changed
MFInt32

      DrawPointScript
Script
coordIndex_changed
MFInt32

ROUTE
event to
(1)
ActiveLineSet
IndexedLineSet
set_coordIndex
MFInt32
DrawPointScript
Script
coordIndex_changed
MFInt32

ROUTE
event to
(1)
Debugger
Script
set_debugcoordIndex_changed
MFInt32

     
The following ROUTE chain begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE TrackGeneratorInstance.getStartTime TO DisplayingTimer.set_startTime
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(1)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(1)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(1)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStartTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_startTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
getStopTime
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_stopTime
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime
  then
 
 
 
TrackGeneratorInstance
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
DisplayingTimer
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
DisplayingTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
TrackGeneratorInstance
ProtoInstance
mappedColorPointCreator
SFTime

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/Tools/Animation/PointTrackGeneratorPrototype5Index.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Tools/Animation/PointTrackGeneratorPrototype5.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)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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