@prefix :        <https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.ttl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema:  <http://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix x3d:     <https://www.web3d.org/specifications/x3d-4.0.xsd#> .
@prefix x3do:    <https://www.web3d.org/specifications/X3dOntology4.0#> .

:X3D a owl:NamedIndividual, x3do:X3D ;
  x3do:hasHead :head ;
  x3do:hasScene :Scene ;
  x3do:profile 'Immersive' ;
  x3do:version '3.0' ;
  x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-3.0.xsd' .
:head a owl:NamedIndividual, x3do:head ;
  x3do:hasParent :X3D ;
  x3do:hasMeta :meta_1_1, :meta_1_2, :meta_1_3, :meta_1_4, :meta_1_5, :meta_1_6, :meta_1_7, :meta_1_8, :meta_1_9, :meta_1_10, :meta_1_11, :meta_1_12 .
:meta_1_1 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'CameraCompassPrototypes.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Prototypes for a circular set of compass bearings that follow the active viewpoint. North = +X axis, East = +Z axis, up = +Y axis.' ;
  x3do:name 'description' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Don Brutzman' ;
  x3do:name 'creator' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '16 June 2001' ;
  x3do:name 'created' .
:meta_1_5 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '28 November 2019' ;
  x3do:name 'modified' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'David Colleen' ;
  x3do:name 'inspiration' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'http://www.planet9.com/earth/pearlharbor/vrml/tour.wrl' ;
  x3do:name 'reference' .
:meta_1_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'http://www.planet9.com/earth/pearlharbor/vrml/compass.wrl' ;
  x3do:name 'reference' .
:meta_1_9 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'compass display' ;
  x3do:name 'subject' .
:meta_1_10 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d' ;
  x3do:name 'identifier' .
:meta_1_11 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit' ;
  x3do:name 'generator' .
:meta_1_12 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '../../license.html' ;
  x3do:name 'license' .
:meta dcterms:title "CameraCompassPrototypes.x3d" .
:meta dcterms:description "Prototypes for a circular set of compass bearings that follow the active viewpoint. North = +X axis, East = +Z axis, up = +Y axis." .
:meta dcterms:creator "Don Brutzman" .
:meta dcterms:created "16 June 2001" .
:meta dcterms:modified "28 November 2019" .
:meta dcterms:reference "http://www.planet9.com/earth/pearlharbor/vrml/tour.wrl" .
:meta dcterms:reference "http://www.planet9.com/earth/pearlharbor/vrml/compass.wrl" .
:meta dcterms:subject "compass display" .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d" .
:meta dcterms:generator "X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit" .
:meta dcterms:license "../../license.html" .
:Scene a owl:NamedIndividual, x3do:Scene ;
  x3do:hasParent :X3D ;
  x3do:hasChildren :WorldInfo_2_1, :NavigationInfo_2_5, :TextMenu ;
  x3do:hasProtoDeclare :ProtoDeclare_2_2, :ProtoDeclare_2_3, :ProtoDeclare_2_4 .
:WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:title 'CameraCompassPrototypes.x3d' .
:ProtoDeclare_2_2 a owl:NamedIndividual, x3do:ProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasProtoInterface :ProtoInterface_2_2_1 ;
  x3do:hasProtoBody :ProtoBody_2_2_2 ;
  x3do: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.' ;
  x3do:name 'CameraCompass8' .
:ProtoInterface_2_2_1 a owl:NamedIndividual, x3do:ProtoInterface ;
  x3do:hasParent :ProtoDeclare_2_2 ;
  x3do:hasField :field_2_2_1_1, :field_2_2_1_2, :field_2_2_1_3, :field_2_2_1_4 .
:field_2_2_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'enabled' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_2_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'positionOffsetFromCamera' ;
  x3do:type 'SFVec3f' ;
  x3do:value ( 0 6 0 ) .
:field_2_2_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'markerColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( 0.3 0.3 0.8 ) .
:field_2_2_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'labelColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( 0.9 0.9 0.9 ) .
:ProtoBody_2_2_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_2 ;
  x3do:hasChildren :Group_2_2_2_1 ;
  x3do:hasROUTE :ROUTE_2_2_2_2 .
:Group_2_2_2_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:hasChildren :WhereSensor, :CameraLocation .
:WhereSensor a owl:NamedIndividual, x3do:ProximitySensor ;
  x3do:hasParent :Group_2_2_2_1 ;
  x3do:hasIS :IS_2_2_2_1_1_1 ;
  x3do:DEF 'WhereSensor' ;
  x3do:size ( 1000000000 1000000000 1000000000 ) .
:IS_2_2_2_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :WhereSensor ;
  x3do:hasConnect :connect_2_2_2_1_1_1_1 .
:connect_2_2_2_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_1 ;
  x3do:nodeField 'enabled' ;
  x3do:protoField 'enabled' .
:CameraLocation a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_2_2_1 ;
  x3do:hasChildren :CameraOffset ;
  x3do:DEF 'CameraLocation' .
:CameraOffset a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CameraLocation ;
  x3do:hasIS :IS_2_2_2_1_2_1_1 ;
  x3do:hasChildren :AllMarkers, :CircleLine8 ;
  x3do:DEF 'CameraOffset' .
:IS_2_2_2_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :CameraOffset ;
  x3do:hasConnect :connect_2_2_2_1_2_1_1_1 .
:connect_2_2_2_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_2_1_1 ;
  x3do:nodeField 'translation' ;
  x3do:protoField 'positionOffsetFromCamera' .
:AllMarkers a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :CameraOffset ;
  x3do:hasChildren :West, :North, :East, :South, :NorthWest, :NorthEast, :SouthEast, :SouthWest ;
  x3do:DEF 'AllMarkers' .
:West a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers ;
  x3do:hasChildren :Billboard_2_2_2_1_2_1_2_1_1 ;
  x3do:DEF 'West' ;
  x3do:translation ( 0 0 -20 ) .
:Billboard_2_2_2_1_2_1_2_1_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :West ;
  x3do:hasChildren :CardinalMarker, :Transform_2_2_2_1_2_1_2_1_1_2 .
:CardinalMarker a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_1_1 ;
  x3do:hasGeometry :IndexedFaceSet_2_2_2_1_2_1_2_1_1_1_1 ;
  x3do:hasAppearance :MarkerAppearance ;
  x3do:DEF 'CardinalMarker' .
:IndexedFaceSet_2_2_2_1_2_1_2_1_1_1_1 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :CardinalMarker ;
  x3do:hasCoord :Coordinate_2_2_2_1_2_1_2_1_1_1_1_1 ;
  x3do:coordIndex ( 0 1 2 3 -1 ) .
:Coordinate_2_2_2_1_2_1_2_1_1_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_2_2_1_2_1_2_1_1_1_1 ;
  x3do:point ( 0.1 2.0 0 -0.1 2.0 0 -0.1 1.2 0 0.1 1.2 0 ) .
:MarkerAppearance a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :CardinalMarker ;
  x3do:hasMaterial :MarkerMaterial ;
  x3do:DEF 'MarkerAppearance' .
:MarkerMaterial a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :MarkerAppearance ;
  x3do:hasIS :IS_2_2_2_1_2_1_2_1_1_1_2_1_1 ;
  x3do:DEF 'MarkerMaterial' ;
  x3do:diffuseColor ( 0 0 0 ) .
:IS_2_2_2_1_2_1_2_1_1_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :MarkerMaterial ;
  x3do:hasConnect :connect_2_2_2_1_2_1_2_1_1_1_2_1_1_1 .
:connect_2_2_2_1_2_1_2_1_1_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_2_1_2_1_1_1_2_1_1 ;
  x3do:nodeField 'emissiveColor' ;
  x3do:protoField 'markerColor' .
:Transform_2_2_2_1_2_1_2_1_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_1_1 ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_2_1_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_2_2_1_2_1_2_1_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_2_1_2_1_1_2 ;
  x3do:hasGeometry :Text_2_2_2_1_2_1_2_1_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance .
:Text_2_2_2_1_2_1_2_1_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_1_1_2_1 ;
  x3do:hasFontStyle :CenterJustify ;
  x3do:string '"West" "270"' .
:CenterJustify a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_2_1_2_1_1_2_1_1 ;
  x3do:DEF 'CenterJustify' ;
  x3do:family '"SANS"' ;
  x3do:justify '"MIDDLE" "MIDDLE"' ;
  x3do:size 0.6 .
:TextAppearance a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_1_1_2_1 ;
  x3do:hasMaterial :TextMaterial ;
  x3do:DEF 'TextAppearance' .
:TextMaterial a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :TextAppearance ;
  x3do:hasIS :IS_2_2_2_1_2_1_2_1_1_2_1_2_1_1 ;
  x3do:DEF 'TextMaterial' ;
  x3do:diffuseColor ( 0 0 0 ) .
:IS_2_2_2_1_2_1_2_1_1_2_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :TextMaterial ;
  x3do:hasConnect :connect_2_2_2_1_2_1_2_1_1_2_1_2_1_1_1 .
:connect_2_2_2_1_2_1_2_1_1_2_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_2_1_2_1_1_2_1_2_1_1 ;
  x3do:nodeField 'emissiveColor' ;
  x3do:protoField 'labelColor' .
:North a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers ;
  x3do:hasChildren :Billboard_2_2_2_1_2_1_2_2_1 ;
  x3do:DEF 'North' ;
  x3do:translation ( 20 0 0 ) .
:Billboard_2_2_2_1_2_1_2_2_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :North ;
  x3do:hasChildren :CardinalMarker-USE-1, :Transform_2_2_2_1_2_1_2_2_1_2 .
:CardinalMarker-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_2_1 ;
  owl:sameAs :CardinalMarker . # DEF matching this USE
:Transform_2_2_2_1_2_1_2_2_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_2_1 ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_2_2_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_2_2_1_2_1_2_2_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_2_1_2_2_1_2 ;
  x3do:hasGeometry :Text_2_2_2_1_2_1_2_2_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance-USE-1 .
:Text_2_2_2_1_2_1_2_2_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_2_1_2_1 ;
  x3do:hasFontStyle :CenterJustify-USE-1 ;
  x3do:string '"North" "000"' .
:CenterJustify-USE-1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_2_1_2_2_1_2_1_1 ;
  owl:sameAs :CenterJustify . # DEF matching this USE
:TextAppearance-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_2_1_2_1 ;
  owl:sameAs :TextAppearance . # DEF matching this USE
:East a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers ;
  x3do:hasChildren :Billboard_2_2_2_1_2_1_2_3_1 ;
  x3do:DEF 'East' ;
  x3do:translation ( 0 0 20 ) .
:Billboard_2_2_2_1_2_1_2_3_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :East ;
  x3do:hasChildren :CardinalMarker-USE-2, :Transform_2_2_2_1_2_1_2_3_1_2 .
:CardinalMarker-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_3_1 ;
  owl:sameAs :CardinalMarker . # DEF matching this USE
:Transform_2_2_2_1_2_1_2_3_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_3_1 ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_2_3_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_2_2_1_2_1_2_3_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_2_1_2_3_1_2 ;
  x3do:hasGeometry :Text_2_2_2_1_2_1_2_3_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance-USE-2 .
:Text_2_2_2_1_2_1_2_3_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_3_1_2_1 ;
  x3do:hasFontStyle :CenterJustify-USE-2 ;
  x3do:string '"East" "090"' .
:CenterJustify-USE-2 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_2_1_2_3_1_2_1_1 ;
  owl:sameAs :CenterJustify . # DEF matching this USE
:TextAppearance-USE-2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_3_1_2_1 ;
  owl:sameAs :TextAppearance . # DEF matching this USE
:South a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers ;
  x3do:hasChildren :Billboard_2_2_2_1_2_1_2_4_1 ;
  x3do:DEF 'South' ;
  x3do:translation ( -20 0 0 ) .
:Billboard_2_2_2_1_2_1_2_4_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :South ;
  x3do:hasChildren :CardinalMarker-USE-3, :Transform_2_2_2_1_2_1_2_4_1_2 .
:CardinalMarker-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_4_1 ;
  owl:sameAs :CardinalMarker . # DEF matching this USE
:Transform_2_2_2_1_2_1_2_4_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_4_1 ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_2_4_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_2_2_1_2_1_2_4_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_2_1_2_4_1_2 ;
  x3do:hasGeometry :Text_2_2_2_1_2_1_2_4_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance-USE-3 .
:Text_2_2_2_1_2_1_2_4_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_4_1_2_1 ;
  x3do:hasFontStyle :CenterJustify-USE-3 ;
  x3do:string '"South" "180"' .
:CenterJustify-USE-3 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_2_1_2_4_1_2_1_1 ;
  owl:sameAs :CenterJustify . # DEF matching this USE
:TextAppearance-USE-3 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_4_1_2_1 ;
  owl:sameAs :TextAppearance . # DEF matching this USE
:NorthWest a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers ;
  x3do:hasChildren :Billboard_2_2_2_1_2_1_2_5_1 ;
  x3do:DEF 'NorthWest' ;
  x3do:translation ( 14.142 0 -14.142 ) .
:Billboard_2_2_2_1_2_1_2_5_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :NorthWest ;
  x3do:hasChildren :MidMarker, :Transform_2_2_2_1_2_1_2_5_1_2 .
:MidMarker a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_5_1 ;
  x3do:hasGeometry :IndexedFaceSet_2_2_2_1_2_1_2_5_1_1_1 ;
  x3do:hasAppearance :MarkerAppearance-USE-1 ;
  x3do:DEF 'MidMarker' .
:IndexedFaceSet_2_2_2_1_2_1_2_5_1_1_1 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :MidMarker ;
  x3do:hasCoord :Coordinate_2_2_2_1_2_1_2_5_1_1_1_1 ;
  x3do:coordIndex ( 0 1 2 3 -1 ) .
:Coordinate_2_2_2_1_2_1_2_5_1_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_2_2_1_2_1_2_5_1_1_1 ;
  x3do:point ( 0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0 ) .
:MarkerAppearance-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :MidMarker ;
  owl:sameAs :MarkerAppearance . # DEF matching this USE
:Transform_2_2_2_1_2_1_2_5_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_5_1 ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_2_5_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_2_2_1_2_1_2_5_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_2_1_2_5_1_2 ;
  x3do:hasGeometry :Text_2_2_2_1_2_1_2_5_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance-USE-4 .
:Text_2_2_2_1_2_1_2_5_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_5_1_2_1 ;
  x3do:hasFontStyle :CenterJustifySmall ;
  x3do:string '"NW" "315"' .
:CenterJustifySmall a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_2_1_2_5_1_2_1_1 ;
  x3do:DEF 'CenterJustifySmall' ;
  x3do:family '"SANS"' ;
  x3do:justify '"MIDDLE" "FIRST"' ;
  x3do:size 0.6 .
:TextAppearance-USE-4 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_5_1_2_1 ;
  owl:sameAs :TextAppearance . # DEF matching this USE
:NorthEast a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers ;
  x3do:hasChildren :Billboard_2_2_2_1_2_1_2_6_1 ;
  x3do:DEF 'NorthEast' ;
  x3do:translation ( 14.142 0 14.142 ) .
:Billboard_2_2_2_1_2_1_2_6_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :NorthEast ;
  x3do:hasChildren :MidMarker-USE-1, :Transform_2_2_2_1_2_1_2_6_1_2 .
:MidMarker-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_6_1 ;
  owl:sameAs :MidMarker . # DEF matching this USE
:Transform_2_2_2_1_2_1_2_6_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_6_1 ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_2_6_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_2_2_1_2_1_2_6_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_2_1_2_6_1_2 ;
  x3do:hasGeometry :Text_2_2_2_1_2_1_2_6_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance-USE-5 .
:Text_2_2_2_1_2_1_2_6_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_6_1_2_1 ;
  x3do:hasFontStyle :CenterJustifySmall-USE-1 ;
  x3do:string '"NE" "045"' .
:CenterJustifySmall-USE-1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_2_1_2_6_1_2_1_1 ;
  owl:sameAs :CenterJustifySmall . # DEF matching this USE
:TextAppearance-USE-5 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_6_1_2_1 ;
  owl:sameAs :TextAppearance . # DEF matching this USE
:SouthEast a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers ;
  x3do:hasChildren :Billboard_2_2_2_1_2_1_2_7_1 ;
  x3do:DEF 'SouthEast' ;
  x3do:translation ( -14.142 0 14.142 ) .
:Billboard_2_2_2_1_2_1_2_7_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :SouthEast ;
  x3do:hasChildren :MidMarker-USE-2, :Transform_2_2_2_1_2_1_2_7_1_2 .
:MidMarker-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_7_1 ;
  owl:sameAs :MidMarker . # DEF matching this USE
:Transform_2_2_2_1_2_1_2_7_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_7_1 ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_2_7_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_2_2_1_2_1_2_7_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_2_1_2_7_1_2 ;
  x3do:hasGeometry :Text_2_2_2_1_2_1_2_7_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance-USE-6 .
:Text_2_2_2_1_2_1_2_7_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_7_1_2_1 ;
  x3do:hasFontStyle :CenterJustifySmall-USE-2 ;
  x3do:string '"SE" "135"' .
:CenterJustifySmall-USE-2 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_2_1_2_7_1_2_1_1 ;
  owl:sameAs :CenterJustifySmall . # DEF matching this USE
:TextAppearance-USE-6 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_7_1_2_1 ;
  owl:sameAs :TextAppearance . # DEF matching this USE
:SouthWest a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers ;
  x3do:hasChildren :Billboard_2_2_2_1_2_1_2_8_1 ;
  x3do:DEF 'SouthWest' ;
  x3do:translation ( -14.142 0 -14.142 ) .
:Billboard_2_2_2_1_2_1_2_8_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :SouthWest ;
  x3do:hasChildren :MidMarker-USE-3, :Transform_2_2_2_1_2_1_2_8_1_2 .
:MidMarker-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_8_1 ;
  owl:sameAs :MidMarker . # DEF matching this USE
:Transform_2_2_2_1_2_1_2_8_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_2_1_2_8_1 ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_2_8_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_2_2_1_2_1_2_8_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_2_1_2_8_1_2 ;
  x3do:hasGeometry :Text_2_2_2_1_2_1_2_8_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance-USE-7 .
:Text_2_2_2_1_2_1_2_8_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_8_1_2_1 ;
  x3do:hasFontStyle :CenterJustifySmall-USE-3 ;
  x3do:string '"SW" "225"' .
:CenterJustifySmall-USE-3 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_2_1_2_8_1_2_1_1 ;
  owl:sameAs :CenterJustifySmall . # DEF matching this USE
:TextAppearance-USE-7 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_2_8_1_2_1 ;
  owl:sameAs :TextAppearance . # DEF matching this USE
:CircleLine8 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CameraOffset ;
  x3do:hasChildren :Shape_2_2_2_1_2_1_3_1 ;
  x3do:DEF 'CircleLine8' ;
  x3do:scale ( 20 1 20 ) ;
  x3do:translation ( 0 1.6 0 ) .
:Shape_2_2_2_1_2_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :CircleLine8 ;
  x3do:hasGeometry :IndexedLineSet_2_2_2_1_2_1_3_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_2_1_3_1_2 .
:IndexedLineSet_2_2_2_1_2_1_3_1_1 a owl:NamedIndividual, x3do:IndexedLineSet ;
  x3do:hasParent :Shape_2_2_2_1_2_1_3_1 ;
  x3do:hasCoord :Coordinate_2_2_2_1_2_1_3_1_1_1 ;
  x3do: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_2_2_2_1_2_1_3_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedLineSet_2_2_2_1_2_1_3_1_1 ;
  x3do: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 ) .
:Appearance_2_2_2_1_2_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_2_1_3_1 ;
  x3do:hasMaterial :CircleMaterial .
:CircleMaterial a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_2_1_3_1_2 ;
  x3do:hasIS :IS_2_2_2_1_2_1_3_1_2_1_1 ;
  x3do:DEF 'CircleMaterial' ;
  x3do:diffuseColor ( 0 0 0 ) .
:IS_2_2_2_1_2_1_3_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :CircleMaterial ;
  x3do:hasConnect :connect_2_2_2_1_2_1_3_1_2_1_1_1 .
:connect_2_2_2_1_2_1_3_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_2_1_3_1_2_1_1 ;
  x3do:nodeField 'emissiveColor' ;
  x3do:protoField 'markerColor' .
:ROUTE_2_2_2_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'position_changed' ;
  x3do:fromNode 'WhereSensor' ;
  x3do:toField 'translation' ;
  x3do:toNode 'CameraLocation' .
:ProtoDeclare_2_3 a owl:NamedIndividual, x3do:ProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasProtoInterface :ProtoInterface_2_3_1 ;
  x3do:hasProtoBody :ProtoBody_2_3_2 ;
  x3do: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.' ;
  x3do:name 'CameraCompass12' .
:ProtoInterface_2_3_1 a owl:NamedIndividual, x3do:ProtoInterface ;
  x3do:hasParent :ProtoDeclare_2_3 ;
  x3do:hasField :field_2_3_1_1, :field_2_3_1_2, :field_2_3_1_3, :field_2_3_1_4 .
:field_2_3_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_3_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'enabled' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_3_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_3_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'positionOffsetFromCamera' ;
  x3do:type 'SFVec3f' ;
  x3do:value ( 0 6 0 ) .
:field_2_3_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_3_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'markerColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( 0.3 0.3 0.8 ) .
:field_2_3_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_3_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'labelColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( 0.9 0.9 0.9 ) .
:ProtoBody_2_3_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_3 ;
  x3do:hasChildren :Group_2_3_2_1 ;
  x3do:hasROUTE :ROUTE_2_3_2_2 .
:Group_2_3_2_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_3_2 ;
  x3do:hasChildren :WhereSensor12, :CameraLocation12 .
:WhereSensor12 a owl:NamedIndividual, x3do:ProximitySensor ;
  x3do:hasParent :Group_2_3_2_1 ;
  x3do:hasIS :IS_2_3_2_1_1_1 ;
  x3do:DEF 'WhereSensor12' ;
  x3do:size ( 1000000000 1000000000 1000000000 ) .
:IS_2_3_2_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :WhereSensor12 ;
  x3do:hasConnect :connect_2_3_2_1_1_1_1 .
:connect_2_3_2_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_3_2_1_1_1 ;
  x3do:nodeField 'enabled' ;
  x3do:protoField 'enabled' .
:CameraLocation12 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_3_2_1 ;
  x3do:hasChildren :CameraOffset12 ;
  x3do:DEF 'CameraLocation12' .
:CameraOffset12 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CameraLocation12 ;
  x3do:hasIS :IS_2_3_2_1_2_1_1 ;
  x3do:hasChildren :AllMarkers12, :CircleLine12 ;
  x3do:DEF 'CameraOffset12' .
:IS_2_3_2_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :CameraOffset12 ;
  x3do:hasConnect :connect_2_3_2_1_2_1_1_1 .
:connect_2_3_2_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_3_2_1_2_1_1 ;
  x3do:nodeField 'translation' ;
  x3do:protoField 'positionOffsetFromCamera' .
:AllMarkers12 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :CameraOffset12 ;
  x3do:hasChildren :West12, :North12, :East12, :South12, :Bearing030, :Bearing060, :Bearing120, :Bearing150, :Bearing210, :Bearing240, :Bearing300, :Bearing330 ;
  x3do:DEF 'AllMarkers12' .
:West12 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_1_1 ;
  x3do:DEF 'West12' ;
  x3do:translation ( 0 0 -20 ) .
:Billboard_2_3_2_1_2_1_2_1_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :West12 ;
  x3do:hasChildren :CardinalMarker12, :Transform_2_3_2_1_2_1_2_1_1_2 .
:CardinalMarker12 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_1_1 ;
  x3do:hasGeometry :IndexedFaceSet_2_3_2_1_2_1_2_1_1_1_1 ;
  x3do:hasAppearance :MarkerAppearance12 ;
  x3do:DEF 'CardinalMarker12' .
:IndexedFaceSet_2_3_2_1_2_1_2_1_1_1_1 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :CardinalMarker12 ;
  x3do:hasCoord :Coordinate_2_3_2_1_2_1_2_1_1_1_1_1 ;
  x3do:coordIndex ( 0 1 2 3 -1 ) .
:Coordinate_2_3_2_1_2_1_2_1_1_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_3_2_1_2_1_2_1_1_1_1 ;
  x3do:point ( 0.1 2.0 0 -0.1 2.0 0 -0.1 1.2 0 0.1 1.2 0 ) .
:MarkerAppearance12 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :CardinalMarker12 ;
  x3do:hasMaterial :MarkerMaterial12 ;
  x3do:DEF 'MarkerAppearance12' .
:MarkerMaterial12 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :MarkerAppearance12 ;
  x3do:hasIS :IS_2_3_2_1_2_1_2_1_1_1_2_1_1 ;
  x3do:DEF 'MarkerMaterial12' ;
  x3do:diffuseColor ( 0 0 0 ) .
:IS_2_3_2_1_2_1_2_1_1_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :MarkerMaterial12 ;
  x3do:hasConnect :connect_2_3_2_1_2_1_2_1_1_1_2_1_1_1 .
:connect_2_3_2_1_2_1_2_1_1_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_3_2_1_2_1_2_1_1_1_2_1_1 ;
  x3do:nodeField 'emissiveColor' ;
  x3do:protoField 'markerColor' .
:Transform_2_3_2_1_2_1_2_1_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_1_1 ;
  x3do:hasChildren :Shape_2_3_2_1_2_1_2_1_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_3_2_1_2_1_2_1_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_3_2_1_2_1_2_1_1_2 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_1_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance12 .
:Text_2_3_2_1_2_1_2_1_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_1_1_2_1 ;
  x3do:hasFontStyle :CenterJustify12 ;
  x3do:string '"West" "270"' .
:CenterJustify12 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_1_1_2_1_1 ;
  x3do:DEF 'CenterJustify12' ;
  x3do:family '"SANS"' ;
  x3do:justify '"MIDDLE" "MIDDLE"' ;
  x3do:size 0.6 .
:TextAppearance12 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_1_1_2_1 ;
  x3do:hasMaterial :TextMaterial12 ;
  x3do:DEF 'TextAppearance12' .
:TextMaterial12 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :TextAppearance12 ;
  x3do:hasIS :IS_2_3_2_1_2_1_2_1_1_2_1_2_1_1 ;
  x3do:DEF 'TextMaterial12' ;
  x3do:diffuseColor ( 0 0 0 ) .
:IS_2_3_2_1_2_1_2_1_1_2_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :TextMaterial12 ;
  x3do:hasConnect :connect_2_3_2_1_2_1_2_1_1_2_1_2_1_1_1 .
:connect_2_3_2_1_2_1_2_1_1_2_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_3_2_1_2_1_2_1_1_2_1_2_1_1 ;
  x3do:nodeField 'emissiveColor' ;
  x3do:protoField 'labelColor' .
:North12 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_2_1 ;
  x3do:DEF 'North12' ;
  x3do:translation ( 20 0 0 ) .
:Billboard_2_3_2_1_2_1_2_2_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :North12 ;
  x3do:hasChildren :CardinalMarker12-USE-1, :Transform_2_3_2_1_2_1_2_2_1_2 .
:CardinalMarker12-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_2_1 ;
  owl:sameAs :CardinalMarker12 . # DEF matching this USE
:Transform_2_3_2_1_2_1_2_2_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_2_1 ;
  x3do:hasChildren :Shape_2_3_2_1_2_1_2_2_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_3_2_1_2_1_2_2_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_3_2_1_2_1_2_2_1_2 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_2_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance12-USE-1 .
:Text_2_3_2_1_2_1_2_2_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_2_1_2_1 ;
  x3do:hasFontStyle :CenterJustify12-USE-1 ;
  x3do:string '"North" "000"' .
:CenterJustify12-USE-1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_2_1_2_1_1 ;
  owl:sameAs :CenterJustify12 . # DEF matching this USE
:TextAppearance12-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_2_1_2_1 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:East12 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_3_1 ;
  x3do:DEF 'East12' ;
  x3do:translation ( 0 0 20 ) .
:Billboard_2_3_2_1_2_1_2_3_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :East12 ;
  x3do:hasChildren :CardinalMarker12-USE-2, :Transform_2_3_2_1_2_1_2_3_1_2 .
:CardinalMarker12-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_3_1 ;
  owl:sameAs :CardinalMarker12 . # DEF matching this USE
:Transform_2_3_2_1_2_1_2_3_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_3_1 ;
  x3do:hasChildren :Shape_2_3_2_1_2_1_2_3_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_3_2_1_2_1_2_3_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_3_2_1_2_1_2_3_1_2 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_3_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance12-USE-2 .
:Text_2_3_2_1_2_1_2_3_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_3_1_2_1 ;
  x3do:hasFontStyle :CenterJustify12-USE-2 ;
  x3do:string '"East" "090"' .
:CenterJustify12-USE-2 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_3_1_2_1_1 ;
  owl:sameAs :CenterJustify12 . # DEF matching this USE
:TextAppearance12-USE-2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_3_1_2_1 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:South12 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_4_1 ;
  x3do:DEF 'South12' ;
  x3do:translation ( -20 0 0 ) .
:Billboard_2_3_2_1_2_1_2_4_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :South12 ;
  x3do:hasChildren :CardinalMarker12-USE-3, :Transform_2_3_2_1_2_1_2_4_1_2 .
:CardinalMarker12-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_4_1 ;
  owl:sameAs :CardinalMarker12 . # DEF matching this USE
:Transform_2_3_2_1_2_1_2_4_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_4_1 ;
  x3do:hasChildren :Shape_2_3_2_1_2_1_2_4_1_2_1 ;
  x3do:translation ( 0 0.6 0 ) .
:Shape_2_3_2_1_2_1_2_4_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_3_2_1_2_1_2_4_1_2 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_4_1_2_1_1 ;
  x3do:hasAppearance :TextAppearance12-USE-3 .
:Text_2_3_2_1_2_1_2_4_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_4_1_2_1 ;
  x3do:hasFontStyle :CenterJustify12-USE-3 ;
  x3do:string '"South" "180"' .
:CenterJustify12-USE-3 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_4_1_2_1_1 ;
  owl:sameAs :CenterJustify12 . # DEF matching this USE
:TextAppearance12-USE-3 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_4_1_2_1 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:Bearing030 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_5_1 ;
  x3do:DEF 'Bearing030' ;
  x3do:translation ( 17.32 0 10 ) .
:Billboard_2_3_2_1_2_1_2_5_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing030 ;
  x3do:hasChildren :MidMarker12, :Shape_2_3_2_1_2_1_2_5_1_2 .
:MidMarker12 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_5_1 ;
  x3do:hasGeometry :IndexedFaceSet_2_3_2_1_2_1_2_5_1_1_1 ;
  x3do:hasAppearance :MarkerAppearance12-USE-1 ;
  x3do:DEF 'MidMarker12' .
:IndexedFaceSet_2_3_2_1_2_1_2_5_1_1_1 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :MidMarker12 ;
  x3do:hasCoord :Coordinate_2_3_2_1_2_1_2_5_1_1_1_1 ;
  x3do:coordIndex ( 0 1 2 3 -1 ) .
:Coordinate_2_3_2_1_2_1_2_5_1_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_3_2_1_2_1_2_5_1_1_1 ;
  x3do:point ( 0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0 ) .
:MarkerAppearance12-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :MidMarker12 ;
  owl:sameAs :MarkerAppearance12 . # DEF matching this USE
:Shape_2_3_2_1_2_1_2_5_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_5_1 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_5_1_2_1 ;
  x3do:hasAppearance :TextAppearance12-USE-4 .
:Text_2_3_2_1_2_1_2_5_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_5_1_2 ;
  x3do:hasFontStyle :CenterJustifySmall12 ;
  x3do:string '"030"' .
:CenterJustifySmall12 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_5_1_2_1 ;
  x3do:DEF 'CenterJustifySmall12' ;
  x3do:family '"SANS"' ;
  x3do:justify '"MIDDLE" "FIRST"' ;
  x3do:size 0.75 .
:TextAppearance12-USE-4 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_5_1_2 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:Bearing060 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_6_1 ;
  x3do:DEF 'Bearing060' ;
  x3do:translation ( 10 0 17.32 ) .
:Billboard_2_3_2_1_2_1_2_6_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing060 ;
  x3do:hasChildren :MidMarker12-USE-1, :Shape_2_3_2_1_2_1_2_6_1_2 .
:MidMarker12-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_6_1 ;
  owl:sameAs :MidMarker12 . # DEF matching this USE
:Shape_2_3_2_1_2_1_2_6_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_6_1 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_6_1_2_1 ;
  x3do:hasAppearance :TextAppearance12-USE-5 .
:Text_2_3_2_1_2_1_2_6_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_6_1_2 ;
  x3do:hasFontStyle :CenterJustifySmall12-USE-1 ;
  x3do:string '"060"' .
:CenterJustifySmall12-USE-1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_6_1_2_1 ;
  owl:sameAs :CenterJustifySmall12 . # DEF matching this USE
:TextAppearance12-USE-5 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_6_1_2 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:Bearing120 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_7_1 ;
  x3do:DEF 'Bearing120' ;
  x3do:translation ( -10 0 17.32 ) .
:Billboard_2_3_2_1_2_1_2_7_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing120 ;
  x3do:hasChildren :MidMarker12-USE-2, :Shape_2_3_2_1_2_1_2_7_1_2 .
:MidMarker12-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_7_1 ;
  owl:sameAs :MidMarker12 . # DEF matching this USE
:Shape_2_3_2_1_2_1_2_7_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_7_1 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_7_1_2_1 ;
  x3do:hasAppearance :TextAppearance12-USE-6 .
:Text_2_3_2_1_2_1_2_7_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_7_1_2 ;
  x3do:hasFontStyle :CenterJustifySmall12-USE-2 ;
  x3do:string '"120"' .
:CenterJustifySmall12-USE-2 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_7_1_2_1 ;
  owl:sameAs :CenterJustifySmall12 . # DEF matching this USE
:TextAppearance12-USE-6 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_7_1_2 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:Bearing150 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_8_1 ;
  x3do:DEF 'Bearing150' ;
  x3do:translation ( -17.32 0 10 ) .
:Billboard_2_3_2_1_2_1_2_8_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing150 ;
  x3do:hasChildren :MidMarker12-USE-3, :Shape_2_3_2_1_2_1_2_8_1_2 .
:MidMarker12-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_8_1 ;
  owl:sameAs :MidMarker12 . # DEF matching this USE
:Shape_2_3_2_1_2_1_2_8_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_8_1 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_8_1_2_1 ;
  x3do:hasAppearance :TextAppearance12-USE-7 .
:Text_2_3_2_1_2_1_2_8_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_8_1_2 ;
  x3do:hasFontStyle :CenterJustifySmall12-USE-3 ;
  x3do:string '"150"' .
:CenterJustifySmall12-USE-3 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_8_1_2_1 ;
  owl:sameAs :CenterJustifySmall12 . # DEF matching this USE
:TextAppearance12-USE-7 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_8_1_2 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:Bearing210 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_9_1 ;
  x3do:DEF 'Bearing210' ;
  x3do:translation ( -17.32 0 -10 ) .
:Billboard_2_3_2_1_2_1_2_9_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing210 ;
  x3do:hasChildren :MidMarker12-USE-4, :Shape_2_3_2_1_2_1_2_9_1_2 .
:MidMarker12-USE-4 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_9_1 ;
  owl:sameAs :MidMarker12 . # DEF matching this USE
:Shape_2_3_2_1_2_1_2_9_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_9_1 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_9_1_2_1 ;
  x3do:hasAppearance :TextAppearance12-USE-8 .
:Text_2_3_2_1_2_1_2_9_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_9_1_2 ;
  x3do:hasFontStyle :CenterJustifySmall12-USE-4 ;
  x3do:string '"210"' .
:CenterJustifySmall12-USE-4 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_9_1_2_1 ;
  owl:sameAs :CenterJustifySmall12 . # DEF matching this USE
:TextAppearance12-USE-8 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_9_1_2 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:Bearing240 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_10_1 ;
  x3do:DEF 'Bearing240' ;
  x3do:translation ( -10 0 -17.32 ) .
:Billboard_2_3_2_1_2_1_2_10_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing240 ;
  x3do:hasChildren :MidMarker12-USE-5, :Shape_2_3_2_1_2_1_2_10_1_2 .
:MidMarker12-USE-5 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_10_1 ;
  owl:sameAs :MidMarker12 . # DEF matching this USE
:Shape_2_3_2_1_2_1_2_10_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_10_1 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_10_1_2_1 ;
  x3do:hasAppearance :TextAppearance12-USE-9 .
:Text_2_3_2_1_2_1_2_10_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_10_1_2 ;
  x3do:hasFontStyle :CenterJustifySmall12-USE-5 ;
  x3do:string '"240"' .
:CenterJustifySmall12-USE-5 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_10_1_2_1 ;
  owl:sameAs :CenterJustifySmall12 . # DEF matching this USE
:TextAppearance12-USE-9 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_10_1_2 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:Bearing300 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_11_1 ;
  x3do:DEF 'Bearing300' ;
  x3do:translation ( 10 0 -17.32 ) .
:Billboard_2_3_2_1_2_1_2_11_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing300 ;
  x3do:hasChildren :MidMarker12-USE-6, :Shape_2_3_2_1_2_1_2_11_1_2 .
:MidMarker12-USE-6 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_11_1 ;
  owl:sameAs :MidMarker12 . # DEF matching this USE
:Shape_2_3_2_1_2_1_2_11_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_11_1 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_11_1_2_1 ;
  x3do:hasAppearance :TextAppearance12-USE-10 .
:Text_2_3_2_1_2_1_2_11_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_11_1_2 ;
  x3do:hasFontStyle :CenterJustifySmall12-USE-6 ;
  x3do:string '"300"' .
:CenterJustifySmall12-USE-6 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_11_1_2_1 ;
  owl:sameAs :CenterJustifySmall12 . # DEF matching this USE
:TextAppearance12-USE-10 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_11_1_2 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:Bearing330 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :AllMarkers12 ;
  x3do:hasChildren :Billboard_2_3_2_1_2_1_2_12_1 ;
  x3do:DEF 'Bearing330' ;
  x3do:translation ( 17.32 0 -10 ) .
:Billboard_2_3_2_1_2_1_2_12_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing330 ;
  x3do:hasChildren :MidMarker12-USE-7, :Shape_2_3_2_1_2_1_2_12_1_2 .
:MidMarker12-USE-7 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_12_1 ;
  owl:sameAs :MidMarker12 . # DEF matching this USE
:Shape_2_3_2_1_2_1_2_12_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_3_2_1_2_1_2_12_1 ;
  x3do:hasGeometry :Text_2_3_2_1_2_1_2_12_1_2_1 ;
  x3do:hasAppearance :TextAppearance12-USE-11 .
:Text_2_3_2_1_2_1_2_12_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_12_1_2 ;
  x3do:hasFontStyle :CenterJustifySmall12-USE-7 ;
  x3do:string '"330"' .
:CenterJustifySmall12-USE-7 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_3_2_1_2_1_2_12_1_2_1 ;
  owl:sameAs :CenterJustifySmall12 . # DEF matching this USE
:TextAppearance12-USE-11 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_2_12_1_2 ;
  owl:sameAs :TextAppearance12 . # DEF matching this USE
:CircleLine12 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CameraOffset12 ;
  x3do:hasChildren :Shape_2_3_2_1_2_1_3_1 ;
  x3do:DEF 'CircleLine12' ;
  x3do:scale ( 20 1 20 ) ;
  x3do:translation ( 0 1.6 0 ) .
:Shape_2_3_2_1_2_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :CircleLine12 ;
  x3do:hasGeometry :IndexedLineSet_2_3_2_1_2_1_3_1_1 ;
  x3do:hasAppearance :Appearance_2_3_2_1_2_1_3_1_2 .
:IndexedLineSet_2_3_2_1_2_1_3_1_1 a owl:NamedIndividual, x3do:IndexedLineSet ;
  x3do:hasParent :Shape_2_3_2_1_2_1_3_1 ;
  x3do:hasCoord :Coordinate_2_3_2_1_2_1_3_1_1_1 ;
  x3do: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_2_3_2_1_2_1_3_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedLineSet_2_3_2_1_2_1_3_1_1 ;
  x3do: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 ) .
:Appearance_2_3_2_1_2_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_2_1_2_1_3_1 ;
  x3do:hasMaterial :CircleMaterial12 .
:CircleMaterial12 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_3_2_1_2_1_3_1_2 ;
  x3do:hasIS :IS_2_3_2_1_2_1_3_1_2_1_1 ;
  x3do:DEF 'CircleMaterial12' ;
  x3do:diffuseColor ( 0 0 0 ) .
:IS_2_3_2_1_2_1_3_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :CircleMaterial12 ;
  x3do:hasConnect :connect_2_3_2_1_2_1_3_1_2_1_1_1 .
:connect_2_3_2_1_2_1_3_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_3_2_1_2_1_3_1_2_1_1 ;
  x3do:nodeField 'emissiveColor' ;
  x3do:protoField 'markerColor' .
:ROUTE_2_3_2_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_3_2 ;
  x3do:fromField 'position_changed' ;
  x3do:fromNode 'WhereSensor12' ;
  x3do:toField 'translation' ;
  x3do:toNode 'CameraLocation12' .
:ProtoDeclare_2_4 a owl:NamedIndividual, x3do:ProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasProtoInterface :ProtoInterface_2_4_1 ;
  x3do:hasProtoBody :ProtoBody_2_4_2 ;
  x3do: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.' ;
  x3do:name 'CameraCompass36' .
:ProtoInterface_2_4_1 a owl:NamedIndividual, x3do:ProtoInterface ;
  x3do:hasParent :ProtoDeclare_2_4 ;
  x3do:hasField :field_2_4_1_1, :field_2_4_1_2, :field_2_4_1_3, :field_2_4_1_4 .
:field_2_4_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_4_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'enabled' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_4_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_4_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'positionOffsetFromCamera' ;
  x3do:type 'SFVec3f' ;
  x3do:value ( 0 6 0 ) .
:field_2_4_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_4_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'markerColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( 0.3 0.3 0.8 ) .
:field_2_4_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_4_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'labelColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( 0.9 0.9 0.9 ) .
:ProtoBody_2_4_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_4 ;
  x3do:hasChildren :Group_2_4_2_1 ;
  x3do:hasROUTE :ROUTE_2_4_2_2 .
:Group_2_4_2_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_4_2 ;
  x3do:hasChildren :CameraCompass12Node, :WhereSensor36, :CameraLocation36 .
:CameraCompass12Node a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :Group_2_4_2_1 ;
  x3do:hasIS :IS_2_4_2_1_1_1 ;
  x3do:DEF 'CameraCompass12Node' ;
  x3do:name 'CameraCompass12' .
:IS_2_4_2_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :CameraCompass12Node ;
  x3do:hasConnect :connect_2_4_2_1_1_1_1, :connect_2_4_2_1_1_1_2, :connect_2_4_2_1_1_1_3, :connect_2_4_2_1_1_1_4 .
:connect_2_4_2_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_4_2_1_1_1 ;
  x3do:nodeField 'enabled' ;
  x3do:protoField 'enabled' .
:connect_2_4_2_1_1_1_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_4_2_1_1_1 ;
  x3do:nodeField 'positionOffsetFromCamera' ;
  x3do:protoField 'positionOffsetFromCamera' .
:connect_2_4_2_1_1_1_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_4_2_1_1_1 ;
  x3do:nodeField 'markerColor' ;
  x3do:protoField 'markerColor' .
:connect_2_4_2_1_1_1_4 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_4_2_1_1_1 ;
  x3do:nodeField 'labelColor' ;
  x3do:protoField 'labelColor' .
:WhereSensor36 a owl:NamedIndividual, x3do:ProximitySensor ;
  x3do:hasParent :Group_2_4_2_1 ;
  x3do:hasIS :IS_2_4_2_1_2_1 ;
  x3do:DEF 'WhereSensor36' ;
  x3do:size ( 1000000000 1000000000 1000000000 ) .
:IS_2_4_2_1_2_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :WhereSensor36 ;
  x3do:hasConnect :connect_2_4_2_1_2_1_1 .
:connect_2_4_2_1_2_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_4_2_1_2_1 ;
  x3do:nodeField 'enabled' ;
  x3do:protoField 'enabled' .
:CameraLocation36 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_4_2_1 ;
  x3do:hasChildren :CameraOffset36 ;
  x3do:DEF 'CameraLocation36' .
:CameraOffset36 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CameraLocation36 ;
  x3do:hasIS :IS_2_4_2_1_3_1_1 ;
  x3do:hasChildren :FirstQuadrantMarkers, :SecondQuadrantMarkers, :ThirdQuadrantMarkers, :FourthQuadrantMarkers ;
  x3do:DEF 'CameraOffset36' .
:IS_2_4_2_1_3_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :CameraOffset36 ;
  x3do:hasConnect :connect_2_4_2_1_3_1_1_1 .
:connect_2_4_2_1_3_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_4_2_1_3_1_1 ;
  x3do:nodeField 'translation' ;
  x3do:protoField 'positionOffsetFromCamera' .
:FirstQuadrantMarkers a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :CameraOffset36 ;
  x3do:hasChildren :Bearing010, :Bearing020, :Bearing040, :Bearing050, :Bearing070, :Bearing080 ;
  x3do:DEF 'FirstQuadrantMarkers' .
:Bearing010 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :FirstQuadrantMarkers ;
  x3do:hasChildren :Billboard_2_4_2_1_3_1_2_1_1 ;
  x3do:DEF 'Bearing010' ;
  x3do:translation ( 19.7 0.0 3.48 ) .
:Billboard_2_4_2_1_3_1_2_1_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing010 ;
  x3do:hasChildren :MidMarker36 .
:MidMarker36 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_4_2_1_3_1_2_1_1 ;
  x3do:hasGeometry :IndexedFaceSet_2_4_2_1_3_1_2_1_1_1_1 ;
  x3do:hasAppearance :MarkerAppearance36 ;
  x3do:DEF 'MidMarker36' .
:IndexedFaceSet_2_4_2_1_3_1_2_1_1_1_1 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :MidMarker36 ;
  x3do:hasCoord :Coordinate_2_4_2_1_3_1_2_1_1_1_1_1 ;
  x3do:coordIndex ( 0 1 2 3 -1 ) .
:Coordinate_2_4_2_1_3_1_2_1_1_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_4_2_1_3_1_2_1_1_1_1 ;
  x3do:point ( 0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0 ) .
:MarkerAppearance36 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :MidMarker36 ;
  x3do:hasMaterial :MarkerMaterial36 ;
  x3do:DEF 'MarkerAppearance36' .
:MarkerMaterial36 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :MarkerAppearance36 ;
  x3do:hasIS :IS_2_4_2_1_3_1_2_1_1_1_2_1_1 ;
  x3do:DEF 'MarkerMaterial36' ;
  x3do:diffuseColor ( 0 0 0 ) .
:IS_2_4_2_1_3_1_2_1_1_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :MarkerMaterial36 ;
  x3do:hasConnect :connect_2_4_2_1_3_1_2_1_1_1_2_1_1_1 .
:connect_2_4_2_1_3_1_2_1_1_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_4_2_1_3_1_2_1_1_1_2_1_1 ;
  x3do:nodeField 'emissiveColor' ;
  x3do:protoField 'markerColor' .
:Bearing020 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :FirstQuadrantMarkers ;
  x3do:hasChildren :Billboard_2_4_2_1_3_1_2_2_1 ;
  x3do:DEF 'Bearing020' ;
  x3do:translation ( 18.8 0.0 6.84 ) .
:Billboard_2_4_2_1_3_1_2_2_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing020 ;
  x3do:hasChildren :MidMarker36-USE-1 .
:MidMarker36-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_4_2_1_3_1_2_2_1 ;
  owl:sameAs :MidMarker36 . # DEF matching this USE
:Bearing040 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :FirstQuadrantMarkers ;
  x3do:hasChildren :Billboard_2_4_2_1_3_1_2_3_1 ;
  x3do:DEF 'Bearing040' ;
  x3do:translation ( 15.32 0.0 12.86 ) .
:Billboard_2_4_2_1_3_1_2_3_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing040 ;
  x3do:hasChildren :MidMarker36-USE-2 .
:MidMarker36-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_4_2_1_3_1_2_3_1 ;
  owl:sameAs :MidMarker36 . # DEF matching this USE
:Bearing050 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :FirstQuadrantMarkers ;
  x3do:hasChildren :Billboard_2_4_2_1_3_1_2_4_1 ;
  x3do:DEF 'Bearing050' ;
  x3do:translation ( 12.86 0.0 15.32 ) .
:Billboard_2_4_2_1_3_1_2_4_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing050 ;
  x3do:hasChildren :MidMarker36-USE-3 .
:MidMarker36-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_4_2_1_3_1_2_4_1 ;
  owl:sameAs :MidMarker36 . # DEF matching this USE
:Bearing070 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :FirstQuadrantMarkers ;
  x3do:hasChildren :Billboard_2_4_2_1_3_1_2_5_1 ;
  x3do:DEF 'Bearing070' ;
  x3do:translation ( 6.84 0.0 18.8 ) .
:Billboard_2_4_2_1_3_1_2_5_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing070 ;
  x3do:hasChildren :MidMarker36-USE-4 .
:MidMarker36-USE-4 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_4_2_1_3_1_2_5_1 ;
  owl:sameAs :MidMarker36 . # DEF matching this USE
:Bearing080 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :FirstQuadrantMarkers ;
  x3do:hasChildren :Billboard_2_4_2_1_3_1_2_6_1 ;
  x3do:DEF 'Bearing080' ;
  x3do:translation ( 3.48 0.0 19.7 ) .
:Billboard_2_4_2_1_3_1_2_6_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Bearing080 ;
  x3do:hasChildren :MidMarker36-USE-5 .
:MidMarker36-USE-5 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Billboard_2_4_2_1_3_1_2_6_1 ;
  owl:sameAs :MidMarker36 . # DEF matching this USE
:SecondQuadrantMarkers a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CameraOffset36 ;
  x3do:hasChildren :FirstQuadrantMarkers-USE-1 ;
  x3do:DEF 'SecondQuadrantMarkers' ;
  x3do:rotation ( 0 1 0 -1.57 ) .
:FirstQuadrantMarkers-USE-1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :SecondQuadrantMarkers ;
  owl:sameAs :FirstQuadrantMarkers . # DEF matching this USE
:ThirdQuadrantMarkers a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CameraOffset36 ;
  x3do:hasChildren :FirstQuadrantMarkers-USE-2 ;
  x3do:DEF 'ThirdQuadrantMarkers' ;
  x3do:rotation ( 0 1 0 3.1416 ) .
:FirstQuadrantMarkers-USE-2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ThirdQuadrantMarkers ;
  owl:sameAs :FirstQuadrantMarkers . # DEF matching this USE
:FourthQuadrantMarkers a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CameraOffset36 ;
  x3do:hasChildren :FirstQuadrantMarkers-USE-3 ;
  x3do:DEF 'FourthQuadrantMarkers' ;
  x3do:rotation ( 0 1 0 1.57 ) .
:FirstQuadrantMarkers-USE-3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :FourthQuadrantMarkers ;
  owl:sameAs :FirstQuadrantMarkers . # DEF matching this USE
:ROUTE_2_4_2_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_4_2 ;
  x3do:fromField 'position_changed' ;
  x3do:fromNode 'WhereSensor36' ;
  x3do:toField 'translation' ;
  x3do:toNode 'CameraLocation36' .
:NavigationInfo_2_5 a owl:NamedIndividual, x3do:NavigationInfo ;
  x3do:hasParent :Scene ;
  x3do:speed 10 ;
  x3do:type '"FLY" "ANY"' .
:TextMenu a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Transform_2_6_1, :Transform_2_6_2, :Transform_2_6_3, :Transform_2_6_4 ;
  x3do:DEF 'TextMenu' .
:Transform_2_6_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :TextMenu ;
  x3do:hasChildren :Shape_2_6_1_1 ;
  x3do:translation ( 0 2 0 ) .
:Shape_2_6_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_6_1 ;
  x3do:hasGeometry :Text_2_6_1_1_1 ;
  x3do:hasAppearance :Appearance_2_6_1_1_2 .
:Text_2_6_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_6_1_1 ;
  x3do:hasFontStyle :FontStyle_2_6_1_1_1_1 ;
  x3do:string '"CameraCompassPrototypes" "is a prototype definition file." "For examples click text:"' .
:FontStyle_2_6_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_6_1_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_6_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_6_1_1 ;
  x3do:hasMaterial :Material_2_6_1_1_2_1 .
:Material_2_6_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_6_1_1_2 ;
  x3do:diffuseColor ( 0.9 0.9 0.9 ) .
:Transform_2_6_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :TextMenu ;
  x3do:hasChildren :Anchor_2_6_2_1 ;
  x3do:translation ( 0 -1 0 ) .
:Anchor_2_6_2_1 a owl:NamedIndividual, x3do:Anchor ;
  x3do:hasParent :Transform_2_6_2 ;
  x3do:hasChildren :Shape_2_6_2_1_1 ;
  x3do:description 'CameraCompass8 Example' ;
  x3do:parameter '"target=_blank"' ;
  x3do: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_2_6_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Anchor_2_6_2_1 ;
  x3do:hasGeometry :Text_2_6_2_1_1_1 ;
  x3do:hasAppearance :Appearance_2_6_2_1_1_2 .
:Text_2_6_2_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_6_2_1_1 ;
  x3do:hasFontStyle :FontStyle_2_6_2_1_1_1_1 ;
  x3do:string '"CameraCompass8 Example"' .
:FontStyle_2_6_2_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_6_2_1_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_6_2_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_6_2_1_1 ;
  x3do:hasMaterial :Material_2_6_2_1_1_2_1 .
:Material_2_6_2_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_6_2_1_1_2 ;
  x3do:diffuseColor ( 0.8 0.8 0.4 ) .
:Transform_2_6_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :TextMenu ;
  x3do:hasChildren :Anchor_2_6_3_1 ;
  x3do:translation ( 0 -2 0 ) .
:Anchor_2_6_3_1 a owl:NamedIndividual, x3do:Anchor ;
  x3do:hasParent :Transform_2_6_3 ;
  x3do:hasChildren :Shape_2_6_3_1_1 ;
  x3do:description 'CameraCompass12 Example' ;
  x3do:parameter '"target=_blank"' ;
  x3do: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_2_6_3_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Anchor_2_6_3_1 ;
  x3do:hasGeometry :Text_2_6_3_1_1_1 ;
  x3do:hasAppearance :Appearance_2_6_3_1_1_2 .
:Text_2_6_3_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_6_3_1_1 ;
  x3do:hasFontStyle :FontStyle_2_6_3_1_1_1_1 ;
  x3do:string '"CameraCompass12 Example"' .
:FontStyle_2_6_3_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_6_3_1_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_6_3_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_6_3_1_1 ;
  x3do:hasMaterial :Material_2_6_3_1_1_2_1 .
:Material_2_6_3_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_6_3_1_1_2 ;
  x3do:diffuseColor ( 0.8 0.4 0.2 ) .
:Transform_2_6_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :TextMenu ;
  x3do:hasChildren :Anchor_2_6_4_1 ;
  x3do:translation ( 0 -3 0 ) .
:Anchor_2_6_4_1 a owl:NamedIndividual, x3do:Anchor ;
  x3do:hasParent :Transform_2_6_4 ;
  x3do:hasChildren :Shape_2_6_4_1_1 ;
  x3do:description 'CameraCompass36 Example' ;
  x3do:parameter '"target=_blank"' ;
  x3do: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_2_6_4_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Anchor_2_6_4_1 ;
  x3do:hasGeometry :Text_2_6_4_1_1_1 ;
  x3do:hasAppearance :Appearance_2_6_4_1_1_2 .
:Text_2_6_4_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_6_4_1_1 ;
  x3do:hasFontStyle :FontStyle_2_6_4_1_1_1_1 ;
  x3do:string '"CameraCompass36 Example"' .
:FontStyle_2_6_4_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_6_4_1_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_6_4_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_6_4_1_1 ;
  x3do:hasMaterial :Material_2_6_4_1_1_2_1 .
:Material_2_6_4_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_6_4_1_1_2 ;
  x3do:diffuseColor ( 0.9 0.2 0.2 ) .
