@prefix : . @prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix schema: . @prefix dcterms: . @prefix xsd: . @prefix x3d: . @prefix x3do: . :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_1 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'CrossHairExample.x3d' ; x3do:name 'title' . :meta_1_2 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'Example use of a heads-up display (HUD) crosshair showing center of screen, useful for assessing lookAt point.' ; 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 '1 February 2003' ; 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 'https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairExample.x3d' ; x3do:name 'identifier' . :meta_1_7 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'crosshair display' ; x3do:name 'subject' . :meta_1_8 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit' ; x3do:name 'generator' . :meta_1_9 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content '../../license.html' ; x3do:name 'license' . :meta dcterms:title "CrossHairExample.x3d" . :meta dcterms:description "Example use of a heads-up display (HUD) crosshair showing center of screen, useful for assessing lookAt point." . :meta dcterms:creator "Don Brutzman" . :meta dcterms:created "1 February 2003" . :meta dcterms:modified "28 November 2019" . :meta dcterms:identifier "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairExample.x3d" . :meta dcterms:subject "crosshair display" . :meta dcterms:generator "X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit" . :meta dcterms:license "../../license.html" . :Scene a owl:NamedIndividual, x3do:Scene ; x3do:hasParent :X3D ; x3do:hasChildren :WorldInfo_2_1, :CrossHairInstance, :Viewpoint_2_4, :Viewpoint_2_5, :NavigationInfo_2_6, :Background_2_7, :Shape_2_8, :TouchBox, :TouchToggle, :Group_2_13 ; x3do:hasExternProtoDeclare :ExternProtoDeclare_2_2 ; x3do:hasROUTE :ROUTE_2_11, :ROUTE_2_12 . :WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ; x3do:hasParent :Scene ; x3do:title 'CrossHairExample.x3d' . :ExternProtoDeclare_2_2 a owl:NamedIndividual, x3do:ExternProtoDeclare ; x3do:hasParent :Scene ; x3do:hasField :field_2_2_1, :field_2_2_2, :field_2_2_3, :field_2_2_4, :field_2_2_5 ; x3do:appinfo 'CrossHair prototype provides a heads-up display (HUD) crosshair at the view center, which is useful for assessing NavigationInfo lookAt point' ; x3do:name 'CrossHair' ; x3do:url '"../../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "../../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair"' . :field_2_2_1 a owl:NamedIndividual, x3do:field ; x3do:hasParent :ExternProtoDeclare_2_2 ; x3do:accessType 'initializeOnly' ; x3do:appinfo 'whether CrossHair prototype is enabled or not' ; x3do:name 'enabled' ; x3do:type 'SFBool' . :field_2_2_2 a owl:NamedIndividual, x3do:field ; x3do:hasParent :ExternProtoDeclare_2_2 ; x3do:accessType 'inputOnly' ; x3do:appinfo 'control whether enabled/disabled' ; x3do:name 'set_enabled' ; x3do:type 'SFBool' . :field_2_2_3 a owl:NamedIndividual, x3do:field ; x3do:hasParent :ExternProtoDeclare_2_2 ; x3do:accessType 'inputOutput' ; x3do:appinfo 'color of CrossHair marker' ; x3do:name 'markerColor' ; x3do:type 'SFColor' . :field_2_2_4 a owl:NamedIndividual, x3do:field ; x3do:hasParent :ExternProtoDeclare_2_2 ; x3do:accessType 'inputOutput' ; x3do:appinfo 'size of CrossHair in meters' ; x3do:name 'scale' ; x3do:type 'SFVec3f' . :field_2_2_5 a owl:NamedIndividual, x3do:field ; x3do:hasParent :ExternProtoDeclare_2_2 ; x3do:accessType 'inputOutput' ; x3do:appinfo 'distance in front of HUD viewpoint' ; x3do:name 'positionOffsetFromCamera' ; x3do:type 'SFVec3f' . :CrossHairInstance a owl:NamedIndividual, x3do:ProtoInstance ; x3do:hasParent :Scene ; x3do:hasFieldValue :fieldValue_2_3_1, :fieldValue_2_3_2, :fieldValue_2_3_3, :fieldValue_2_3_4 ; x3do:DEF 'CrossHairInstance' ; x3do:name 'CrossHair' . :fieldValue_2_3_1 a owl:NamedIndividual, x3do:fieldValue ; x3do:hasParent :CrossHairInstance ; x3do:name 'enabled' ; x3do:value true . :fieldValue_2_3_2 a owl:NamedIndividual, x3do:fieldValue ; x3do:hasParent :CrossHairInstance ; x3do:name 'markerColor' ; x3do:value ( 1 0.5 0 ) . :fieldValue_2_3_3 a owl:NamedIndividual, x3do:fieldValue ; x3do:hasParent :CrossHairInstance ; x3do:name 'scale' ; x3do:value ( 1 1 1 ) . :fieldValue_2_3_4 a owl:NamedIndividual, x3do:fieldValue ; x3do:hasParent :CrossHairInstance ; x3do:name 'positionOffsetFromCamera' ; x3do:value ( 0 0 -6 ) . :Viewpoint_2_4 a owl:NamedIndividual, x3do:Viewpoint ; x3do:hasParent :Scene ; x3do:description 'walk and rotate to test heads-up display (HUD)' . :Viewpoint_2_5 a owl:NamedIndividual, x3do:Viewpoint ; x3do:hasParent :Scene ; x3do:description 'outside proximity box turns crosshair off' ; x3do:position ( 0 0 20 ) . :NavigationInfo_2_6 a owl:NamedIndividual, x3do:NavigationInfo ; x3do:hasParent :Scene ; x3do:speed 10 ; x3do:type '"FLY" "ANY"' . :Background_2_7 a owl:NamedIndividual, x3do:Background ; x3do:hasParent :Scene ; x3do:skyColor ( 0.7 0.7 0.9 ) . :Shape_2_8 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Scene ; x3do:hasGeometry :Text_2_8_1 ; x3do:hasAppearance :Appearance_2_8_2 . :Text_2_8_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_8 ; x3do:hasFontStyle :FontStyle_2_8_1_1 ; x3do:string '"Click text, zoom out/in," "or switch viewpoints to" "toggle CrossHair HUD"' . :FontStyle_2_8_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_8_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_8_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_8 ; x3do:hasMaterial :Material_2_8_2_1 . :Material_2_8_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_8_2 ; x3do:diffuseColor ( 0.4 0.4 0.13 ) . :TouchBox a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Scene ; x3do:DEF 'TouchBox' ; x3do:description 'touch to toggle CrossHair' . :TouchToggle a owl:NamedIndividual, x3do:BooleanToggle ; x3do:hasParent :Scene ; x3do:DEF 'TouchToggle' . :ROUTE_2_11 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchBox' ; x3do:toField 'set_boolean' ; x3do:toNode 'TouchToggle' . :ROUTE_2_12 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'toggle_changed' ; x3do:fromNode 'TouchToggle' ; x3do:toField 'set_enabled' ; x3do:toNode 'CrossHairInstance' . :Group_2_13 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :Scene ; x3do:hasChildren :ProximityBox, :EnterProximityBox, :ExitProximityBox, :ExitFilter ; x3do:hasROUTE :ROUTE_2_13_3, :ROUTE_2_13_4, :ROUTE_2_13_7, :ROUTE_2_13_8, :ROUTE_2_13_9 . :ProximityBox a owl:NamedIndividual, x3do:ProximitySensor ; x3do:hasParent :Group_2_13 ; x3do:DEF 'ProximityBox' ; x3do:size ( 21 21 21 ) . :EnterProximityBox a owl:NamedIndividual, x3do:BooleanTrigger ; x3do:hasParent :Group_2_13 ; x3do:DEF 'EnterProximityBox' . :ROUTE_2_13_3 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Group_2_13 ; x3do:fromField 'enterTime' ; x3do:fromNode 'ProximityBox' ; x3do:toField 'set_triggerTime' ; x3do:toNode 'EnterProximityBox' . :ROUTE_2_13_4 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Group_2_13 ; x3do:fromField 'triggerTrue' ; x3do:fromNode 'EnterProximityBox' ; x3do:toField 'set_enabled' ; x3do:toNode 'CrossHairInstance' . :ExitProximityBox a owl:NamedIndividual, x3do:BooleanTrigger ; x3do:hasParent :Group_2_13 ; x3do:DEF 'ExitProximityBox' . :ExitFilter a owl:NamedIndividual, x3do:BooleanFilter ; x3do:hasParent :Group_2_13 ; x3do:DEF 'ExitFilter' . :ROUTE_2_13_7 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Group_2_13 ; x3do:fromField 'exitTime' ; x3do:fromNode 'ProximityBox' ; x3do:toField 'set_triggerTime' ; x3do:toNode 'ExitProximityBox' . :ROUTE_2_13_8 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Group_2_13 ; x3do:fromField 'triggerTrue' ; x3do:fromNode 'ExitProximityBox' ; x3do:toField 'set_boolean' ; x3do:toNode 'ExitFilter' . :ROUTE_2_13_9 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Group_2_13 ; x3do:fromField 'inputNegate' ; x3do:fromNode 'ExitFilter' ; x3do:toField 'set_enabled' ; x3do:toNode 'CrossHairInstance' .