X3D
type: NamedIndividual
has head: head
has scene: Scene
profile: Immersive
version: 3.2
no namespace schema location: https://www.web3d.org/specifications/x3d-3.2.xsd

meta 1 1
type: NamedIndividual
type: meta
has parent: head
content: PoolMontereyPeninsulaCollege.x3d
name: title

meta 1 2
type: NamedIndividual
type: meta
has parent: head
content: Monterey Peninsula College (MPC) swimming pool, built several different ways, author can choose one by Switch node selection
name: description

meta 1 3
type: NamedIndividual
type: meta
has parent: head
content: Don Brutzman and MV3204 class
name: creator

meta 1 4
type: NamedIndividual
type: meta
has parent: head
content: 9 April 2010
name: created

meta 1 5
type: NamedIndividual
type: meta
has parent: head
content: 1 October 2023
name: modified

meta 1 6
type: NamedIndividual
type: meta
has parent: head
content: The following image test snapshots show inconsistent support by X3D players. Xj3D did not render the textures, SwirlX3D player did not render the scene.
name: error

meta 1 7
type: NamedIndividual
type: meta
has parent: head
content: TextureTransformViewBsContact.png
name: Image

meta 1 8
type: NamedIndividual
type: meta
has parent: head
content: TextureTransformViewInstantReality.png
name: Image

meta 1 9
type: NamedIndividual
type: meta
has parent: head
content: TextureTransformViewOctagaVS.png
name: Image

meta 1 10
type: NamedIndividual
type: meta
has parent: head
content: TextureTransformViewFreeWrl.png
name: Image

meta 1 11
type: NamedIndividual
type: meta
has parent: head
content: TextureTransformViewXj3d.png
name: Image

meta 1 12
type: NamedIndividual
type: meta
has parent: head
content: This scene includes trace diagnostic for changing user navigation from EXAMINE to FLY when binding/unbinding the initial overhead-perspective Viewpoint
name: info

meta 1 13
type: NamedIndividual
type: meta
has parent: head
content: PoolMontereyPeninsulaCollegeSketch.png
name: drawing

meta 1 14
type: NamedIndividual
type: meta
has parent: head
content: PoolMontereyPeninsulaCollegeDiagram.pdf
name: Image

meta 1 15
type: NamedIndividual
type: meta
has parent: head
content: PoolMontereyPeninsulaCollegeDiagram.png
name: Image

meta 1 16
type: NamedIndividual
type: meta
has parent: head
content: PoolMontereyPeninsulaCollegeDiagram.vsd
name: Image

meta 1 17
type: NamedIndividual
type: meta
has parent: head
content: MontereyPeninsulaCollegeOpenStreetMap.png
name: map

meta 1 18
type: NamedIndividual
type: meta
has parent: head
content: snapshots/PoolCoordinateIndexValues.jpg
name: drawing

meta 1 19
type: NamedIndividual
type: meta
has parent: head
content: snapshots/PoolCoordinateIndexValuesSketch.jpg
name: drawing

meta 1 20
type: NamedIndividual
type: meta
has parent: head
content: snapshots/PoolSnapshotBoxesAbove.png
name: Image

meta 1 21
type: NamedIndividual
type: meta
has parent: head
content: snapshots/PoolSnapshotBoxesBelow.png
name: Image

meta 1 22
type: NamedIndividual
type: meta
has parent: head
content: snapshots/PoolSnapshotIndexedFaceSetAbove.png
name: Image

meta 1 23
type: NamedIndividual
type: meta
has parent: head
content: snapshots/PoolSnapshotIndexedFaceSetBelow.png
name: Image

meta 1 24
type: NamedIndividual
type: meta
has parent: head
content: snapshots/UltrasonicDistanceMeasurer.jpg
name: photo

meta 1 25
type: NamedIndividual
type: meta
has parent: head
content: information about ROV races
name: TODO

meta 1 26
type: NamedIndividual
type: meta
has parent: head
content: photo(s) of pool
name: TODO

meta 1 27
type: NamedIndividual
type: meta
has parent: head
content: document how to adjust Viewpoint centerOfRotation
name: TODO

meta 1 28
type: NamedIndividual
type: meta
has parent: head
content: X3D swimming pool
name: subject

meta 1 29
type: NamedIndividual
type: meta
has parent: head
content: PoolMontereyPeninsulaCollegeUsingBoxes.x3d
name: reference

meta 1 30
type: NamedIndividual
type: meta
has parent: head
content: http://mmog.ern.nps.edu/svn/mv3204/examples/PoolMontereyPeninsulaCollege.x3d
name: reference

meta 1 31
type: NamedIndividual
type: meta
has parent: head
content: https://www.web3d.org/x3d/content/examples/Savage/Locations/MontereyPeninsulaCollege/PoolMontereyPeninsulaCollege.x3d
name: identifier

meta 1 32
type: NamedIndividual
type: meta
has parent: head
content: X3D-Edit, https://www.web3d.org/x3d/tools/X3D-Edit
name: generator

meta 1 33
type: NamedIndividual
type: meta
has parent: head
content: ../../license.html
name: license

PoolMontereyPeninsulaCollege.x3d
description: Monterey Peninsula College (MPC) swimming pool, built several different ways, author can choose one by Switch node selection
creator: Don Brutzman and MV3204 class
created: 9 April 2010
modified: 1 October 2023
error: The following image test snapshots show inconsistent support by X3D players. Xj3D did not render the textures, SwirlX3D player did not render the scene.
image: TextureTransformViewBsContact.png
image: TextureTransformViewInstantReality.png
image: TextureTransformViewOctagaVS.png
image: TextureTransformViewFreeWrl.png
image: TextureTransformViewXj3d.png
info: This scene includes trace diagnostic for changing user navigation from EXAMINE to FLY when binding/unbinding the initial overhead-perspective Viewpoint
drawing: PoolMontereyPeninsulaCollegeSketch.png
image: PoolMontereyPeninsulaCollegeDiagram.pdf
image: PoolMontereyPeninsulaCollegeDiagram.png
image: PoolMontereyPeninsulaCollegeDiagram.vsd
drawing: snapshots/PoolCoordinateIndexValues.jpg
drawing: snapshots/PoolCoordinateIndexValuesSketch.jpg
image: snapshots/PoolSnapshotBoxesAbove.png
image: snapshots/PoolSnapshotBoxesBelow.png
image: snapshots/PoolSnapshotIndexedFaceSetAbove.png
image: snapshots/PoolSnapshotIndexedFaceSetBelow.png
photo: snapshots/UltrasonicDistanceMeasurer.jpg
subject: X3D swimming pool
reference: PoolMontereyPeninsulaCollegeUsingBoxes.x3d
reference: http://mmog.ern.nps.edu/svn/mv3204/examples/PoolMontereyPeninsulaCollege.x3d
generator: X3D-Edit, https://www.web3d.org/x3d/tools/X3D-Edit
license: ../../license.html

WorldInfo 2 1
type: NamedIndividual
type: WorldInfo
has parent: Scene
title: PoolMontereyPeninsulaCollege.x3d

LitPool
type: NamedIndividual
type: PointLight
has parent: Scene
DEF: LitPool
location: 37.5
location: 100
location: 32

Background 2 3
type: NamedIndividual
type: Background
has parent: Scene
sky color: 1

CoordinateAxes
type: NamedIndividual
type: Inline
has parent: Scene
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"

NavigationExamineMode
type: NamedIndividual
type: NavigationInfo
has parent: Scene
DEF: NavigationExamineMode
avatar size: 0.25
avatar size: 1.6
avatar size: 2
speed: 5
type: "EXAMINE" "FLY" "ANY"

NavigationWalkMode
type: NamedIndividual
type: NavigationInfo
has parent: Scene
DEF: NavigationWalkMode
avatar size: 0.25
avatar size: 1.6
avatar size: 2
speed: 5
type: "WALK" "ANY"

NavigationFlyMode
type: NamedIndividual
type: NavigationInfo
has parent: Scene
DEF: NavigationFlyMode
avatar size: 0.25
avatar size: 1.6
avatar size: 2
speed: 5
type: "FLY" "ANY"

ScaleFeetToMeters
type: NamedIndividual
type: Transform
has parent: Scene
has children: ViewingNavigation
has children: SwitchWhichPool
has children: ShiftWaterSurfaceDown
has children: Sidewalks
has children: PoolSwitcherClock
has children: PoolSequencer
has ROUTE: ROUTE 2 8 7
has ROUTE: ROUTE 2 8 8
DEF: ScaleFeetToMeters
scale: 0.3048

ViewingNavigation
type: NamedIndividual
type: Group
has parent: ScaleFeetToMeters
has children: Transform 2 8 1 1
has children: Transform 2 8 1 2
has children: Group 2 8 1 3
has children: Viewpoint 2 8 1 4
has children: Viewpoint 2 8 1 5
has children: Viewpoint 2 8 1 6
has children: Viewpoint 2 8 1 7
has children: Viewpoint 2 8 1 8
has children: Viewpoint 2 8 1 9
has children: Viewpoint 2 8 1 10
has children: Viewpoint 2 8 1 11
DEF: ViewingNavigation

Transform 2 8 1 1
type: NamedIndividual
type: Transform
has parent: ViewingNavigation
has children: ViewOverheadLongWaysAcross
center: 37.5
center: 100
center: 32
rotation: 1
rotation: 0
rotation: -1.5708

ViewOverheadLongWaysAcross
type: NamedIndividual
type: Viewpoint
has parent: Transform 2 8 1 1
DEF: ViewOverheadLongWaysAcross
description: High above pool, long-ways across, from 100 feet
orientation: 0
orientation: 1
orientation: 3.1416
position: 37.5
position: 100
position: 32

Transform 2 8 1 2
type: NamedIndividual
type: Transform
has parent: ViewingNavigation
has children: ViewOverhead
center: 37.5
center: 120
center: 32
rotation: 1
rotation: 0
rotation: -1.5708

ViewOverhead
type: NamedIndividual
type: Viewpoint
has parent: Transform 2 8 1 2
DEF: ViewOverhead
center of rotation: 0
center of rotation: 120
description: High above pool, long-ways up, from 120 feet
orientation: 0
orientation: 1
orientation: -1.5708
position: 37.5
position: 120
position: 32

Trace ROUTE ViewOverhead isBound TO NavigationExamineMode set bind
type: NamedIndividual
type: Script
has parent: Group 2 8 1 3
has field: field 2 8 1 3 1 1
has field: field 2 8 1 3 1 2
has field: field 2 8 1 3 1 3
DEF: Trace_ROUTE_ViewOverhead_isBound_TO_NavigationExamineMode_set_bind
must evaluate: true
source code: 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)'; }

field 2 8 1 3 1 1
type: NamedIndividual
type: field
has parent: Trace ROUTE ViewOverhead isBound TO NavigationExamineMode set bind
access type: initializeOnly
appinfo: Sampling frequency in seconds (0 means all values)
name: reportInterval
type: SFTime
value: 1.0

field 2 8 1 3 1 2
type: NamedIndividual
type: field
has parent: Trace ROUTE ViewOverhead isBound TO NavigationExamineMode set bind
access type: inputOnly
name: traceValue
type: SFBool

field 2 8 1 3 1 3
type: NamedIndividual
type: field
has parent: Trace ROUTE ViewOverhead isBound TO NavigationExamineMode set bind
access type: initializeOnly
name: timeStampPreviousReport
type: SFTime
value: -1

ROUTE 2 8 1 3 2
type: NamedIndividual
type: ROUTE
has parent: Group 2 8 1 3
from field: isBound
from node: ViewOverhead
to field: traceValue
to node: Trace_ROUTE_ViewOverhead_isBound_TO_NavigationExamineMode_set_bind

Viewpoint 2 8 1 4
type: NamedIndividual
type: Viewpoint
has parent: ViewingNavigation
description: Shallow end left side, from origin
orientation: 0.0067
orientation: 0.9998
orientation: 0.0161
orientation: -2.3563
position: -13
position: 6

Viewpoint 2 8 1 5
type: NamedIndividual
type: Viewpoint
has parent: ViewingNavigation
description: Pool center left side
orientation: 0
orientation: 0.9955
orientation: 0.0949
orientation: 3.1413
position: 37.52
position: 10
position: -20

Viewpoint 2 8 1 6
type: NamedIndividual
type: Viewpoint
has parent: ViewingNavigation
description: Deep end left side
orientation: -0.0203
orientation: 0.9988
orientation: 0.0451
orientation: 2.2984
position: 87
position: 6
position: -12

Viewpoint 2 8 1 7
type: NamedIndividual
type: Viewpoint
has parent: ViewingNavigation
description: Deep end center
orientation: -0.0857
orientation: 0.9926
orientation: 0.0857
orientation: 1.5782
position: 95
position: 10
position: 32

Viewpoint 2 8 1 8
type: NamedIndividual
type: Viewpoint
has parent: ViewingNavigation
description: Deep end right side
orientation: -0.1001
orientation: 0.994
orientation: 0.0449
orientation: 0.8487
position: 87
position: 6
position: 76

Viewpoint 2 8 1 9
type: NamedIndividual
type: Viewpoint
has parent: ViewingNavigation
description: Pool center right side
orientation: -1
orientation: 0.002
orientation: 0.0002
orientation: 0.2235
position: 37.52
position: 10
position: 84

Viewpoint 2 8 1 10
type: NamedIndividual
type: Viewpoint
has parent: ViewingNavigation
description: Shallow end right side
orientation: 0.1001
orientation: 0.994
orientation: 0.0449
orientation: -0.8487
position: -12
position: 6
position: 76

Viewpoint 2 8 1 11
type: NamedIndividual
type: Viewpoint
has parent: ViewingNavigation
description: Shallow end center
orientation: 0.0864
orientation: 0.99251
orientation: -1.578318
position: -20
position: 10
position: 32

SwitchWhichPool
type: NamedIndividual
type: Switch
has parent: ScaleFeetToMeters
has children: BoxPoolGroup
has children: IfsPoolGroup
has children: IfsPoolGroupTextured
has children: SimpleElevationGridPoolGroup
has children: DetailedElevationGridPoolGroup
DEF: SwitchWhichPool
which choice: 2

BoxPoolGroup
type: NamedIndividual
type: Group
has parent: SwitchWhichPool
has children: ShiftBoxCornersToPoolCenter
DEF: BoxPoolGroup

ShiftBoxCornersToPoolCenter
type: NamedIndividual
type: Transform
has parent: BoxPoolGroup
has children: PoolFloor
has children: ShallowWall
has children: DeepWall
has children: LeftWall
has children: RightWall
has children: DeepFloor
has children: DeepFloor2
has children: DeepFloor3
has children: DeepFloor4
has children: DeepFloor5
DEF: ShiftBoxCornersToPoolCenter
translation: 37.5
translation: -12.75
translation: 32

PoolFloor
type: NamedIndividual
type: Shape
has parent: ShiftBoxCornersToPoolCenter
has geometry: Box 2 8 2 1 1 1 1
has appearance: AppearanceWall
DEF: PoolFloor

Box 2 8 2 1 1 1 1
type: NamedIndividual
type: Box
has parent: PoolFloor
size: 75
size: 0.25
size: 64

AppearanceWall
type: NamedIndividual
type: Appearance
has parent: PoolFloor
has material: Material 2 8 2 1 1 1 2 1
DEF: AppearanceWall

Material 2 8 2 1 1 1 2 1
type: NamedIndividual
type: Material
has parent: AppearanceWall
diffuse color: 0.5
diffuse color: 0.9

ShallowWall
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: ShortWall
DEF: ShallowWall
translation: -37.5
translation: 6.25
translation: 0

ShortWall
type: NamedIndividual
type: Shape
has parent: ShallowWall
has geometry: Box 2 8 2 1 1 2 1 1
has appearance: AppearanceWall-USE-1
DEF: ShortWall

Box 2 8 2 1 1 2 1 1
type: NamedIndividual
type: Box
has parent: ShortWall
size: 0.25
size: 12.75
size: 64

DeepWall
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: ShortWall-USE-1
DEF: DeepWall
translation: 37.5
translation: 6.25
translation: 0

LeftWall
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: LongWall
DEF: LeftWall
translation: 0
translation: 6.25
translation: -32

LongWall
type: NamedIndividual
type: Shape
has parent: LeftWall
has geometry: Box 2 8 2 1 1 4 1 1
has appearance: AppearanceWall-USE-2
DEF: LongWall

Box 2 8 2 1 1 4 1 1
type: NamedIndividual
type: Box
has parent: LongWall
size: 75
size: 12.75
size: 0.25

RightWall
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: LongWall-USE-1
DEF: RightWall
translation: 0
translation: 6.25
translation: 32

DeepFloor
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: Shape 2 8 2 1 1 6 1
DEF: DeepFloor
rotation: 0
rotation: 1
rotation: 0.1732
translation: 32.5
translation: .9
translation: 0

Box 2 8 2 1 1 6 1 1
type: NamedIndividual
type: Box
has parent: Shape 2 8 2 1 1 6 1
size: 10.152
size: 0.25
size: 64

DeepFloor2
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: Shape 2 8 2 1 1 7 1
DEF: DeepFloor2
rotation: 0
rotation: 1
rotation: -0.2085
translation: 21
translation: 1.4
translation: 0

Box 2 8 2 1 1 7 1 1
type: NamedIndividual
type: Box
has parent: Shape 2 8 2 1 1 7 1
size: 13.288
size: 0.25
size: 64

DeepFloor3
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: Shape 2 8 2 1 1 8 1
DEF: DeepFloor3
rotation: 0
rotation: 1
rotation: -0.2783
translation: 7.5
translation: 4.75
translation: 0

Box 2 8 2 1 1 8 1 1
type: NamedIndividual
type: Box
has parent: Shape 2 8 2 1 1 8 1
size: 14.560
size: 0.25
size: 64

DeepFloor4
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: Shape 2 8 2 1 1 9 1
DEF: DeepFloor4
rotation: 0
rotation: 1
rotation: -0.0476
translation: -10
translation: 7.25
translation: 0

Box 2 8 2 1 1 9 1 1
type: NamedIndividual
type: Box
has parent: Shape 2 8 2 1 1 9 1
size: 21.024
size: 0.25
size: 64

DeepFloor5
type: NamedIndividual
type: Transform
has parent: ShiftBoxCornersToPoolCenter
has children: Shape 2 8 2 1 1 10 1
DEF: DeepFloor5
rotation: 0
rotation: 1
rotation: -0.0588
translation: -29
translation: 8.25
translation: 0

Box 2 8 2 1 1 10 1 1
type: NamedIndividual
type: Box
has parent: Shape 2 8 2 1 1 10 1
size: 17.029
size: 0.25
size: 64

IfsPoolGroup
type: NamedIndividual
type: Group
has parent: SwitchWhichPool
has children: Shape 2 8 2 2 1
DEF: IfsPoolGroup

IndexedFaceSetPool
type: NamedIndividual
type: IndexedFaceSet
has parent: Shape 2 8 2 2 1
has coord: PoolPoints
DEF: IndexedFaceSetPool
convex: false
coord index: 0
coord index: 3
coord index: 7
coord index: 4
coord index: -1
coord index: 1
coord index: 5
coord index: 6
coord index: 2
coord index: 12
coord index: 8
coord index: 13
coord index: 9
coord index: 14
coord index: 10
coord index: 15
coord index: 11
solid: false

PoolPoints
type: NamedIndividual
type: Coordinate
has parent: IndexedFaceSetPool
DEF: PoolPoints
point: 0
point: 75
point: 64
point: -4
point: -11
point: 17
point: -5
point: 38
point: -6
point: 53
point: -10
point: 65
point: -12.75

Material 2 8 2 2 1 2 1
type: NamedIndividual
type: Material
has parent: Appearance 2 8 2 2 1 2
diffuse color: 0.580392
diffuse color: 1
diffuse color: 0.976471

IfsPoolGroupTextured
type: NamedIndividual
type: Group
has parent: SwitchWhichPool
has children: Shape 2 8 2 3 1
has children: Shape 2 8 2 3 2
DEF: IfsPoolGroupTextured

IfsPoolSides
type: NamedIndividual
type: IndexedFaceSet
has parent: Shape 2 8 2 3 1
has coord: PoolPoints-USE-1
DEF: IfsPoolSides
convex: false
coord index: 0
coord index: 3
coord index: 7
coord index: 4
coord index: -1
coord index: 1
coord index: 5
coord index: 6
coord index: 2
coord index: 8
coord index: 9
coord index: 10
coord index: 11
coord index: 15
coord index: 14
coord index: 13
coord index: 12
solid: false

Material 2 8 2 3 1 2 1
type: NamedIndividual
type: Material
has parent: Appearance 2 8 2 3 1 2
diffuse color: 0.580392
diffuse color: 1
diffuse color: 0.976471

IfsPoolBottom
type: NamedIndividual
type: IndexedFaceSet
has parent: Shape 2 8 2 3 2
has coord: PoolPoints-USE-2
DEF: IfsPoolBottom
convex: false
coord index: 4
coord index: 7
coord index: 12
coord index: 8
coord index: -1
coord index: 13
coord index: 9
coord index: 14
coord index: 10
coord index: 15
coord index: 11
coord index: 6
coord index: 5
solid: false

Material 2 8 2 3 2 2 1
type: NamedIndividual
type: Material
has parent: Appearance 2 8 2 3 2 2
diffuse color: 0.580392
diffuse color: 1
diffuse color: 0.976471

PoolDiagram
type: NamedIndividual
type: ImageTexture
has parent: Appearance 2 8 2 3 2 2
DEF: PoolDiagram
url: "PoolMontereyPeninsulaCollegeDiagram.png" "https://www.web3d.org/x3d/content/examples/Savage/Locations/PoolMontereyPeninsulaCollegeDiagram.png"

CutUnusedPortionOfImage
type: NamedIndividual
type: TextureTransform
has parent: Appearance 2 8 2 3 2 2
DEF: CutUnusedPortionOfImage
scale: -0.786
scale: 0.893
translation: 0.135
translation: 0.1335

SimpleElevationGridPoolGroup
type: NamedIndividual
type: Group
has parent: SwitchWhichPool
has children: Shape 2 8 2 4 1
DEF: SimpleElevationGridPoolGroup

ElevationGrid 2 8 2 4 1 1
type: NamedIndividual
type: ElevationGrid
has parent: Shape 2 8 2 4 1
height: 0
height: -4
height: -5
height: -6
height: -10
height: -12.75
solid: false
x dimension: 7
x spacing: 10
z dimension: 6
z spacing: 10

Material 2 8 2 4 1 2 1
type: NamedIndividual
type: Material
has parent: Appearance 2 8 2 4 1 2
diffuse color: 0.3
diffuse color: 0.7

DetailedElevationGridPoolGroup
type: NamedIndividual
type: Group
has parent: SwitchWhichPool
has children: Shape 2 8 2 5 1
DEF: DetailedElevationGridPoolGroup

ElevationGrid 2 8 2 5 1 1
type: NamedIndividual
type: ElevationGrid
has parent: Shape 2 8 2 5 1
height: 0
height: -4
height: -4.0625
height: -4.125
height: -4.1875
height: -4.25
height: -4.3125
height: -4.375
height: -4.4375
height: -4.5
height: -4.5625
height: -4.625
height: -4.6875
height: -4.75
height: -4.8125
height: -4.875
height: -4.9375
height: -5
height: -5.05
height: -5.1
height: -5.15
height: -5.2
height: -5.25
height: -5.3
height: -5.35
height: -5.4
height: -5.45
height: -5.5
height: -5.55
height: -5.6
height: -5.65
height: -5.7
height: -5.75
height: -5.8
height: -5.85
height: -5.9
height: -5.95
height: -5.975
height: -6
height: -6.2666
height: -6.5332
height: -6.7998
height: -7.0664
height: -7.333
height: -7.5996
height: -7.8662
height: -8.1328
height: -8.3994
height: -8.666
height: -8.9326
height: -9.1992
height: -9.4658
height: -9.7324
height: -10
height: -10.25
height: -10.5
height: -10.75
height: -11
height: -11.25
height: -11.5
height: -11.75
height: -12
height: -12.25
height: -12.5
height: -12.625
height: -12.75
height: -12.575
height: -12.4
height: -12.225
height: -12.05
height: -11.875
height: -11.7
height: -11.525
height: -11.35
height: -11.175
solid: false
x dimension: 77

Material 2 8 2 5 1 2 1
type: NamedIndividual
type: Material
has parent: Appearance 2 8 2 5 1 2
diffuse color: 0.3
diffuse color: 0.7

ShiftWaterSurfaceDown
type: NamedIndividual
type: Transform
has parent: ScaleFeetToMeters
has children: Shape 2 8 3 1
DEF: ShiftWaterSurfaceDown
translation: 0
translation: -1

PoolSurface
type: NamedIndividual
type: IndexedFaceSet
has parent: Shape 2 8 3 1
has coord: PoolPoints-USE-3
DEF: PoolSurface
coord index: 0
coord index: 3
coord index: 2
coord index: 1
coord index: -1
solid: false

Material 2 8 3 1 2 1
type: NamedIndividual
type: Material
has parent: Appearance 2 8 3 1 2
diffuse color: 0.2
diffuse color: 0.8
diffuse color: 0.9
shininess: 1
transparency: 0.9

Sidewalks
type: NamedIndividual
type: Group
has parent: ScaleFeetToMeters
has children: BottomSidewalk
has children: TopSidewalk
has children: LeftSidewalk
has children: RightSidewalk
DEF: Sidewalks

BottomSidewalk
type: NamedIndividual
type: Shape
has parent: Sidewalks
has geometry: IndexedFaceSet 2 8 4 1 1
has appearance: Appearance 2 8 4 1 2
DEF: BottomSidewalk

IndexedFaceSet 2 8 4 1 1
type: NamedIndividual
type: IndexedFaceSet
has parent: BottomSidewalk
has coord: SidewalkPoints
has color: SandyColor
color index: 0
color per vertex: false
coord index: 0
coord index: 4
coord index: 7
coord index: 3
coord index: -1
solid: false

SidewalkPoints
type: NamedIndividual
type: Coordinate
has parent: IndexedFaceSet 2 8 4 1 1
DEF: SidewalkPoints
point: -10
point: 0
point: 75
point: 85
point: 64
point: 74

SandyColor
type: NamedIndividual
type: Color
has parent: IndexedFaceSet 2 8 4 1 1
DEF: SandyColor
color: 0.99
color: 0.2

TextureTransform 2 8 4 1 2 2
type: NamedIndividual
type: TextureTransform
has parent: Appearance 2 8 4 1 2
scale: -1
scale: 1
translation: 0
translation: 0.012

TopSidewalk
type: NamedIndividual
type: Shape
has parent: Sidewalks
has geometry: IndexedFaceSet 2 8 4 2 1
has appearance: Appearance 2 8 4 2 2
DEF: TopSidewalk

IndexedFaceSet 2 8 4 2 1
type: NamedIndividual
type: IndexedFaceSet
has parent: TopSidewalk
has coord: SidewalkPoints-USE-1
has color: SandyColor-USE-1
color index: 0
color per vertex: false
coord index: 8
coord index: 12
coord index: 15
coord index: 11
coord index: -1
solid: false

TextureTransform 2 8 4 2 2 2
type: NamedIndividual
type: TextureTransform
has parent: Appearance 2 8 4 2 2
scale: -1
scale: 1
translation: 0
translation: -0.105

LeftSidewalk
type: NamedIndividual
type: Shape
has parent: Sidewalks
has geometry: IndexedFaceSet 2 8 4 3 1
has appearance: Appearance 2 8 4 3 2
DEF: LeftSidewalk

IndexedFaceSet 2 8 4 3 1
type: NamedIndividual
type: IndexedFaceSet
has parent: LeftSidewalk
has coord: SidewalkPoints-USE-2
has color: SandyColor-USE-2
color index: 0
color per vertex: false
coord index: 6
coord index: 10
coord index: 11
coord index: 7
coord index: -1
solid: false

TextureTransform 2 8 4 3 2 2
type: NamedIndividual
type: TextureTransform
has parent: Appearance 2 8 4 3 2
rotation: 1.570796
scale: 0.695
scale: 0.78
translation: 0.15
translation: 1.284

RightSidewalk
type: NamedIndividual
type: Shape
has parent: Sidewalks
has geometry: IndexedFaceSet 2 8 4 4 1
has appearance: Appearance 2 8 4 4 2
DEF: RightSidewalk

IndexedFaceSet 2 8 4 4 1
type: NamedIndividual
type: IndexedFaceSet
has parent: RightSidewalk
has coord: SidewalkPoints-USE-3
has color: SandyColor-USE-3
color index: 0
color per vertex: false
coord index: 4
coord index: 8
coord index: 9
coord index: 5
coord index: -1
solid: false

TextureTransform 2 8 4 4 2 2
type: NamedIndividual
type: TextureTransform
has parent: Appearance 2 8 4 4 2
rotation: 1.570796
scale: 0.697
scale: 0.777
translation: 0.1515
translation: -0.0024

PoolSwitcherClock
type: NamedIndividual
type: TimeSensor
has parent: ScaleFeetToMeters
DEF: PoolSwitcherClock
cycle interval: 24
enabled: false
loop: true

PoolSequencer
type: NamedIndividual
type: IntegerSequencer
has parent: ScaleFeetToMeters
DEF: PoolSequencer
key: 0
key: 0.2
key: 0.4
key: 0.6
key: 0.8
key: 1
key value: 0
key value: 1
key value: 2
key value: 3
key value: 4

ROUTE 2 8 7
type: NamedIndividual
type: ROUTE
has parent: ScaleFeetToMeters
from field: fraction_changed
from node: PoolSwitcherClock
to field: set_fraction
to node: PoolSequencer

ROUTE 2 8 8
type: NamedIndividual
type: ROUTE
has parent: ScaleFeetToMeters
from field: value_changed
from node: PoolSequencer
to field: whichChoice
to node: SwitchWhichPool