1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "https://www.web3d.org/specifications/x3d-3.2.dtd">
|
3 | <X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.2.xsd'> |
4 | <head> |
5 | <meta name='title' content=' PoolMontereyPeninsulaCollegeUsingBoxes.x3d '/> |
6 | <meta name='description' content='Monterey Peninsula College (MPC) swimming pool, simplest model'/> |
7 | <meta name='creator' content='Don Brutzman and MV3204 class'/> |
8 | <meta name='created' content='9 April 2010'/> |
9 | <meta name='modified' content='2 December 2024'/> |
10 | <meta name='info' content='Includes trace diagnostic for changing user navigation from EXAMINE to FLY when binding/unbinding the initial overhead-perspective Viewpoint'/> |
11 | <meta name='reference' content='TODO information about ROV races'/> |
12 | <meta name='drawing' content='PoolMontereyPeninsulaCollegeSketch'/> |
13 |
<meta name='Image' content='PoolMontereyPeninsulaCollegeDiagram.png'![]() |
14 | <meta name='Image' content='PoolMontereyPeninsulaCollegeDiagram.vsd'/> |
15 | <meta name='photo' content='TODO photo(s) of pool'/> |
16 | <meta name='subject' content='X3D swimming pool'/> |
17 | <meta name=' warning ' content=' under development '/> |
18 | <meta name='reference' content=' PoolMontereyPeninsulaCollege.x3d '/> |
19 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Locations/MontereyPeninsulaCollege/PoolMontereyPeninsulaCollegeUsingBoxes.x3d '/> |
20 | <meta name='generator' content='X3D-Edit, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
21 | <meta name='license' content='../../license.html'/> |
22 | </head> |
23 | <Scene> |
24 | <!-- Put CoordinateAxes with correct directional alignment at pool origin --> |
25 | <WorldInfo title='PoolMontereyPeninsulaCollegeUsingBoxes.x3d'/> |
26 | <Inline DEF='CoordinateAxes' url=' "../../Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "../../Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" '/> |
27 | <!-- Only one NavInfo can be bound at a time. Include "ANY" to allow user override. --> |
28 | <!-- Note that our local units here are still meters. --> |
29 |
<!-- ROUTE information for NavigationExamineMode node:
[from ViewOverhead.isBound to set_bind
]
-->
<NavigationInfo DEF='NavigationExamineMode' avatarSize='0.25 1.6 2' speed='5' type='"EXAMINE" "FLY" "ANY"'/> |
30 | <NavigationInfo DEF='NavigationWalkMode' avatarSize='0.25 1.6 2' speed='5' type='"WALK" "ANY"'/> |
31 | <NavigationInfo DEF='NavigationFlyMode' avatarSize='0.25 1.6 2' speed='5' type='"FLY" "ANY"'/> |
32 | <!-- TODO add a deck around the edge of the pool to allow WALKing around --> |
33 | <!-- All pool model measurements are in feet, therefore scale them into meters. X is length, Y is height, Z is width. --> |
34 | <Transform DEF='ScaleFeetToMeters' scale='0.305 0.305 0.305'> |
35 | <!-- Box centers are at local coordinate 0 0 0, this translation shifts them to put corner at pool coordinate 0 0 0 --> |
36 | <!-- Viewpoints are placed here since their position is recorded in feet using the pool coordinate system --> |
37 |
<!-- ROUTE information for ViewOverhead node:
[from isBound to NavigationExamineMode.set_bind
]
[from isBound to Trace_ROUTE_ViewOverhead_isBound_TO_NavigationExamineMode_set_bind.traceValue
]
-->
<Viewpoint DEF='ViewOverhead' centerOfRotation='37.5 0 32' description='High above looking down from 100 feet above' orientation='1 0 0 -1.5708' position='37.5 100 32'/> |
38 | < ROUTE fromNode='ViewOverhead' fromField='isBound' toNode='NavigationExamineMode' toField='set_bind'/> |
39 | <Group> |
40 | <!-- ======= ROUTE Trace ============================================== --> |
41 |
<!-- ROUTE information for Trace_ROUTE_ViewOverhead_isBound_TO_NavigationExamineMode_set_bind node:
[from ViewOverhead.isBound to traceValue
]
-->
<Script DEF='Trace_ROUTE_ViewOverhead_isBound_TO_NavigationExamineMode_set_bind' mustEvaluate='true'> |
42 | <!-- Trace ROUTEd values on X3D browser console --> |
43 |
<field name='reportInterval' type='SFTime' value='1.0' accessType='initializeOnly'
appinfo='Sampling frequency in seconds (0 means all values)'/> |
44 | <field name='traceValue' type='SFBool' value='true' accessType='inputOutput'/> |
45 | <field name='timeStampPreviousReport' type='SFTime' value='-1' accessType='initializeOnly'/> |
<![CDATA[
ecmascript: function set_traceValue (eventValue, timeStamp) { Browser.println ('Script method set_traceValue invoked, which is now handing off to traceValueHandler()...'); traceValueHandler (eventValue, timeStamp); } function traceValue (eventValue, timeStamp) { Browser.println ('Script method traceValue invoked, which is now handing off to traceValueHandler()...'); traceValueHandler (eventValue, timeStamp); } function traceValueHandler (eventValue, timeStamp) { // input eventValue received for trace field if (timeStamp - timeStampPreviousReport >= reportInterval) { Browser.println ('Trace_ROUTE_ViewOverhead_isBound_TO_NavigationExamineMode_set_bind type=SFBool value=' + eventValue); timeStampPreviousReport = timeStamp; if (eventValue == true) Browser.println ('User navigation should be EXAMINE'); else Browser.println ('User navigation should be FLY'); } } function timeOfDay (someTime) { hh = Math.floor (someTime /(60*60)) % 24; mm = Math.floor (someTime / 60) % 60; ss = Math.floor (someTime) % 60; if (hh < 9) hour = '0' + hh; else hour = hh; if (mm < 9) minute = '0' + mm; else minute = mm; if (ss < 9) second = '0' + ss; else second = ss; return '(' + hour + ':' + minute + ':' + second + ' GMT)'; }
]]>
|
|
47 | </Script> |
48 | < ROUTE fromNode='ViewOverhead' fromField='isBound' toNode='Trace_ROUTE_ViewOverhead_isBound_TO_NavigationExamineMode_set_bind' toField='traceValue'/> |
49 | <!-- ======= ROUTE Trace block complete ===================================================== --> |
50 | </Group> |
51 | <!-- other Viewpoints do not get EXAMINE navigation type --> |
52 | <Viewpoint description='Shallow end left side, from origin' orientation='0.0067 0.9998 0.0161 -2.3563' position='-12 6 -12'/> |
53 | <Viewpoint description='Pool center left side' orientation='0 0.9955 0.0949 3.1413' position='37.52 10 -20'/> |
54 | <Viewpoint description='Deep end left side' orientation='-0.0203 0.9988 0.0451 2.2984' position='87 6 -12'/> |
55 | <Viewpoint description='Deep end center' orientation='-0.0857 0.9926 0.0857 1.5782' position='95 10 32'/> |
56 | <Viewpoint description='Deep end right side' orientation='-0.1001 0.994 0.0449 0.8487' position='87 6 76'/> |
57 | <Viewpoint description='Pool center right side' orientation='-1 0.002 0.0002 0.2235' position='37.52 10 84'/> |
58 | <Viewpoint description='Shallow end right side' orientation='0.1001 0.994 0.0449 -0.8487' position='-12 6 76'/> |
59 | <Viewpoint description='Shallow end center' orientation='0.0864 0.99251 0.0864 -1.578318' position='-20 10 32'/> |
60 | <Transform DEF='ShiftBoxCornersToPoolCenter' translation='37.5 -12.75 32'> |
61 | <Shape DEF='PoolFloor'> |
62 | <Box size='75 0.25 64'/> |
63 | |
64 | <Material diffuseColor='0.5 0.9 0.9'/> |
65 | </Appearance> |
66 | </Shape> |
67 | <Transform DEF='ShallowWall' translation='-37.5 6.25 0'> |
68 | |
69 | <Box size='0.25 12.75 64'/> |
70 | <Appearance USE='AppearanceWall'/> |
71 | </Shape> |
72 | </Transform> |
73 | <Transform DEF='DeepWall' translation='37.5 6.25 0'> |
74 | <Shape USE='ShortWall'/> |
75 | </Transform> |
76 | <Transform DEF='LeftWall' translation='0 6.25 -32'> |
77 | |
78 | <Box size='75 12.75 0.25'/> |
79 | <Appearance USE='AppearanceWall'/> |
80 | </Shape> |
81 | </Transform> |
82 | <Transform DEF='RightWall' translation='0 6.25 32'> |
83 | <Shape USE='LongWall'/> |
84 | </Transform> |
85 | <Transform DEF='DeepFloor' rotation='0 0 1 0.1732' translation='32.5 .9 0'> |
86 | <Shape> |
87 | <Box size='10.152 0.25 64'/> |
88 | <Appearance USE='AppearanceWall'/> |
89 | </Shape> |
90 | </Transform> |
91 | <Transform DEF='DeepFloor2' rotation='0 0 1 -0.2085' translation='21 1.4 0'> |
92 | <Shape> |
93 | <Box size='13.288 0.25 64'/> |
94 | <Appearance USE='AppearanceWall'/> |
95 | </Shape> |
96 | </Transform> |
97 | <Transform DEF='DeepFloor3' rotation='0 0 1 -0.2783' translation='7.5 4.75 0'> |
98 | <Shape> |
99 | <Box size='14.560 0.25 64'/> |
100 | <Appearance USE='AppearanceWall'/> |
101 | </Shape> |
102 | </Transform> |
103 | <Transform DEF='DeepFloor4' rotation='0 0 1 -0.0476' translation='-10 7.25 0'> |
104 | <Shape> |
105 | <Box size='21.024 0.25 64'/> |
106 | <Appearance USE='AppearanceWall'/> |
107 | </Shape> |
108 | </Transform> |
109 | <Transform DEF='DeepFloor5' rotation='0 0 1 -0.0588' translation='-29 8.25 0'> |
110 | <Shape> |
111 | <Box size='17.029 0.25 64'/> |
112 | <Appearance USE='AppearanceWall'/> |
113 | </Shape> |
114 | </Transform> |
115 | </Transform> |
116 | </Transform> |
117 | </Scene> |
118 | </X3D> |
Event Graph ROUTE Table entries with 2 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.
ViewOverhead
Viewpoint isBound SFBool |
NavigationExamineMode
NavigationInfo set_bind SFBool |
|
ViewOverhead
Viewpoint isBound SFBool |
Trace_ROUTE_ViewOverhead_isBound_TO_NavigationExamineMode_set_bind
Script traceValue SFBool |
<!--
Color-coding 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.
-->