@prefix :        <https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/ReportedContactPrototype.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.3' ;
  x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-3.3.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_1 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'ReportedContactPrototype.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Example instance of prototype for a reported mine-like contact.' ;
  x3do:name 'description' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Don Brutzman, Jeff Weekley, Frederic Roussille and Jane Wu' ;
  x3do:name 'creator' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '15 October 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 '/ads/src/mil/navy/nps/ads/x3dArchive/DataArchiver.java' ;
  x3do:name 'reference' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '/ads/doc/mil/navy/nps/ads/x3dArchive/DataArchiver.html' ;
  x3do:name 'reference' .
:meta_1_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/ReportedContactPrototype.x3d' ;
  x3do:name 'identifier' .
:meta_1_9 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' ;
  x3do:name 'generator' .
:meta_1_10 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '../../license.html' ;
  x3do:name 'license' .
:meta dcterms:title "ReportedContactPrototype.x3d" .
:meta dcterms:description "Example instance of prototype for a reported mine-like contact." .
:meta dcterms:creator "Don Brutzman, Jeff Weekley, Frederic Roussille and Jane Wu" .
:meta dcterms:created "15 October 2001" .
:meta dcterms:modified "28 November 2019" .
:meta dcterms:reference "/ads/src/mil/navy/nps/ads/x3dArchive/DataArchiver.java" .
:meta dcterms:reference "/ads/doc/mil/navy/nps/ads/x3dArchive/DataArchiver.html" .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/ReportedContactPrototype.x3d" .
:meta dcterms:generator "X3D-Edit 3.3, 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, :Anchor_2_6 ;
  x3do:hasExternProtoDeclare :ExternProtoDeclare_2_2, :ExternProtoDeclare_2_3, :ExternProtoDeclare_2_4 ;
  x3do:hasProtoDeclare :ProtoDeclare_2_5 .
:WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:title 'ReportedContactPrototype.x3d' .
:ExternProtoDeclare_2_2 a owl:NamedIndividual, x3do:ExternProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasField :field_2_2_1, :field_2_2_2 ;
  x3do:appinfo 'PDM-1 underwater mine' ;
  x3do:name 'Pdm1BottomMine' ;
  x3do:url '"Pdm1BottomMinePrototype.x3d#Pdm1BottomMine" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/Pdm1BottomMinePrototype.x3d#Pdm1BottomMine" "Pdm1BottomMinePrototype.wrl#Pdm1BottomMine" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/Pdm1BottomMinePrototype.wrl#Pdm1BottomMine"' .
:field_2_2_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_2 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'customize to match each instance' ;
  x3do:name 'viewpointDescription' ;
  x3do:type 'SFString' .
:field_2_2_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_2 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'useful for classification' ;
  x3do:name 'mineColor' ;
  x3do:type 'SFColor' .
:ExternProtoDeclare_2_3 a owl:NamedIndividual, x3do:ExternProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasField :field_2_3_1, :field_2_3_2 ;
  x3do:appinfo 'Manta underwater mine' ;
  x3do:name 'MantaMine' ;
  x3do:url '"MantaMinePrototype.x3d#MantaMine" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/MantaMinePrototype.x3d#MantaMine" "MantaMinePrototype.wrl#MantaMine" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/MantaMinePrototype.wrl#MantaMine"' .
:field_2_3_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_3 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'useful for visual classification' ;
  x3do:name 'MineColor' ;
  x3do:type 'SFColor' .
:field_2_3_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_3 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'describe each instance' ;
  x3do:name 'viewpointDescription' ;
  x3do:type 'SFString' .
:ExternProtoDeclare_2_4 a owl:NamedIndividual, x3do:ExternProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasField :field_2_4_1, :field_2_4_2, :field_2_4_3, :field_2_4_4, :field_2_4_5, :field_2_4_6, :field_2_4_7, :field_2_4_8 ;
  x3do:appinfo 'Spherical floating mine moored to bottom' ;
  x3do:name 'SphericalMine' ;
  x3do:url '"SphericalMinePrototype.x3d#SphericalMine" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/SphericalMinePrototype.x3d#SphericalMine" "SphericalMinePrototype.wrl#SphericalMine" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/SphericalMinePrototype.wrl#SphericalMine"' .
:field_2_4_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_4 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'Description for each mine contact.' ;
  x3do:name 'description' ;
  x3do:type 'SFString' .
:field_2_4_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_4 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Mine color can be used to indicate status (found/unknown/disabled/) tactic etc.' ;
  x3do:name 'color' ;
  x3do:type 'SFColor' .
:field_2_4_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_4 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Location of mine center in local world coordinates.' ;
  x3do:name 'translation' ;
  x3do:type 'SFVec3f' .
:field_2_4_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_4 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Scale factor to change spherical mine size default diameter = 1m.' ;
  x3do:name 'scale' ;
  x3do:type 'SFVec3f' .
:field_2_4_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_4 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'Bounding box for collision detection of mine.' ;
  x3do:name 'bboxCenter' ;
  x3do:type 'SFVec3f' .
:field_2_4_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_4 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Top and bottom endpoints of line tether that anchors this mine to the bottom.' ;
  x3do:name 'tetherPoints' ;
  x3do:type 'MFVec3f' .
:field_2_4_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_4 ;
  x3do:accessType 'outputOnly' ;
  x3do:appinfo 'proximityIsActive can be used to activate information or interaction when the viewer nears the mine.' ;
  x3do:name 'proximityIsActive' ;
  x3do:type 'SFBool' .
:field_2_4_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ExternProtoDeclare_2_4 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'proximitySize provides overall box dimensions for proximity; thus (10 10 10) yields approximate radius 5 to 7 meters.' ;
  x3do:name 'proximitySize' ;
  x3do:type 'SFVec3f' .
:ProtoDeclare_2_5 a owl:NamedIndividual, x3do:ProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasProtoInterface :ProtoInterface_2_5_1 ;
  x3do:hasProtoBody :ProtoBody_2_5_2 ;
  x3do:appinfo 'Provide icon and contact information for a reported contact. Position ProtoInstances using the depth and location where found.' ;
  x3do:name 'ReportedContact' .
:ProtoInterface_2_5_1 a owl:NamedIndividual, x3do:ProtoInterface ;
  x3do:hasParent :ProtoDeclare_2_5 ;
  x3do:hasField :field_2_5_1_1, :field_2_5_1_2, :field_2_5_1_3, :field_2_5_1_4, :field_2_5_1_5, :field_2_5_1_6, :field_2_5_1_7, :field_2_5_1_8, :field_2_5_1_9, :field_2_5_1_10, :field_2_5_1_11 .
:field_2_5_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'name' ;
  x3do:type 'MFString' .
:field_2_5_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'aboveViewpointLabel' ;
  x3do:type 'SFString' ;
  x3do:value 'Reported Contact (100m above)' .
:field_2_5_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'closeViewpointLabel' ;
  x3do:type 'SFString' ;
  x3do:value 'Reported Contact (10m closeup)' .
:field_2_5_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'description' ;
  x3do:type 'MFString' .
:field_2_5_1_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Latitude and longitude (or local coordinates) for display purposes.' ;
  x3do:name 'reportedPosition' ;
  x3do:type 'MFString' .
:field_2_5_1_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'classificationCode' ;
  x3do:type 'SFInt32' ;
  x3do:value -1 .
:field_2_5_1_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'provide filename and url of contact image as separate quoted strings' ;
  x3do:name 'imageUrl' ;
  x3do:type 'MFString' .
:field_2_5_1_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Aspect-ratio x-y scale of image icon (keep z=1)' ;
  x3do:name 'imageScale' ;
  x3do:type 'SFVec3f' ;
  x3do:value ( 1.00 1.00 1 ) .
:field_2_5_1_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Relative position of image icon' ;
  x3do:name 'imageOffset' ;
  x3do:type 'SFVec3f' ;
  x3do:value ( 0 2.5 0 ) .
:field_2_5_1_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'textColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( 0.4 0.4 0 ) .
:field_2_5_1_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Relative position of image icon' ;
  x3do:name 'textOffset' ;
  x3do:type 'SFVec3f' ;
  x3do:value ( 0 0 0 ) .
:ProtoBody_2_5_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_5 ;
  x3do:hasChildren :Group_2_5_2_1 .
:Group_2_5_2_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:hasChildren :SeenFromAboveViewpoint, :ContactCloseupViewpoint, :LOD_2_5_2_1_3 .
:SeenFromAboveViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Group_2_5_2_1 ;
  x3do:hasIS :IS_2_5_2_1_1_1 ;
  x3do:DEF 'SeenFromAboveViewpoint' ;
  x3do:description '100m above contact (overridden by field viewpointLabel)' ;
  x3do:orientation ( 1 0 0 -1.57 ) ;
  x3do:position ( 0 100 0 ) .
:IS_2_5_2_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :SeenFromAboveViewpoint ;
  x3do:hasConnect :connect_2_5_2_1_1_1_1 .
:connect_2_5_2_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1_1 ;
  x3do:nodeField 'description' ;
  x3do:protoField 'aboveViewpointLabel' .
:ContactCloseupViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Group_2_5_2_1 ;
  x3do:hasIS :IS_2_5_2_1_2_1 ;
  x3do:DEF 'ContactCloseupViewpoint' ;
  x3do:description '10m next to contact (overridden by closeViewpointLabel)' .
:IS_2_5_2_1_2_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :ContactCloseupViewpoint ;
  x3do:hasConnect :connect_2_5_2_1_2_1_1 .
:connect_2_5_2_1_2_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_2_1 ;
  x3do:nodeField 'description' ;
  x3do:protoField 'closeViewpointLabel' .
:LOD_2_5_2_1_3 a owl:NamedIndividual, x3do:LOD ;
  x3do:hasParent :Group_2_5_2_1 ;
  x3do:hasChildren :Group_2_5_2_1_3_1, :ImageOffset-USE-1, :WorldInfo_2_5_2_1_3_3 ;
  x3do:range ( 150 10000 ) .
:Group_2_5_2_1_3_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :LOD_2_5_2_1_3 ;
  x3do:hasChildren :TextOffset, :ImageOffset, :Transform_2_5_2_1_3_1_3 .
:TextOffset a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_5_2_1_3_1 ;
  x3do:hasIS :IS_2_5_2_1_3_1_1_1 ;
  x3do:hasChildren :Billboard_2_5_2_1_3_1_1_2 ;
  x3do:DEF 'TextOffset' .
:IS_2_5_2_1_3_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :TextOffset ;
  x3do:hasConnect :connect_2_5_2_1_3_1_1_1_1 .
:connect_2_5_2_1_3_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_1_1 ;
  x3do:nodeField 'translation' ;
  x3do:protoField 'textOffset' .
:Billboard_2_5_2_1_3_1_1_2 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :TextOffset ;
  x3do:hasChildren :Transform_2_5_2_1_3_1_1_2_1, :Transform_2_5_2_1_3_1_1_2_2 .
:Transform_2_5_2_1_3_1_1_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_5_2_1_3_1_1_2 ;
  x3do:hasChildren :Shape_2_5_2_1_3_1_1_2_1_1 ;
  x3do:translation ( 0 -0.25 0 ) .
:Shape_2_5_2_1_3_1_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_5_2_1_3_1_1_2_1 ;
  x3do:hasGeometry :PositionText ;
  x3do:hasAppearance :IconAppearance .
:PositionText a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_5_2_1_3_1_1_2_1_1 ;
  x3do:hasIS :IS_2_5_2_1_3_1_1_2_1_1_1_1 ;
  x3do:hasFontStyle :SmallFont ;
  x3do:DEF 'PositionText' .
:IS_2_5_2_1_3_1_1_2_1_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :PositionText ;
  x3do:hasConnect :connect_2_5_2_1_3_1_1_2_1_1_1_1_1 .
:connect_2_5_2_1_3_1_1_2_1_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_1_2_1_1_1_1 ;
  x3do:nodeField 'string' ;
  x3do:protoField 'reportedPosition' .
:SmallFont a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :PositionText ;
  x3do:DEF 'SmallFont' ;
  x3do:justify '"MIDDLE" "MIDDLE"' ;
  x3do:size 0.75 .
:IconAppearance a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_5_2_1_3_1_1_2_1_1 ;
  x3do:hasMaterial :IconMaterial ;
  x3do:DEF 'IconAppearance' .
:IconMaterial a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :IconAppearance ;
  x3do:hasIS :IS_2_5_2_1_3_1_1_2_1_1_2_1_1 ;
  x3do:DEF 'IconMaterial' .
:IS_2_5_2_1_3_1_1_2_1_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :IconMaterial ;
  x3do:hasConnect :connect_2_5_2_1_3_1_1_2_1_1_2_1_1_1 .
:connect_2_5_2_1_3_1_1_2_1_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_1_2_1_1_2_1_1 ;
  x3do:nodeField 'diffuseColor' ;
  x3do:protoField 'textColor' .
:Transform_2_5_2_1_3_1_1_2_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_5_2_1_3_1_1_2 ;
  x3do:hasChildren :Shape_2_5_2_1_3_1_1_2_2_1 ;
  x3do:translation ( 0 -1.5 0 ) .
:Shape_2_5_2_1_3_1_1_2_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_5_2_1_3_1_1_2_2 ;
  x3do:hasGeometry :DescriptionText ;
  x3do:hasAppearance :IconAppearance-USE-1 .
:DescriptionText a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_5_2_1_3_1_1_2_2_1 ;
  x3do:hasIS :IS_2_5_2_1_3_1_1_2_2_1_1_1 ;
  x3do:hasFontStyle :SmallerFont ;
  x3do:DEF 'DescriptionText' .
:IS_2_5_2_1_3_1_1_2_2_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :DescriptionText ;
  x3do:hasConnect :connect_2_5_2_1_3_1_1_2_2_1_1_1_1 .
:connect_2_5_2_1_3_1_1_2_2_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_1_2_2_1_1_1 ;
  x3do:nodeField 'string' ;
  x3do:protoField 'description' .
:SmallerFont a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :DescriptionText ;
  x3do:DEF 'SmallerFont' ;
  x3do:justify '"MIDDLE" "MIDDLE"' ;
  x3do:size 0.6 .
:IconAppearance-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_5_2_1_3_1_1_2_2_1 ;
  owl:sameAs :IconAppearance . # DEF matching this USE
:ImageOffset a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_5_2_1_3_1 ;
  x3do:hasIS :IS_2_5_2_1_3_1_2_1 ;
  x3do:hasChildren :Billboard_2_5_2_1_3_1_2_2 ;
  x3do:DEF 'ImageOffset' .
:IS_2_5_2_1_3_1_2_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :ImageOffset ;
  x3do:hasConnect :connect_2_5_2_1_3_1_2_1_1 .
:connect_2_5_2_1_3_1_2_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_2_1 ;
  x3do:nodeField 'translation' ;
  x3do:protoField 'imageOffset' .
:Billboard_2_5_2_1_3_1_2_2 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :ImageOffset ;
  x3do:hasChildren :BillBoardAnchor, :ViewpointAnchor, :Group_2_5_2_1_3_1_2_2_3, :BindViewpointFilter ;
  x3do:hasROUTE :ROUTE_2_5_2_1_3_1_2_2_5, :ROUTE_2_5_2_1_3_1_2_2_6 ;
  x3do:axisOfRotation ( 0 0 0 ) .
:BillBoardAnchor a owl:NamedIndividual, x3do:Anchor ;
  x3do:hasParent :Billboard_2_5_2_1_3_1_2_2 ;
  x3do:hasIS :IS_2_5_2_1_3_1_2_2_1_1 ;
  x3do:hasChildren :ImageFit ;
  x3do:DEF 'BillBoardAnchor' ;
  x3do:description 'click image to popup image viewer' ;
  x3do:parameter '"target=_blank"' .
:IS_2_5_2_1_3_1_2_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :BillBoardAnchor ;
  x3do:hasConnect :connect_2_5_2_1_3_1_2_2_1_1_1 .
:connect_2_5_2_1_3_1_2_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_2_2_1_1 ;
  x3do:nodeField 'url' ;
  x3do:protoField 'imageUrl' .
:ImageFit a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :BillBoardAnchor ;
  x3do:hasIS :IS_2_5_2_1_3_1_2_2_1_2_1 ;
  x3do:hasChildren :Shape_2_5_2_1_3_1_2_2_1_2_2 ;
  x3do:DEF 'ImageFit' .
:IS_2_5_2_1_3_1_2_2_1_2_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :ImageFit ;
  x3do:hasConnect :connect_2_5_2_1_3_1_2_2_1_2_1_1 .
:connect_2_5_2_1_3_1_2_2_1_2_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_2_2_1_2_1 ;
  x3do:nodeField 'scale' ;
  x3do:protoField 'imageScale' .
:Shape_2_5_2_1_3_1_2_2_1_2_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ImageFit ;
  x3do:hasAppearance :Appearance_2_5_2_1_3_1_2_2_1_2_2_1 ;
  x3do:hasGeometry :IndexedFaceSet_2_5_2_1_3_1_2_2_1_2_2_2 .
:Appearance_2_5_2_1_3_1_2_2_1_2_2_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_5_2_1_3_1_2_2_1_2_2 ;
  x3do:hasMaterial :IconMaterial-USE-1 ;
  x3do:hasTexture :ContactImage .
:IconMaterial-USE-1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_5_2_1_3_1_2_2_1_2_2_1 ;
  owl:sameAs :IconMaterial . # DEF matching this USE
:ContactImage a owl:NamedIndividual, x3do:ImageTexture ;
  x3do:hasParent :Appearance_2_5_2_1_3_1_2_2_1_2_2_1 ;
  x3do:hasIS :IS_2_5_2_1_3_1_2_2_1_2_2_1_2_1 ;
  x3do:DEF 'ContactImage' .
:IS_2_5_2_1_3_1_2_2_1_2_2_1_2_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :ContactImage ;
  x3do:hasConnect :connect_2_5_2_1_3_1_2_2_1_2_2_1_2_1_1 .
:connect_2_5_2_1_3_1_2_2_1_2_2_1_2_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_2_2_1_2_2_1_2_1 ;
  x3do:nodeField 'url' ;
  x3do:protoField 'imageUrl' .
:IndexedFaceSet_2_5_2_1_3_1_2_2_1_2_2_2 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :Shape_2_5_2_1_3_1_2_2_1_2_2 ;
  x3do:hasCoord :TwoByTwoSquare ;
  x3do:coordIndex ( 0 1 2 3 0 -1 ) .
:TwoByTwoSquare a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_5_2_1_3_1_2_2_1_2_2_2 ;
  x3do:DEF 'TwoByTwoSquare' ;
  x3do:point ( -1 -1 0 1 -1 0 1 1 0 -1 1 0 ) .
:ViewpointAnchor a owl:NamedIndividual, x3do:Anchor ;
  x3do:hasParent :Billboard_2_5_2_1_3_1_2_2 ;
  x3do:DEF 'ViewpointAnchor' ;
  x3do:description 'click text for Contact Closeup Viewpoint' ;
  x3do:url '"#ContactCloseupViewpoint"' .
:Group_2_5_2_1_3_1_2_2_3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Billboard_2_5_2_1_3_1_2_2 ;
  x3do:hasChildren :Transform_2_5_2_1_3_1_2_2_3_1, :CloseUpTouchSensor .
:Transform_2_5_2_1_3_1_2_2_3_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_5_2_1_3_1_2_2_3 ;
  x3do:hasChildren :Shape_2_5_2_1_3_1_2_2_3_1_1 ;
  x3do:translation ( 0 -2 0 ) .
:Shape_2_5_2_1_3_1_2_2_3_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_5_2_1_3_1_2_2_3_1 ;
  x3do:hasGeometry :NameText ;
  x3do:hasAppearance :IconAppearance-USE-2 .
:NameText a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_5_2_1_3_1_2_2_3_1_1 ;
  x3do:hasIS :IS_2_5_2_1_3_1_2_2_3_1_1_1_1 ;
  x3do:hasFontStyle :LargeFont ;
  x3do:DEF 'NameText' .
:IS_2_5_2_1_3_1_2_2_3_1_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :NameText ;
  x3do:hasConnect :connect_2_5_2_1_3_1_2_2_3_1_1_1_1_1 .
:connect_2_5_2_1_3_1_2_2_3_1_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_2_2_3_1_1_1_1 ;
  x3do:nodeField 'string' ;
  x3do:protoField 'name' .
:LargeFont a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :NameText ;
  x3do:DEF 'LargeFont' ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:IconAppearance-USE-2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_5_2_1_3_1_2_2_3_1_1 ;
  owl:sameAs :IconAppearance . # DEF matching this USE
:CloseUpTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Group_2_5_2_1_3_1_2_2_3 ;
  x3do:DEF 'CloseUpTouchSensor' ;
  x3do:description 'bind closeup Viewpoint' .
:BindViewpointFilter a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :Billboard_2_5_2_1_3_1_2_2 ;
  x3do:hasField :field_2_5_2_1_3_1_2_2_4_1, :field_2_5_2_1_3_1_2_2_4_2 ;
  x3do:DEF 'BindViewpointFilter' ;
  x3do:sourceCode """
ecmascript:

// only activate viewpoint when touched is true, do not unbind when false
function touched (value, timestamp)
{
	if (value == true) activate = true;
}
""" .
:field_2_5_2_1_3_1_2_2_4_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :BindViewpointFilter ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'touched' ;
  x3do:type 'SFBool' .
:field_2_5_2_1_3_1_2_2_4_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :BindViewpointFilter ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'activate' ;
  x3do:type 'SFBool' .
:ROUTE_2_5_2_1_3_1_2_2_5 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Billboard_2_5_2_1_3_1_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'CloseUpTouchSensor' ;
  x3do:toField 'touched' ;
  x3do:toNode 'BindViewpointFilter' .
:ROUTE_2_5_2_1_3_1_2_2_6 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Billboard_2_5_2_1_3_1_2_2 ;
  x3do:fromField 'activate' ;
  x3do:fromNode 'BindViewpointFilter' ;
  x3do:toField 'set_bind' ;
  x3do:toNode 'ContactCloseupViewpoint' .
:Transform_2_5_2_1_3_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_5_2_1_3_1 ;
  x3do:hasChildren :MineModelSwitch ;
  x3do:translation ( 0 -3 0 ) .
:MineModelSwitch a owl:NamedIndividual, x3do:Switch ;
  x3do:hasParent :Transform_2_5_2_1_3_1_3 ;
  x3do:hasIS :IS_2_5_2_1_3_1_3_1_1 ;
  x3do:hasChildren :UnknownContact, :ProtoInstance_2_5_2_1_3_1_3_1_3, :ProtoInstance_2_5_2_1_3_1_3_1_4, :RockanContact, :ProtoInstance_2_5_2_1_3_1_3_1_6, :SonarDeflectorDecoyBox ;
  x3do:DEF 'MineModelSwitch' ;
  x3do:whichChoice -1 .
:IS_2_5_2_1_3_1_3_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :MineModelSwitch ;
  x3do:hasConnect :connect_2_5_2_1_3_1_3_1_1_1 .
:connect_2_5_2_1_3_1_3_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_3_1_3_1_1 ;
  x3do:nodeField 'whichChoice' ;
  x3do:protoField 'classificationCode' .
:UnknownContact a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :MineModelSwitch ;
  x3do:hasAppearance :Appearance_2_5_2_1_3_1_3_1_2_1 ;
  x3do:hasGeometry :Box_2_5_2_1_3_1_3_1_2_2 ;
  x3do:DEF 'UnknownContact' .
:Appearance_2_5_2_1_3_1_3_1_2_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :UnknownContact ;
  x3do:hasMaterial :Material_2_5_2_1_3_1_3_1_2_1_1 .
:Material_2_5_2_1_3_1_3_1_2_1_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_5_2_1_3_1_3_1_2_1 ;
  x3do:diffuseColor ( 0.3 0.8 0 ) .
:Box_2_5_2_1_3_1_3_1_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :UnknownContact ;
  x3do:size ( 1 1 1 ) .
:ProtoInstance_2_5_2_1_3_1_3_1_3 a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :MineModelSwitch ;
  x3do:name 'Pdm1BottomMine' .
:ProtoInstance_2_5_2_1_3_1_3_1_4 a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :MineModelSwitch ;
  x3do:hasFieldValue :fieldValue_2_5_2_1_3_1_3_1_4_1 ;
  x3do:name 'MantaMine' .
:fieldValue_2_5_2_1_3_1_3_1_4_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :ProtoInstance_2_5_2_1_3_1_3_1_4 ;
  x3do:name 'viewpointDescription' ;
  x3do:value 'Manta mine 10m' .
:RockanContact a owl:NamedIndividual, x3do:Inline ;
  x3do:hasParent :MineModelSwitch ;
  x3do:DEF 'RockanContact' ;
  x3do:url '"Rockan.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/Rockan.x3d" "Rockan.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/Rockan.wrl"' .
:ProtoInstance_2_5_2_1_3_1_3_1_6 a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :MineModelSwitch ;
  x3do:hasFieldValue :fieldValue_2_5_2_1_3_1_3_1_6_1, :fieldValue_2_5_2_1_3_1_3_1_6_2 ;
  x3do:name 'SphericalMine' .
:fieldValue_2_5_2_1_3_1_3_1_6_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :ProtoInstance_2_5_2_1_3_1_3_1_6 ;
  x3do:name 'description' ;
  x3do:value 'Spherical Mine' .
:fieldValue_2_5_2_1_3_1_3_1_6_2 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :ProtoInstance_2_5_2_1_3_1_3_1_6 ;
  x3do:name 'tetherPoints' ;
  x3do:value ( 0 0 0 0 -5 0 ) .
:SonarDeflectorDecoyBox a owl:NamedIndividual, x3do:Inline ;
  x3do:hasParent :MineModelSwitch ;
  x3do:DEF 'SonarDeflectorDecoyBox' ;
  x3do:url '"SonarReflectorDecoyBox.x3d" "../../Weapons/UnderwaterMines/SonarReflectorDecoyBox.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/SonarReflectorDecoyBox.x3d" "../../Weapons/UnderwaterMines/SonarReflectorDecoyBox.wrl" "SonarReflectorDecoyBox.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/SonarReflectorDecoyBox.wrl"' .
:ImageOffset-USE-1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :LOD_2_5_2_1_3 ;
  owl:sameAs :ImageOffset . # DEF matching this USE
:WorldInfo_2_5_2_1_3_3 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :LOD_2_5_2_1_3 ;
  x3do:info '"null node"' .
:Anchor_2_6 a owl:NamedIndividual, x3do:Anchor ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Shape_2_6_1 ;
  x3do:description 'ReportedContactExample' ;
  x3do:parameter '"target=_blank"' ;
  x3do:url '"ReportedContactExample.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/ReportedContactExample.x3d" "ReportedContactExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/UnderwaterMines/ReportedContactExample.wrl"' .
:Shape_2_6_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Anchor_2_6 ;
  x3do:hasGeometry :Text_2_6_1_1 ;
  x3do:hasAppearance :Appearance_2_6_1_2 .
:Text_2_6_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_6_1 ;
  x3do:hasFontStyle :FontStyle_2_6_1_1_1 ;
  x3do:string '"ReportedContactPrototype" "is a prototype definition file" "" "Click this text to see" "ReportedContactExample"' .
:FontStyle_2_6_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_6_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_6_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_6_1 ;
  x3do:hasMaterial :Material_2_6_1_2_1 .
:Material_2_6_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_6_1_2 ;
  x3do:diffuseColor ( 0.6 0.8 0.4 ) .
