<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive'
version='3.3'
xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
xsd:noNamespaceSchemaLocation
='
https://www.web3d.org/specifications/x3d-3.3.xsd
'
>
<head>
</head>
<!--
<!--
Event Graph ROUTE Table
shows event connections
-->
<!--
Index for DEF nodes:
BottomLine,
Child0,
Child1,
DashedLine,
GameTouched,
GameTrigger,
GoalScored,
LeftPaddle,
LeftPaddlePosition,
LeftScore,
MidLine,
PongAudio,
RightPaddle,
RightPaddlePosition,
RightScore,
SceneClock,
ScoreSequencer,
SquareBall,
SquareBallPosition,
TopLine,
TriggerBackground
Index for Viewpoint node:
Viewpoint_1
-->
<Scene>
<WorldInfo info='"PongSimulation"' title='Pong'/>
<Viewpoint description='Pong'/>
<Shape>
<Rectangle2D size='.3 .3'/>
<Appearance>
<Material diffuseColor='0.9 0.9 0.9'/>
</Appearance>
</Shape>
</Transform>
<
ROUTE
fromNode='
SquareBallPosition' fromField='value_changed' toNode='
SquareBall' toField='set_translation'/>
<
ROUTE
fromNode='
SceneClock' fromField='fraction_changed' toNode='
SquareBallPosition' toField='set_fraction'/>
<Shape>
<Rectangle2D size='.2 1.2'/>
<Appearance>
<Material diffuseColor='0.9 0.9 0.9'/>
</Appearance>
</Shape>
</Transform>
<
ROUTE
fromNode='
RightPaddlePosition' fromField='value_changed' toNode='
RightPaddle' toField='set_translation'/>
<
ROUTE
fromNode='
SceneClock' fromField='fraction_changed' toNode='
RightPaddlePosition' toField='set_fraction'/>
<Shape>
<Rectangle2D size='.2 1.2'/>
<Appearance>
<Material diffuseColor='0.9 0.9 0.9'/>
</Appearance>
</Shape>
</Transform>
<
ROUTE
fromNode='
LeftPaddlePosition' fromField='value_changed' toNode='
LeftPaddle' toField='set_translation'/>
<
ROUTE
fromNode='
SceneClock' fromField='fraction_changed' toNode='
LeftPaddlePosition' toField='set_fraction'/>
<Transform DEF='TriggerBackground' translation='0 0 -8'>
<Shape>
<Appearance>
<Material diffuseColor='0 0 0'/>
</Appearance>
<Rectangle2D size='14 14'/>
</Shape>
</Transform>
<
ROUTE
fromNode='
GameTouched' fromField='isActive' toNode='
GameTrigger' toField='set_boolean'/>
<
ROUTE
fromNode='
GameTrigger' fromField='triggerTime' toNode='
SceneClock' toField='startTime'/>
<Transform translation='0 0 -1'>
<Shape DEF='MidLine'>
<IndexedLineSet coordIndex='0 1 0 1'>
<Coordinate point='0 3.72 -1 0 -3.72 -1'/>
</IndexedLineSet>
<Appearance>
<Material emissiveColor='1 1 1'/>
<
LineProperties DEF='
DashedLine'
linetype='
2'
linewidthScaleFactor='
3'
containerField='
lineProperties'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape DEF='TopLine'>
<IndexedLineSet coordIndex='0 1 0 1'>
<Coordinate point='-3.5 3.4 -1 3.5 3.4 -1'/>
</IndexedLineSet>
<Appearance>
<Material emissiveColor='1 1 1'/>
<LineProperties linewidthScaleFactor='5' containerField='lineProperties'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape DEF='BottomLine'>
<IndexedLineSet coordIndex='0 1 0 1'>
<Coordinate point='-3.5 -3.4 -1 3.5 -3.4 -1'/>
</IndexedLineSet>
<Appearance>
<Material emissiveColor='1 1 1'/>
<LineProperties linewidthScaleFactor='5' containerField='lineProperties'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='LeftScore' translation='-.7 3 0'>
<Shape>
<Text string='"0"'>
<FontStyle family='"SANS"' justify='"MIDDLE" "MIDDLE"' style='BOLD'/>
</Text>
<Appearance>
<Material diffuseColor='0.9 0.9 0.9'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='RightScore' translation='.7 3 0'>
<Shape DEF='Child0'>
<Text string='"0"'>
<FontStyle family='"SANS"' justify='"MIDDLE" "MIDDLE"' style='BOLD'/>
</Text>
<Appearance>
<Material diffuseColor='0.9 0.9 0.9'/>
</Appearance>
</Shape>
<Shape DEF='Child1'>
<Text string='"1"'>
<FontStyle family='"SANS"' justify='"MIDDLE" "MIDDLE"' style='BOLD'/>
</Text>
<Appearance>
<Material diffuseColor='0.9 0.9 0.9'/>
</Appearance>
</Shape>
</Switch>
</Transform>
<
ROUTE
fromNode='
SceneClock' fromField='fraction_changed' toNode='
ScoreSequencer' toField='set_fraction'/>
<
ROUTE
fromNode='
ScoreSequencer' fromField='value_changed' toNode='
GoalScored' toField='whichChoice'/>
<Sound direction='0 -0.19612 -0.98058' location='0 1 0' maxBack='100' maxFront='100' minBack='20' minFront='20' priority='1' spatialize='false'>
</Sound>
<
ROUTE
fromNode='
SceneClock' fromField='startTime' toNode='
PongAudio' toField='startTime'/>
</Scene>
</X3D>
<!--
<!--
Event Graph ROUTE Table
shows event connections
-->
<!--
Index for DEF nodes:
BottomLine,
Child0,
Child1,
DashedLine,
GameTouched,
GameTrigger,
GoalScored,
LeftPaddle,
LeftPaddlePosition,
LeftScore,
MidLine,
PongAudio,
RightPaddle,
RightPaddlePosition,
RightScore,
SceneClock,
ScoreSequencer,
SquareBall,
SquareBallPosition,
TopLine,
TriggerBackground
Index for Viewpoint node:
Viewpoint_1
-->
-->
<!--
Online at
https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Animation/PongGameIndex.html
-->
<!--
Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Animation/PongGame.x3d
-->
<!--
Color legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->