<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<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'>
  <head>
    <meta content='CameraCompassPrototypes.x3d' name='title'/>
    <meta content='Prototypes for a circular set of compass bearings that follow the active viewpoint. North = +X axis, East = +Z axis, up = +Y axis.' name='description'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='16 June 2001' name='created'/>
    <meta content='28 November 2019' name='modified'/>
    <meta content='David Colleen' name='inspiration'/>
    <meta content='http://www.planet9.com/earth/pearlharbor/vrml/tour.wrl' name='reference'/>
    <meta content='http://www.planet9.com/earth/pearlharbor/vrml/compass.wrl' name='reference'/>
    <meta content='compass display' name='subject'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='CameraCompassPrototypes.x3d'/>
    <ProtoDeclare appinfo='Circular set of compass bearings that follow the active viewpoint set at 360/8 = 45 degree intervals. North = +X axis East = +Z axis up = +Y axis.' name='CameraCompass8'>
      <ProtoInterface>
        <field accessType='inputOutput' name='enabled' type='SFBool' value='true'/>
        <field accessType='inputOutput' name='positionOffsetFromCamera' type='SFVec3f' value='0 6 0'/>
        <field accessType='inputOutput' name='markerColor' type='SFColor' value='0.3 0.3 0.8'/>
        <field accessType='inputOutput' name='labelColor' type='SFColor' value='0.9 0.9 0.9'/>
      </ProtoInterface>
      <ProtoBody>
        <Group>
          <ProximitySensor DEF='WhereSensor' size='1000000000 1000000000 1000000000'>
            <IS>
              <connect nodeField='enabled' protoField='enabled'/>
            </IS>
          </ProximitySensor>
          <Transform DEF='CameraLocation'>
            <Transform DEF='CameraOffset'>
              <IS>
                <connect nodeField='translation' protoField='positionOffsetFromCamera'/>
              </IS>
              <Group DEF='AllMarkers'>
                <Transform DEF='West' translation='0 0 -20'>
                  <Billboard>
                    <Shape DEF='CardinalMarker'>
                      <IndexedFaceSet coordIndex='0 1 2 3 -1'>
                        <Coordinate point='0.1 2.0 0 -0.1 2.0 0 -0.1 1.2 0 0.1 1.2 0'/>
                      </IndexedFaceSet>
                      <Appearance DEF='MarkerAppearance'>
                        <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
                        <Material DEF='MarkerMaterial' diffuseColor='0 0 0'>
                          <IS>
                            <connect nodeField='emissiveColor' protoField='markerColor'/>
                          </IS>
                        </Material>
                      </Appearance>
                    </Shape>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"West" "270"'>
                          <FontStyle DEF='CenterJustify' family='"SANS"' justify='"MIDDLE" "MIDDLE"' size='0.6'/>
                        </Text>
                        <Appearance DEF='TextAppearance'>
                          <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
                          <Material DEF='TextMaterial' diffuseColor='0 0 0'>
                            <IS>
                              <connect nodeField='emissiveColor' protoField='labelColor'/>
                            </IS>
                          </Material>
                        </Appearance>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='North' translation='20 0 0'>
                  <Billboard>
                    <Shape USE='CardinalMarker'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"North" "000"'>
                          <FontStyle USE='CenterJustify'/>
                        </Text>
                        <Appearance USE='TextAppearance'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='East' translation='0 0 20'>
                  <Billboard>
                    <Shape USE='CardinalMarker'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"East" "090"'>
                          <FontStyle USE='CenterJustify'/>
                        </Text>
                        <Appearance USE='TextAppearance'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='South' translation='-20 0 0'>
                  <Billboard>
                    <Shape USE='CardinalMarker'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"South" "180"'>
                          <FontStyle USE='CenterJustify'/>
                        </Text>
                        <Appearance USE='TextAppearance'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <!-- ===== -->
                <Transform DEF='NorthWest' translation='14.142 0 -14.142'>
                  <Billboard>
                    <Shape DEF='MidMarker'>
                      <IndexedFaceSet coordIndex='0 1 2 3 -1'>
                        <Coordinate point='0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0'/>
                      </IndexedFaceSet>
                      <Appearance USE='MarkerAppearance'/>
                    </Shape>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"NW" "315"'>
                          <FontStyle DEF='CenterJustifySmall' family='"SANS"' justify='"MIDDLE" "FIRST"' size='0.6'/>
                        </Text>
                        <Appearance USE='TextAppearance'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='NorthEast' translation='14.142 0 14.142'>
                  <Billboard>
                    <Shape USE='MidMarker'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"NE" "045"'>
                          <FontStyle USE='CenterJustifySmall'/>
                        </Text>
                        <Appearance USE='TextAppearance'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='SouthEast' translation='-14.142 0 14.142'>
                  <Billboard>
                    <Shape USE='MidMarker'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"SE" "135"'>
                          <FontStyle USE='CenterJustifySmall'/>
                        </Text>
                        <Appearance USE='TextAppearance'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='SouthWest' translation='-14.142 0 -14.142'>
                  <Billboard>
                    <Shape USE='MidMarker'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"SW" "225"'>
                          <FontStyle USE='CenterJustifySmall'/>
                        </Text>
                        <Appearance USE='TextAppearance'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
              </Group>
              <Transform DEF='CircleLine8' scale='20 1 20' translation='0 1.6 0'>
                <Shape>
                  <IndexedLineSet coordIndex='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 -1 60 61 -1 62 63 -1'>
                    <Coordinate point='0.0 0.0 1.000 0.105 0.0 0.995 0.208 0.0 0.978 0.309 0.0 0.951 0.407 0.0 0.914 0.500 0.0 0.866 0.588 0.0 0.809 0.669 0.0 0.743 0.743 0.0 0.669 0.809 0.0 0.588 0.866 0.0 0.500 0.914 0.0 0.407 0.951 0.0 0.309 0.978 0.0 0.208 0.995 0.0 0.105 1.0 0.0 0.000 0.995 0.0 -0.105 0.978 0.0 -0.208 0.951 0.0 -0.309 0.914 0.0 -0.407 0.866 0.0 -0.500 0.809 0.0 -0.588 0.743 0.0 -0.669 0.669 0.0 -0.743 0.588 0.0 -0.809 0.500 0.0 -0.866 0.407 0.0 -0.914 0.309 0.0 -0.951 0.208 0.0 -0.978 0.105 0.0 -0.995 0.0 0.0 -1.000 -0.105 0.0 -0.995 -0.208 0.0 -0.978 -0.309 0.0 -0.951 -0.407 0.0 -0.914 -0.500 0.0 -0.866 -0.588 0.0 -0.809 -0.669 0.0 -0.743 -0.743 0.0 -0.669 -0.809 0.0 -0.588 -0.866 0.0 -0.500 -0.914 0.0 -0.407 -0.951 0.0 -0.309 -0.978 0.0 -0.208 -0.995 0.0 -0.105 -1.0 0.0 -0.000 -0.995 0.0 0.105 -0.978 0.0 0.208 -0.951 0.0 0.309 -0.914 0.0 0.407 -0.866 0.0 0.500 -0.809 0.0 0.588 -0.743 0.0 0.669 -0.669 0.0 0.743 -0.588 0.0 0.809 -0.500 0.0 0.866 -0.407 0.0 0.914 -0.309 0.0 0.951 -0.208 0.0 0.978 -0.105 0.0 0.995 0.0 0.0 1.000 0 0 -1 1 0 0 -1 0 0'/>
                  </IndexedLineSet>
                  <Appearance>
                    <Material DEF='CircleMaterial' diffuseColor='0 0 0'>
                      <IS>
                        <connect nodeField='emissiveColor' protoField='markerColor'/>
                      </IS>
                    </Material>
                  </Appearance>
                </Shape>
              </Transform>
            </Transform>
          </Transform>
        </Group>
        <ROUTE fromField='position_changed' fromNode='WhereSensor' toField='translation' toNode='CameraLocation'/>
      </ProtoBody>
    </ProtoDeclare>
    <ProtoDeclare appinfo='Circular set of compass bearings that follow the active viewpoint set at 360/12 = 30 degree intervals. North = +X axis East = +Z axis up = +Y axis.' name='CameraCompass12'>
      <ProtoInterface>
        <field accessType='inputOutput' name='enabled' type='SFBool' value='true'/>
        <field accessType='inputOutput' name='positionOffsetFromCamera' type='SFVec3f' value='0 6 0'/>
        <field accessType='inputOutput' name='markerColor' type='SFColor' value='0.3 0.3 0.8'/>
        <field accessType='inputOutput' name='labelColor' type='SFColor' value='0.9 0.9 0.9'/>
      </ProtoInterface>
      <ProtoBody>
        <Group>
          <ProximitySensor DEF='WhereSensor12' size='1000000000 1000000000 1000000000'>
            <IS>
              <connect nodeField='enabled' protoField='enabled'/>
            </IS>
          </ProximitySensor>
          <Transform DEF='CameraLocation12'>
            <Transform DEF='CameraOffset12'>
              <IS>
                <connect nodeField='translation' protoField='positionOffsetFromCamera'/>
              </IS>
              <Group DEF='AllMarkers12'>
                <Transform DEF='West12' translation='0 0 -20'>
                  <Billboard>
                    <Shape DEF='CardinalMarker12'>
                      <IndexedFaceSet coordIndex='0 1 2 3 -1'>
                        <Coordinate point='0.1 2.0 0 -0.1 2.0 0 -0.1 1.2 0 0.1 1.2 0'/>
                      </IndexedFaceSet>
                      <Appearance DEF='MarkerAppearance12'>
                        <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
                        <Material DEF='MarkerMaterial12' diffuseColor='0 0 0'>
                          <IS>
                            <connect nodeField='emissiveColor' protoField='markerColor'/>
                          </IS>
                        </Material>
                      </Appearance>
                    </Shape>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"West" "270"'>
                          <FontStyle DEF='CenterJustify12' family='"SANS"' justify='"MIDDLE" "MIDDLE"' size='0.6'/>
                        </Text>
                        <Appearance DEF='TextAppearance12'>
                          <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
                          <Material DEF='TextMaterial12' diffuseColor='0 0 0'>
                            <IS>
                              <connect nodeField='emissiveColor' protoField='labelColor'/>
                            </IS>
                          </Material>
                        </Appearance>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='North12' translation='20 0 0'>
                  <Billboard>
                    <Shape USE='CardinalMarker12'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"North" "000"'>
                          <FontStyle USE='CenterJustify12'/>
                        </Text>
                        <Appearance USE='TextAppearance12'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='East12' translation='0 0 20'>
                  <Billboard>
                    <Shape USE='CardinalMarker12'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"East" "090"'>
                          <FontStyle USE='CenterJustify12'/>
                        </Text>
                        <Appearance USE='TextAppearance12'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <Transform DEF='South12' translation='-20 0 0'>
                  <Billboard>
                    <Shape USE='CardinalMarker12'/>
                    <Transform translation='0 0.6 0'>
                      <Shape>
                        <Text string='"South" "180"'>
                          <FontStyle USE='CenterJustify12'/>
                        </Text>
                        <Appearance USE='TextAppearance12'/>
                      </Shape>
                    </Transform>
                  </Billboard>
                </Transform>
                <!-- ===== -->
                <Transform DEF='Bearing030' translation='17.32 0 10'>
                  <Billboard>
                    <Shape DEF='MidMarker12'>
                      <IndexedFaceSet coordIndex='0 1 2 3 -1'>
                        <Coordinate point='0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0'/>
                      </IndexedFaceSet>
                      <Appearance USE='MarkerAppearance12'/>
                    </Shape>
                    <Shape>
                      <Text string='"030"'>
                        <FontStyle DEF='CenterJustifySmall12' family='"SANS"' justify='"MIDDLE" "FIRST"' size='0.75'/>
                      </Text>
                      <Appearance USE='TextAppearance12'/>
                    </Shape>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing060' translation='10 0 17.32'>
                  <Billboard>
                    <Shape USE='MidMarker12'/>
                    <Shape>
                      <Text string='"060"'>
                        <FontStyle USE='CenterJustifySmall12'/>
                      </Text>
                      <Appearance USE='TextAppearance12'/>
                    </Shape>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing120' translation='-10 0 17.32'>
                  <Billboard>
                    <Shape USE='MidMarker12'/>
                    <Shape>
                      <Text string='"120"'>
                        <FontStyle USE='CenterJustifySmall12'/>
                      </Text>
                      <Appearance USE='TextAppearance12'/>
                    </Shape>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing150' translation='-17.32 0 10'>
                  <Billboard>
                    <Shape USE='MidMarker12'/>
                    <Shape>
                      <Text string='"150"'>
                        <FontStyle USE='CenterJustifySmall12'/>
                      </Text>
                      <Appearance USE='TextAppearance12'/>
                    </Shape>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing210' translation='-17.32 0 -10'>
                  <Billboard>
                    <Shape USE='MidMarker12'/>
                    <Shape>
                      <Text string='"210"'>
                        <FontStyle USE='CenterJustifySmall12'/>
                      </Text>
                      <Appearance USE='TextAppearance12'/>
                    </Shape>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing240' translation='-10 0 -17.32'>
                  <Billboard>
                    <Shape USE='MidMarker12'/>
                    <Shape>
                      <Text string='"240"'>
                        <FontStyle USE='CenterJustifySmall12'/>
                      </Text>
                      <Appearance USE='TextAppearance12'/>
                    </Shape>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing300' translation='10 0 -17.32'>
                  <Billboard>
                    <Shape USE='MidMarker12'/>
                    <Shape>
                      <Text string='"300"'>
                        <FontStyle USE='CenterJustifySmall12'/>
                      </Text>
                      <Appearance USE='TextAppearance12'/>
                    </Shape>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing330' translation='17.32 0 -10'>
                  <Billboard>
                    <Shape USE='MidMarker12'/>
                    <Shape>
                      <Text string='"330"'>
                        <FontStyle USE='CenterJustifySmall12'/>
                      </Text>
                      <Appearance USE='TextAppearance12'/>
                    </Shape>
                  </Billboard>
                </Transform>
              </Group>
              <Transform DEF='CircleLine12' scale='20 1 20' translation='0 1.6 0'>
                <Shape>
                  <IndexedLineSet coordIndex='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 -1 60 61 -1 62 63 -1'>
                    <Coordinate point='0.0 0.0 1.000 0.105 0.0 0.995 0.208 0.0 0.978 0.309 0.0 0.951 0.407 0.0 0.914 0.500 0.0 0.866 0.588 0.0 0.809 0.669 0.0 0.743 0.743 0.0 0.669 0.809 0.0 0.588 0.866 0.0 0.500 0.914 0.0 0.407 0.951 0.0 0.309 0.978 0.0 0.208 0.995 0.0 0.105 1.0 0.0 0.000 0.995 0.0 -0.105 0.978 0.0 -0.208 0.951 0.0 -0.309 0.914 0.0 -0.407 0.866 0.0 -0.500 0.809 0.0 -0.588 0.743 0.0 -0.669 0.669 0.0 -0.743 0.588 0.0 -0.809 0.500 0.0 -0.866 0.407 0.0 -0.914 0.309 0.0 -0.951 0.208 0.0 -0.978 0.105 0.0 -0.995 0.0 0.0 -1.000 -0.105 0.0 -0.995 -0.208 0.0 -0.978 -0.309 0.0 -0.951 -0.407 0.0 -0.914 -0.500 0.0 -0.866 -0.588 0.0 -0.809 -0.669 0.0 -0.743 -0.743 0.0 -0.669 -0.809 0.0 -0.588 -0.866 0.0 -0.500 -0.914 0.0 -0.407 -0.951 0.0 -0.309 -0.978 0.0 -0.208 -0.995 0.0 -0.105 -1.0 0.0 -0.000 -0.995 0.0 0.105 -0.978 0.0 0.208 -0.951 0.0 0.309 -0.914 0.0 0.407 -0.866 0.0 0.500 -0.809 0.0 0.588 -0.743 0.0 0.669 -0.669 0.0 0.743 -0.588 0.0 0.809 -0.500 0.0 0.866 -0.407 0.0 0.914 -0.309 0.0 0.951 -0.208 0.0 0.978 -0.105 0.0 0.995 0.0 0.0 1.000 0 0 -1 1 0 0 -1 0 0'/>
                  </IndexedLineSet>
                  <Appearance>
                    <Material DEF='CircleMaterial12' diffuseColor='0 0 0'>
                      <IS>
                        <connect nodeField='emissiveColor' protoField='markerColor'/>
                      </IS>
                    </Material>
                  </Appearance>
                </Shape>
              </Transform>
            </Transform>
          </Transform>
        </Group>
        <ROUTE fromField='position_changed' fromNode='WhereSensor12' toField='translation' toNode='CameraLocation12'/>
      </ProtoBody>
    </ProtoDeclare>
    <ProtoDeclare appinfo='Circular set of compass bearings that follow the active viewpoint set at 360/36 = 10 degree intervals. North = +X axis East = +Z axis up = +Y axis.' name='CameraCompass36'>
      <ProtoInterface>
        <field accessType='inputOutput' name='enabled' type='SFBool' value='true'/>
        <field accessType='inputOutput' name='positionOffsetFromCamera' type='SFVec3f' value='0 6 0'/>
        <field accessType='inputOutput' name='markerColor' type='SFColor' value='0.3 0.3 0.8'/>
        <field accessType='inputOutput' name='labelColor' type='SFColor' value='0.9 0.9 0.9'/>
      </ProtoInterface>
      <ProtoBody>
        <Group>
          <ProtoInstance DEF='CameraCompass12Node' name='CameraCompass12'>
            <IS>
              <connect nodeField='enabled' protoField='enabled'/>
              <connect nodeField='positionOffsetFromCamera' protoField='positionOffsetFromCamera'/>
              <connect nodeField='markerColor' protoField='markerColor'/>
              <connect nodeField='labelColor' protoField='labelColor'/>
            </IS>
          </ProtoInstance>
          <ProximitySensor DEF='WhereSensor36' size='1000000000 1000000000 1000000000'>
            <IS>
              <connect nodeField='enabled' protoField='enabled'/>
            </IS>
          </ProximitySensor>
          <Transform DEF='CameraLocation36'>
            <Transform DEF='CameraOffset36'>
              <IS>
                <connect nodeField='translation' protoField='positionOffsetFromCamera'/>
              </IS>
              <Group DEF='FirstQuadrantMarkers'>
                <Transform DEF='Bearing010' translation='19.7 0.0 3.48'>
                  <Billboard>
                    <Shape DEF='MidMarker36'>
                      <IndexedFaceSet coordIndex='0 1 2 3 -1'>
                        <Coordinate point='0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0'/>
                      </IndexedFaceSet>
                      <Appearance DEF='MarkerAppearance36'>
                        <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
                        <Material DEF='MarkerMaterial36' diffuseColor='0 0 0'>
                          <IS>
                            <connect nodeField='emissiveColor' protoField='markerColor'/>
                          </IS>
                        </Material>
                      </Appearance>
                    </Shape>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing020' translation='18.8 0.0 6.84'>
                  <Billboard>
                    <Shape USE='MidMarker36'/>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing040' translation='15.32 0.0 12.86'>
                  <Billboard>
                    <Shape USE='MidMarker36'/>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing050' translation='12.86 0.0 15.32'>
                  <Billboard>
                    <Shape USE='MidMarker36'/>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing070' translation='6.84 0.0 18.8'>
                  <Billboard>
                    <Shape USE='MidMarker36'/>
                  </Billboard>
                </Transform>
                <Transform DEF='Bearing080' translation='3.48 0.0 19.7'>
                  <Billboard>
                    <Shape USE='MidMarker36'/>
                  </Billboard>
                </Transform>
              </Group>
              <Transform DEF='SecondQuadrantMarkers' rotation='0 1 0 -1.57'>
                <Group USE='FirstQuadrantMarkers'/>
              </Transform>
              <Transform DEF='ThirdQuadrantMarkers' rotation='0 1 0 3.1416'>
                <Group USE='FirstQuadrantMarkers'/>
              </Transform>
              <Transform DEF='FourthQuadrantMarkers' rotation='0 1 0 1.57'>
                <Group USE='FirstQuadrantMarkers'/>
              </Transform>
            </Transform>
          </Transform>
        </Group>
        <ROUTE fromField='position_changed' fromNode='WhereSensor36' toField='translation' toNode='CameraLocation36'/>
      </ProtoBody>
    </ProtoDeclare>
    <!-- ======================== -->
    <NavigationInfo speed='10' type='"FLY" "ANY"'/>
    <Group DEF='TextMenu'>
      <Transform translation='0 2 0'>
        <Shape>
          <Text string='"CameraCompassPrototypes" "is a prototype definition file." "For examples click text:"'>
            <FontStyle justify='"MIDDLE" "MIDDLE"'/>
          </Text>
          <Appearance>
            <Material diffuseColor='0.9 0.9 0.9'/>
          </Appearance>
        </Shape>
      </Transform>
      <Transform translation='0 -1 0'>
        <Anchor description='CameraCompass8 Example' parameter='"target=_blank"' url='"CameraCompass8Example.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass8Example.x3d" "CameraCompass8Example.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass8Example.wrl"'>
          <Shape>
            <Text string='"CameraCompass8 Example"'>
              <FontStyle justify='"MIDDLE" "MIDDLE"'/>
            </Text>
            <Appearance>
              <Material diffuseColor='0.8 0.8 0.4'/>
            </Appearance>
          </Shape>
        </Anchor>
      </Transform>
      <Transform translation='0 -2 0'>
        <Anchor description='CameraCompass12 Example' parameter='"target=_blank"' url='"CameraCompass12Example.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass12Example.x3d" "CameraCompass12Example.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass12Example.wrl"'>
          <Shape>
            <Text string='"CameraCompass12 Example"'>
              <FontStyle justify='"MIDDLE" "MIDDLE"'/>
            </Text>
            <Appearance>
              <Material diffuseColor='0.8 0.4 0.2'/>
            </Appearance>
          </Shape>
        </Anchor>
      </Transform>
      <Transform translation='0 -3 0'>
        <Anchor description='CameraCompass36 Example' parameter='"target=_blank"' url='"CameraCompass36Example.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass36Example.x3d" "CameraCompass36Example.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass36Example.wrl"'>
          <Shape>
            <Text string='"CameraCompass36 Example"'>
              <FontStyle justify='"MIDDLE" "MIDDLE"'/>
            </Text>
            <Appearance>
              <Material diffuseColor='0.9 0.2 0.2'/>
            </Appearance>
          </Shape>
        </Anchor>
      </Transform>
    </Group>
  </Scene>
</X3D>