@prefix :        <https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamHemispherePrototype.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_1 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'BeamHemispherePrototype.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Don Brutzman' ;
  x3do:name 'creator' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '29 January 2003' ;
  x3do:name 'created' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '20 October 2019' ;
  x3do:name 'modified' .
:meta_1_5 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Produce wireframe or transparent beam hemispheres.' ;
  x3do:name 'description' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamHemispherePrototype.x3d' ;
  x3do:name 'identifier' .
:meta_1_7 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_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '../../license.html' ;
  x3do:name 'license' .
:meta dcterms:title "BeamHemispherePrototype.x3d" .
:meta dcterms:creator "Don Brutzman" .
:meta dcterms:created "29 January 2003" .
:meta dcterms:modified "20 October 2019" .
:meta dcterms:description "Produce wireframe or transparent beam hemispheres." .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamHemispherePrototype.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 :LockedDownInterface2D, :Background_2_2, :WorldInfo_2_3, :Viewpoint_2_4, :Anchor_2_6 ;
  x3do:hasProtoDeclare :ProtoDeclare_2_5 .
:LockedDownInterface2D a owl:NamedIndividual, x3do:NavigationInfo ;
  x3do:hasParent :Scene ;
  x3do:DEF 'LockedDownInterface2D' ;
  x3do:type '"NONE"' .
:Background_2_2 a owl:NamedIndividual, x3do:Background ;
  x3do:hasParent :Scene ;
  x3do:skyColor ( 0 0.3 0.5 ) .
:WorldInfo_2_3 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:info '"Produce wireframe or transparent beam hemispheres."' ;
  x3do:title 'BeamHemisphereProto' .
:Viewpoint_2_4 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:description 'Beam Hemisphere' .
: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 'Produce wireframe or transparent beam hemisphere. Typical uses include sonar/radar/light beams. Negative range values invert base and apex at same relative location. Default: hemisphere with centroid at (0 0 0) and radius 1 atop x-z plane.' ;
  x3do:name 'BeamHemisphere' .
: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_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'Assigning a name to a BeamHemisphere aids tracing' ;
  x3do:name 'name' ;
  x3do:type 'SFString' ;
  x3do:value '(unnamed)' .
:field_2_5_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo '(communications) is transmitted signal in contact with receiver or (sensor) is a target return detected?' ;
  x3do:name 'contact' ;
  x3do:type 'SFBool' .
:field_2_5_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'distance in meters along x axis' ;
  x3do:name 'range' ;
  x3do:type 'SFFloat' .
:field_2_5_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'distance in meters used until eventIn range sent' ;
  x3do:name 'defaultRange' ;
  x3do:type 'SFFloat' ;
  x3do:value 1 .
:field_2_5_1_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'whether wireframe beam is drawn' ;
  x3do:name 'wireframe' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_5_1_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'whether solid beam is drawn' ;
  x3do:name 'solid' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_5_1_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'rendering color when contact=true' ;
  x3do:name 'contactColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( .8 .1 .1 ) .
:field_2_5_1_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'rendering color when contact=false' ;
  x3do:name 'noContactColor' ;
  x3do:type 'SFColor' ;
  x3do:value ( .3 .5 .5 ) .
:field_2_5_1_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo '1 = fully transparent wireframe only' ;
  x3do:name 'transparency' ;
  x3do:type 'SFFloat' ;
  x3do:value 0 .
:ProtoBody_2_5_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_5 ;
  x3do:hasChildren :Group_2_5_2_1, :DETECTION, :BEAM_CALCULATE ;
  x3do:hasROUTE :ROUTE_2_5_2_3, :ROUTE_2_5_2_4, :ROUTE_2_5_2_5, :ROUTE_2_5_2_6, :ROUTE_2_5_2_7, :ROUTE_2_5_2_8, :ROUTE_2_5_2_10, :ROUTE_2_5_2_11 .
:Group_2_5_2_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:hasChildren :BEAM_CONTROL .
:BEAM_CONTROL a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_5_2_1 ;
  x3do:hasChildren :WIREFRAME_SWITCH, :SOLID_SWITCH, :CAP_SWITCH ;
  x3do:DEF 'BEAM_CONTROL' .
:WIREFRAME_SWITCH a owl:NamedIndividual, x3do:Switch ;
  x3do:hasParent :BEAM_CONTROL ;
  x3do:hasChildren :WorldInfo_2_5_2_1_1_1_1, :Shape_2_5_2_1_1_1_2 ;
  x3do:DEF 'WIREFRAME_SWITCH' ;
  x3do:whichChoice 0 .
:WorldInfo_2_5_2_1_1_1_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :WIREFRAME_SWITCH ;
  x3do:info '"initial choice is null node (WorldInfo), meaning no wireframe beam"' .
:Shape_2_5_2_1_1_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :WIREFRAME_SWITCH ;
  x3do:hasAppearance :Appearance_2_5_2_1_1_1_2_1 ;
  x3do:hasGeometry :IndexedLineSet_2_5_2_1_1_1_2_2 .
:Appearance_2_5_2_1_1_1_2_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_5_2_1_1_1_2 ;
  x3do:hasMaterial :WIRE_COLOR .
:WIRE_COLOR a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_5_2_1_1_1_2_1 ;
  x3do:hasIS :IS_2_5_2_1_1_1_2_1_1_1 ;
  x3do:DEF 'WIRE_COLOR' ;
  x3do:diffuseColor ( .1 .1 .1 ) ;
  x3do:emissiveColor ( .1 .1 .1 ) .
:IS_2_5_2_1_1_1_2_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :WIRE_COLOR ;
  x3do:hasConnect :connect_2_5_2_1_1_1_2_1_1_1_1 .
:connect_2_5_2_1_1_1_2_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1_1_2_1_1_1 ;
  x3do:nodeField 'transparency' ;
  x3do:protoField 'transparency' .
:IndexedLineSet_2_5_2_1_1_1_2_2 a owl:NamedIndividual, x3do:IndexedLineSet ;
  x3do:hasParent :Shape_2_5_2_1_1_1_2 ;
  x3do:hasCoord :Coordinate_2_5_2_1_1_1_2_2_1 ;
  x3do:coordIndex ( 0 1 2 -1 1 3 4 -1 2 4 5 -1 3 6 7 -1 4 7 8 -1 5 8 9 -1 6 10 11 -1 7 11 12 -1 8 12 13 -1 9 13 14 -1 10 15 16 -1 11 16 17 -1 12 17 18 -1 13 18 19 -1 14 19 20 -1 1 4 2 -1 3 7 4 -1 4 8 5 -1 6 11 7 -1 7 12 8 -1 8 13 9 -1 10 16 11 -1 11 17 12 -1 12 18 13 -1 13 19 14 -1 21 22 23 -1 22 24 25 -1 23 25 26 -1 24 27 28 -1 25 28 29 -1 26 29 30 -1 27 31 32 -1 28 32 33 -1 29 33 34 -1 30 34 35 -1 31 0 2 -1 32 2 5 -1 33 5 9 -1 34 9 14 -1 35 14 20 -1 22 25 23 -1 24 28 25 -1 25 29 26 -1 27 32 28 -1 28 33 29 -1 29 34 30 -1 31 2 32 -1 32 5 33 -1 33 9 34 -1 34 14 35 -1 21 36 22 -1 36 37 38 -1 22 38 24 -1 37 39 40 -1 38 40 41 -1 24 41 27 -1 41 42 43 -1 27 43 31 -1 31 44 0 -1 36 38 22 -1 37 40 38 -1 38 41 24 -1 40 42 41 -1 41 43 27 -1 43 44 31 -1 15 45 16 -1 45 46 47 -1 16 47 17 -1 46 48 49 -1 47 49 50 -1 17 50 18 -1 48 51 52 -1 49 52 53 -1 50 53 54 -1 18 54 19 -1 51 55 56 -1 52 56 57 -1 53 57 58 -1 54 58 59 -1 19 59 20 -1 45 47 16 -1 46 49 47 -1 47 50 17 -1 48 52 49 -1 49 53 50 -1 50 54 18 -1 51 56 52 -1 52 57 53 -1 53 58 54 -1 54 59 19 -1 15 60 45 -1 45 61 46 -1 61 62 63 -1 46 63 48 -1 63 64 65 -1 48 65 51 -1 64 66 67 -1 65 67 68 -1 51 68 55 -1 60 61 45 -1 61 63 46 -1 62 64 63 -1 63 65 48 -1 64 67 65 -1 65 68 51 -1 55 69 56 -1 69 70 71 -1 56 71 57 -1 70 72 73 -1 71 73 74 -1 57 74 58 -1 72 75 76 -1 73 76 77 -1 74 77 78 -1 58 78 59 -1 75 79 80 -1 76 80 81 -1 77 81 82 -1 78 82 83 -1 59 83 20 -1 69 71 56 -1 70 73 71 -1 71 74 57 -1 72 76 73 -1 73 77 74 -1 74 78 58 -1 75 80 76 -1 76 81 77 -1 77 82 78 -1 78 83 59 -1 55 84 69 -1 84 85 86 -1 69 86 70 -1 85 87 88 -1 86 88 89 -1 70 89 72 -1 87 90 91 -1 88 91 92 -1 89 92 93 -1 72 93 75 -1 90 94 95 -1 91 95 96 -1 92 96 97 -1 93 97 98 -1 75 98 79 -1 84 86 69 -1 85 88 86 -1 86 89 70 -1 87 91 88 -1 88 92 89 -1 89 93 72 -1 90 95 91 -1 91 96 92 -1 92 97 93 -1 93 98 75 -1 79 99 80 -1 99 100 101 -1 80 101 81 -1 100 102 103 -1 101 103 104 -1 81 104 82 -1 102 105 106 -1 103 106 107 -1 104 107 108 -1 82 108 83 -1 105 21 23 -1 106 23 26 -1 107 26 30 -1 108 30 35 -1 83 35 20 -1 99 101 80 -1 100 103 101 -1 101 104 81 -1 102 106 103 -1 103 107 104 -1 104 108 82 -1 105 23 106 -1 106 26 107 -1 107 30 108 -1 108 35 83 -1 79 109 99 -1 109 110 111 -1 99 111 100 -1 110 112 113 -1 111 113 114 -1 100 114 102 -1 112 115 116 -1 113 116 117 -1 114 117 118 -1 102 118 105 -1 115 119 120 -1 116 120 121 -1 117 121 122 -1 118 122 123 -1 105 123 21 -1 109 111 99 -1 110 113 111 -1 111 114 100 -1 112 116 113 -1 113 117 114 -1 114 118 102 -1 115 120 116 -1 116 121 117 -1 117 122 118 -1 118 123 105 -1 119 115 124 -1 115 112 128 -1 124 128 125 -1 112 110 129 -1 128 129 130 -1 125 130 126 -1 110 109 131 -1 129 131 132 -1 130 132 133 -1 126 133 127 -1 109 79 98 -1 131 98 97 -1 132 97 96 -1 133 96 95 -1 127 95 94 -1 115 128 124 -1 112 129 128 -1 128 130 125 -1 110 131 129 -1 129 132 130 -1 130 133 126 -1 109 98 131 -1 131 97 132 -1 132 96 133 -1 133 95 127 -1 39 37 135 -1 37 36 137 -1 135 137 138 -1 136 138 139 -1 36 21 123 -1 137 123 122 -1 138 122 121 -1 139 121 120 -1 134 120 119 -1 37 137 135 -1 135 138 136 -1 36 123 137 -1 137 122 138 -1 138 121 139 -1 139 120 134 -1 94 90 140 -1 90 87 141 -1 87 85 142 -1 141 142 143 -1 85 84 144 -1 142 144 145 -1 84 55 68 -1 144 68 67 -1 145 67 66 -1 90 141 140 -1 87 142 141 -1 85 144 142 -1 142 145 143 -1 84 68 144 -1 144 67 145 -1 ) .
:Coordinate_2_5_2_1_1_1_2_2_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedLineSet_2_5_2_1_1_1_2_2 ;
  x3do:point ( 0.5257 0 0.8507 0.3477 0 0.9376 0.4636 0.1875 0.866 0.1227 0 0.9924 0.2531 0.2047 0.9455 0.368 0.397 0.8408 -0.1227 0 0.9924 0 0.2116 0.9773 0.1308 0.4233 0.8965 0.2453 0.5955 0.765 -0.3477 0 0.9376 -0.2531 0.2047 0.9455 -0.1308 0.4233 0.8965 0 0.6142 0.7891 0.1159 0.7501 0.6511 -0.5257 0 0.8507 -0.4636 0.1875 0.866 -0.368 0.397 0.8408 -0.2453 0.5955 0.765 -0.1159 0.7501 0.6511 0 0.8507 0.5257 0.8507 0.5257 0 0.866 0.4636 0.1875 0.7501 0.6511 0.1159 0.8408 0.368 0.397 0.7408 0.5844 0.3313 0.5955 0.765 0.2453 0.765 0.2453 0.5955 0.6849 0.4732 0.5541 0.5541 0.6849 0.4732 0.397 0.8408 0.368 0.6511 0.1159 0.7501 0.5844 0.3313 0.7408 0.4732 0.5541 0.6849 0.3313 0.7408 0.5844 0.1875 0.866 0.4636 0.9376 0.3477 0 0.9924 0.1227 0 0.9455 0.2531 0.2047 0.9924 0 0 0.9773 0 0.2116 0.8965 0.1308 0.4233 0.8965 0 0.4233 0.7891 0 0.6142 0.6511 0 0.7501 -0.6511 0.1159 0.7501 -0.765 0.2453 0.5955 -0.5844 0.3313 0.7408 -0.8408 0.368 0.397 -0.6849 0.4732 0.5541 -0.4732 0.5541 0.6849 -0.866 0.4636 0.1875 -0.7408 0.5844 0.3313 -0.5541 0.6849 0.4732 -0.3313 0.7408 0.5844 -0.8507 0.5257 0 -0.7501 0.6511 0.1159 -0.5955 0.765 0.2453 -0.397 0.8408 0.368 -0.1875 0.866 0.4636 -0.6511 0 0.7501 -0.7891 0 0.6142 -0.8965 0 0.4233 -0.8965 0.1308 0.4233 -0.9773 0 0.2116 -0.9455 0.2531 0.2047 -0.9924 0 0 -0.9924 0.1227 0 -0.9376 0.3477 0 -0.7501 0.6511 -0.1159 -0.5955 0.765 -0.2453 -0.6142 0.7891 0 -0.397 0.8408 -0.368 -0.4233 0.8965 -0.1308 -0.4233 0.8965 0.1308 -0.1875 0.866 -0.4636 -0.2047 0.9455 -0.2531 -0.2116 0.9773 0 -0.2047 0.9455 0.2531 0 0.8507 -0.5257 0 0.9376 -0.3477 0 0.9924 -0.1227 0 0.9924 0.1227 0 0.9376 0.3477 -0.866 0.4636 -0.1875 -0.8408 0.368 -0.397 -0.7408 0.5844 -0.3313 -0.765 0.2453 -0.5955 -0.6849 0.4732 -0.5541 -0.5541 0.6849 -0.4732 -0.6511 0.1159 -0.7501 -0.5844 0.3313 -0.7408 -0.4732 0.5541 -0.6849 -0.3313 0.7408 -0.5844 -0.5257 0 -0.8507 -0.4636 0.1875 -0.866 -0.368 0.397 -0.8408 -0.2453 0.5955 -0.765 -0.1159 0.7501 -0.6511 0.1875 0.866 -0.4636 0.397 0.8408 -0.368 0.2047 0.9455 -0.2531 0.5955 0.765 -0.2453 0.4233 0.8965 -0.1308 0.2116 0.9773 0 0.7501 0.6511 -0.1159 0.6142 0.7891 0 0.4233 0.8965 0.1308 0.2047 0.9455 0.2531 0.1159 0.7501 -0.6511 0.2453 0.5955 -0.765 0.3313 0.7408 -0.5844 0.368 0.397 -0.8408 0.4732 0.5541 -0.6849 0.5541 0.6849 -0.4732 0.4636 0.1875 -0.866 0.5844 0.3313 -0.7408 0.6849 0.4732 -0.5541 0.7408 0.5844 -0.3313 0.5257 0 -0.8507 0.6511 0.1159 -0.7501 0.765 0.2453 -0.5955 0.8408 0.368 -0.397 0.866 0.4636 -0.1875 0.3477 0 -0.9376 0.1227 0 -0.9924 -0.1227 0 -0.9924 -0.3477 0 -0.9376 0.2531 0.2047 -0.9455 0.1308 0.4233 -0.8965 0 0.2116 -0.9773 0 0.6142 -0.7891 -0.1308 0.4233 -0.8965 -0.2531 0.2047 -0.9455 0.6511 0 -0.7501 0.9773 0 -0.2116 0.8965 0 -0.4233 0.9455 0.2531 -0.2047 0.8965 0.1308 -0.4233 0.7891 0 -0.6142 -0.6511 0 -0.7501 -0.7891 0 -0.6142 -0.8965 0.1308 -0.4233 -0.8965 0 -0.4233 -0.9455 0.2531 -0.2047 -0.9773 0 -0.2116 ) .
:SOLID_SWITCH a owl:NamedIndividual, x3do:Switch ;
  x3do:hasParent :BEAM_CONTROL ;
  x3do:hasChildren :WorldInfo_2_5_2_1_1_2_1, :Shape_2_5_2_1_1_2_2 ;
  x3do:DEF 'SOLID_SWITCH' ;
  x3do:whichChoice 0 .
:WorldInfo_2_5_2_1_1_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :SOLID_SWITCH ;
  x3do:info '"initial choice is null node (WorldInfo), meaning no solid beam"' .
:Shape_2_5_2_1_1_2_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :SOLID_SWITCH ;
  x3do:hasAppearance :Appearance_2_5_2_1_1_2_2_1 ;
  x3do:hasGeometry :IndexedFaceSet_2_5_2_1_1_2_2_2 .
:Appearance_2_5_2_1_1_2_2_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_5_2_1_1_2_2 ;
  x3do:hasMaterial :CYLINDER_COLOR .
:CYLINDER_COLOR a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_5_2_1_1_2_2_1 ;
  x3do:hasIS :IS_2_5_2_1_1_2_2_1_1_1 ;
  x3do:DEF 'CYLINDER_COLOR' ;
  x3do:diffuseColor ( .1 .1 .1 ) .
:IS_2_5_2_1_1_2_2_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :CYLINDER_COLOR ;
  x3do:hasConnect :connect_2_5_2_1_1_2_2_1_1_1_1 .
:connect_2_5_2_1_1_2_2_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1_2_2_1_1_1 ;
  x3do:nodeField 'transparency' ;
  x3do:protoField 'transparency' .
:IndexedFaceSet_2_5_2_1_1_2_2_2 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :Shape_2_5_2_1_1_2_2 ;
  x3do:hasCoord :Coordinate_2_5_2_1_1_2_2_2_1 ;
  x3do:coordIndex ( 0 1 2 -1 1 3 4 -1 2 4 5 -1 3 6 7 -1 4 7 8 -1 5 8 9 -1 6 10 11 -1 7 11 12 -1 8 12 13 -1 9 13 14 -1 10 15 16 -1 11 16 17 -1 12 17 18 -1 13 18 19 -1 14 19 20 -1 1 4 2 -1 3 7 4 -1 4 8 5 -1 6 11 7 -1 7 12 8 -1 8 13 9 -1 10 16 11 -1 11 17 12 -1 12 18 13 -1 13 19 14 -1 21 22 23 -1 22 24 25 -1 23 25 26 -1 24 27 28 -1 25 28 29 -1 26 29 30 -1 27 31 32 -1 28 32 33 -1 29 33 34 -1 30 34 35 -1 31 0 2 -1 32 2 5 -1 33 5 9 -1 34 9 14 -1 35 14 20 -1 22 25 23 -1 24 28 25 -1 25 29 26 -1 27 32 28 -1 28 33 29 -1 29 34 30 -1 31 2 32 -1 32 5 33 -1 33 9 34 -1 34 14 35 -1 21 36 22 -1 36 37 38 -1 22 38 24 -1 37 39 40 -1 38 40 41 -1 24 41 27 -1 41 42 43 -1 27 43 31 -1 31 44 0 -1 36 38 22 -1 37 40 38 -1 38 41 24 -1 40 42 41 -1 41 43 27 -1 43 44 31 -1 15 45 16 -1 45 46 47 -1 16 47 17 -1 46 48 49 -1 47 49 50 -1 17 50 18 -1 48 51 52 -1 49 52 53 -1 50 53 54 -1 18 54 19 -1 51 55 56 -1 52 56 57 -1 53 57 58 -1 54 58 59 -1 19 59 20 -1 45 47 16 -1 46 49 47 -1 47 50 17 -1 48 52 49 -1 49 53 50 -1 50 54 18 -1 51 56 52 -1 52 57 53 -1 53 58 54 -1 54 59 19 -1 15 60 45 -1 45 61 46 -1 61 62 63 -1 46 63 48 -1 63 64 65 -1 48 65 51 -1 64 66 67 -1 65 67 68 -1 51 68 55 -1 60 61 45 -1 61 63 46 -1 62 64 63 -1 63 65 48 -1 64 67 65 -1 65 68 51 -1 55 69 56 -1 69 70 71 -1 56 71 57 -1 70 72 73 -1 71 73 74 -1 57 74 58 -1 72 75 76 -1 73 76 77 -1 74 77 78 -1 58 78 59 -1 75 79 80 -1 76 80 81 -1 77 81 82 -1 78 82 83 -1 59 83 20 -1 69 71 56 -1 70 73 71 -1 71 74 57 -1 72 76 73 -1 73 77 74 -1 74 78 58 -1 75 80 76 -1 76 81 77 -1 77 82 78 -1 78 83 59 -1 55 84 69 -1 84 85 86 -1 69 86 70 -1 85 87 88 -1 86 88 89 -1 70 89 72 -1 87 90 91 -1 88 91 92 -1 89 92 93 -1 72 93 75 -1 90 94 95 -1 91 95 96 -1 92 96 97 -1 93 97 98 -1 75 98 79 -1 84 86 69 -1 85 88 86 -1 86 89 70 -1 87 91 88 -1 88 92 89 -1 89 93 72 -1 90 95 91 -1 91 96 92 -1 92 97 93 -1 93 98 75 -1 79 99 80 -1 99 100 101 -1 80 101 81 -1 100 102 103 -1 101 103 104 -1 81 104 82 -1 102 105 106 -1 103 106 107 -1 104 107 108 -1 82 108 83 -1 105 21 23 -1 106 23 26 -1 107 26 30 -1 108 30 35 -1 83 35 20 -1 99 101 80 -1 100 103 101 -1 101 104 81 -1 102 106 103 -1 103 107 104 -1 104 108 82 -1 105 23 106 -1 106 26 107 -1 107 30 108 -1 108 35 83 -1 79 109 99 -1 109 110 111 -1 99 111 100 -1 110 112 113 -1 111 113 114 -1 100 114 102 -1 112 115 116 -1 113 116 117 -1 114 117 118 -1 102 118 105 -1 115 119 120 -1 116 120 121 -1 117 121 122 -1 118 122 123 -1 105 123 21 -1 109 111 99 -1 110 113 111 -1 111 114 100 -1 112 116 113 -1 113 117 114 -1 114 118 102 -1 115 120 116 -1 116 121 117 -1 117 122 118 -1 118 123 105 -1 119 115 124 -1 115 112 128 -1 124 128 125 -1 112 110 129 -1 128 129 130 -1 125 130 126 -1 110 109 131 -1 129 131 132 -1 130 132 133 -1 126 133 127 -1 109 79 98 -1 131 98 97 -1 132 97 96 -1 133 96 95 -1 127 95 94 -1 115 128 124 -1 112 129 128 -1 128 130 125 -1 110 131 129 -1 129 132 130 -1 130 133 126 -1 109 98 131 -1 131 97 132 -1 132 96 133 -1 133 95 127 -1 39 37 135 -1 37 36 137 -1 135 137 138 -1 136 138 139 -1 36 21 123 -1 137 123 122 -1 138 122 121 -1 139 121 120 -1 134 120 119 -1 37 137 135 -1 135 138 136 -1 36 123 137 -1 137 122 138 -1 138 121 139 -1 139 120 134 -1 94 90 140 -1 90 87 141 -1 87 85 142 -1 141 142 143 -1 85 84 144 -1 142 144 145 -1 84 55 68 -1 144 68 67 -1 145 67 66 -1 90 141 140 -1 87 142 141 -1 85 144 142 -1 142 145 143 -1 84 68 144 -1 144 67 145 -1 ) ;
  x3do:creaseAngle .01 ;
  x3do:solid false .
:Coordinate_2_5_2_1_1_2_2_2_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_5_2_1_1_2_2_2 ;
  x3do:point ( 0.5257 0 0.8507 0.3477 0 0.9376 0.4636 0.1875 0.866 0.1227 0 0.9924 0.2531 0.2047 0.9455 0.368 0.397 0.8408 -0.1227 0 0.9924 0 0.2116 0.9773 0.1308 0.4233 0.8965 0.2453 0.5955 0.765 -0.3477 0 0.9376 -0.2531 0.2047 0.9455 -0.1308 0.4233 0.8965 0 0.6142 0.7891 0.1159 0.7501 0.6511 -0.5257 0 0.8507 -0.4636 0.1875 0.866 -0.368 0.397 0.8408 -0.2453 0.5955 0.765 -0.1159 0.7501 0.6511 0 0.8507 0.5257 0.8507 0.5257 0 0.866 0.4636 0.1875 0.7501 0.6511 0.1159 0.8408 0.368 0.397 0.7408 0.5844 0.3313 0.5955 0.765 0.2453 0.765 0.2453 0.5955 0.6849 0.4732 0.5541 0.5541 0.6849 0.4732 0.397 0.8408 0.368 0.6511 0.1159 0.7501 0.5844 0.3313 0.7408 0.4732 0.5541 0.6849 0.3313 0.7408 0.5844 0.1875 0.866 0.4636 0.9376 0.3477 0 0.9924 0.1227 0 0.9455 0.2531 0.2047 0.9924 0 0 0.9773 0 0.2116 0.8965 0.1308 0.4233 0.8965 0 0.4233 0.7891 0 0.6142 0.6511 0 0.7501 -0.6511 0.1159 0.7501 -0.765 0.2453 0.5955 -0.5844 0.3313 0.7408 -0.8408 0.368 0.397 -0.6849 0.4732 0.5541 -0.4732 0.5541 0.6849 -0.866 0.4636 0.1875 -0.7408 0.5844 0.3313 -0.5541 0.6849 0.4732 -0.3313 0.7408 0.5844 -0.8507 0.5257 0 -0.7501 0.6511 0.1159 -0.5955 0.765 0.2453 -0.397 0.8408 0.368 -0.1875 0.866 0.4636 -0.6511 0 0.7501 -0.7891 0 0.6142 -0.8965 0 0.4233 -0.8965 0.1308 0.4233 -0.9773 0 0.2116 -0.9455 0.2531 0.2047 -0.9924 0 0 -0.9924 0.1227 0 -0.9376 0.3477 0 -0.7501 0.6511 -0.1159 -0.5955 0.765 -0.2453 -0.6142 0.7891 0 -0.397 0.8408 -0.368 -0.4233 0.8965 -0.1308 -0.4233 0.8965 0.1308 -0.1875 0.866 -0.4636 -0.2047 0.9455 -0.2531 -0.2116 0.9773 0 -0.2047 0.9455 0.2531 0 0.8507 -0.5257 0 0.9376 -0.3477 0 0.9924 -0.1227 0 0.9924 0.1227 0 0.9376 0.3477 -0.866 0.4636 -0.1875 -0.8408 0.368 -0.397 -0.7408 0.5844 -0.3313 -0.765 0.2453 -0.5955 -0.6849 0.4732 -0.5541 -0.5541 0.6849 -0.4732 -0.6511 0.1159 -0.7501 -0.5844 0.3313 -0.7408 -0.4732 0.5541 -0.6849 -0.3313 0.7408 -0.5844 -0.5257 0 -0.8507 -0.4636 0.1875 -0.866 -0.368 0.397 -0.8408 -0.2453 0.5955 -0.765 -0.1159 0.7501 -0.6511 0.1875 0.866 -0.4636 0.397 0.8408 -0.368 0.2047 0.9455 -0.2531 0.5955 0.765 -0.2453 0.4233 0.8965 -0.1308 0.2116 0.9773 0 0.7501 0.6511 -0.1159 0.6142 0.7891 0 0.4233 0.8965 0.1308 0.2047 0.9455 0.2531 0.1159 0.7501 -0.6511 0.2453 0.5955 -0.765 0.3313 0.7408 -0.5844 0.368 0.397 -0.8408 0.4732 0.5541 -0.6849 0.5541 0.6849 -0.4732 0.4636 0.1875 -0.866 0.5844 0.3313 -0.7408 0.6849 0.4732 -0.5541 0.7408 0.5844 -0.3313 0.5257 0 -0.8507 0.6511 0.1159 -0.7501 0.765 0.2453 -0.5955 0.8408 0.368 -0.397 0.866 0.4636 -0.1875 0.3477 0 -0.9376 0.1227 0 -0.9924 -0.1227 0 -0.9924 -0.3477 0 -0.9376 0.2531 0.2047 -0.9455 0.1308 0.4233 -0.8965 0 0.2116 -0.9773 0 0.6142 -0.7891 -0.1308 0.4233 -0.8965 -0.2531 0.2047 -0.9455 0.6511 0 -0.7501 0.9773 0 -0.2116 0.8965 0 -0.4233 0.9455 0.2531 -0.2047 0.8965 0.1308 -0.4233 0.7891 0 -0.6142 -0.6511 0 -0.7501 -0.7891 0 -0.6142 -0.8965 0.1308 -0.4233 -0.8965 0 -0.4233 -0.9455 0.2531 -0.2047 -0.9773 0 -0.2116 ) .
:CAP_SWITCH a owl:NamedIndividual, x3do:Switch ;
  x3do:hasParent :BEAM_CONTROL ;
  x3do:hasChildren :WorldInfo_2_5_2_1_1_3_1, :Transform_2_5_2_1_1_3_2 ;
  x3do:DEF 'CAP_SWITCH' ;
  x3do:whichChoice 1 .
:WorldInfo_2_5_2_1_1_3_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :CAP_SWITCH ;
  x3do:info '"initial choice is null node (WorldInfo), meaning no solid beam"' .
:Transform_2_5_2_1_1_3_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :CAP_SWITCH ;
  x3do:hasChildren :Shape_2_5_2_1_1_3_2_1 .
:Shape_2_5_2_1_1_3_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_5_2_1_1_3_2 ;
  x3do:hasAppearance :Appearance_2_5_2_1_1_3_2_1_1 ;
  x3do:hasGeometry :BeamTopCylinder .
:Appearance_2_5_2_1_1_3_2_1_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_5_2_1_1_3_2_1 ;
  x3do:hasMaterial :CAP_COLOR .
:CAP_COLOR a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_5_2_1_1_3_2_1_1 ;
  x3do:hasIS :IS_2_5_2_1_1_3_2_1_1_1_1 ;
  x3do:DEF 'CAP_COLOR' ;
  x3do:diffuseColor ( .1 .1 .1 ) .
:IS_2_5_2_1_1_3_2_1_1_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :CAP_COLOR ;
  x3do:hasConnect :connect_2_5_2_1_1_3_2_1_1_1_1_1 .
:connect_2_5_2_1_1_3_2_1_1_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1_3_2_1_1_1_1 ;
  x3do:nodeField 'transparency' ;
  x3do:protoField 'transparency' .
:BeamTopCylinder a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_5_2_1_1_3_2_1 ;
  x3do:DEF 'BeamTopCylinder' ;
  x3do:height 0.0001 ;
  x3do:side false .
:DETECTION a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:hasField :field_2_5_2_2_1, :field_2_5_2_2_2, :field_2_5_2_2_3, :field_2_5_2_2_4, :field_2_5_2_2_5, :field_2_5_2_2_6, :field_2_5_2_2_7, :field_2_5_2_2_8, :field_2_5_2_2_9, :field_2_5_2_2_10 ;
  x3do:hasIS :IS_2_5_2_2_11 ;
  x3do:DEF 'DETECTION' ;
  x3do:sourceCode """
ecmascript:
function initialize ()
{
	beamColor = noContactColor;
	if (wireframe == true) wireframeChoice = 1;
	if (solid     == true) solidChoice     = 1;
	if (trace) Browser.println ('[BeamHemisphere ' + name + '] trace=' + trace);
	if (trace) Browser.println ('[BeamHemisphere ' + name + '] wireframeChoice=' + wireframeChoice + ', solidChoice=' + solidChoice);
	if (trace) Browser.println ('[BeamHemisphere ' + name + '] contactColor=' + contactColor.toString() + ', noContactColor=' + noContactColor.toString());
}
function contact (newDetect, timeStamp)
{
	if (newDetect) beamColor = contactColor;
	else           beamColor = noContactColor;
	if (trace) Browser.println ('[BeamHemisphere ' + name + '] contact=' + newDetect + ', beamColor=' + beamColor.toString());
}
""" .
:field_2_5_2_2_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'name' ;
  x3do:type 'SFString' .
:field_2_5_2_2_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'contact' ;
  x3do:type 'SFBool' .
:field_2_5_2_2_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'wireframe' ;
  x3do:type 'SFBool' .
:field_2_5_2_2_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'solid' ;
  x3do:type 'SFBool' .
:field_2_5_2_2_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'contactColor' ;
  x3do:type 'SFColor' .
:field_2_5_2_2_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'noContactColor' ;
  x3do:type 'SFColor' .
:field_2_5_2_2_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'beamColor' ;
  x3do:type 'SFColor' .
:field_2_5_2_2_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'wireframeChoice' ;
  x3do:type 'SFInt32' .
:field_2_5_2_2_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'solidChoice' ;
  x3do:type 'SFInt32' .
:field_2_5_2_2_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :DETECTION ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'internal flag to turn on Script tracing' ;
  x3do:name 'trace' ;
  x3do:type 'SFBool' ;
  x3do:value false .
:IS_2_5_2_2_11 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :DETECTION ;
  x3do:hasConnect :connect_2_5_2_2_11_1, :connect_2_5_2_2_11_2, :connect_2_5_2_2_11_3, :connect_2_5_2_2_11_4, :connect_2_5_2_2_11_5, :connect_2_5_2_2_11_6 .
:connect_2_5_2_2_11_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_11 ;
  x3do:nodeField 'name' ;
  x3do:protoField 'name' .
:connect_2_5_2_2_11_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_11 ;
  x3do:nodeField 'contact' ;
  x3do:protoField 'contact' .
:connect_2_5_2_2_11_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_11 ;
  x3do:nodeField 'wireframe' ;
  x3do:protoField 'wireframe' .
:connect_2_5_2_2_11_4 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_11 ;
  x3do:nodeField 'solid' ;
  x3do:protoField 'solid' .
:connect_2_5_2_2_11_5 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_11 ;
  x3do:nodeField 'contactColor' ;
  x3do:protoField 'contactColor' .
:connect_2_5_2_2_11_6 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_11 ;
  x3do:nodeField 'noContactColor' ;
  x3do:protoField 'noContactColor' .
:ROUTE_2_5_2_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:fromField 'beamColor' ;
  x3do:fromNode 'DETECTION' ;
  x3do:toField 'emissiveColor' ;
  x3do:toNode 'WIRE_COLOR' .
:ROUTE_2_5_2_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:fromField 'beamColor' ;
  x3do:fromNode 'DETECTION' ;
  x3do:toField 'emissiveColor' ;
  x3do:toNode 'CYLINDER_COLOR' .
:ROUTE_2_5_2_5 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:fromField 'beamColor' ;
  x3do:fromNode 'DETECTION' ;
  x3do:toField 'emissiveColor' ;
  x3do:toNode 'CAP_COLOR' .
:ROUTE_2_5_2_6 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:fromField 'wireframeChoice' ;
  x3do:fromNode 'DETECTION' ;
  x3do:toField 'whichChoice' ;
  x3do:toNode 'WIREFRAME_SWITCH' .
:ROUTE_2_5_2_7 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:fromField 'solidChoice' ;
  x3do:fromNode 'DETECTION' ;
  x3do:toField 'whichChoice' ;
  x3do:toNode 'SOLID_SWITCH' .
:ROUTE_2_5_2_8 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:fromField 'solidChoice' ;
  x3do:fromNode 'DETECTION' ;
  x3do:toField 'whichChoice' ;
  x3do:toNode 'CAP_SWITCH' .
:BEAM_CALCULATE a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:hasField :field_2_5_2_9_1, :field_2_5_2_9_2, :field_2_5_2_9_3, :field_2_5_2_9_4, :field_2_5_2_9_5, :field_2_5_2_9_6 ;
  x3do:hasIS :IS_2_5_2_9_7 ;
  x3do:DEF 'BEAM_CALCULATE' ;
  x3do:sourceCode """
ecmascript:
function initialize ()
{
	// Note that VRML scale factor triplets all equal to zero are not allowed
	if (defaultRange == 0)      defaultRange = .0001;
	beamScale = new SFVec3f (defaultRange, defaultRange, defaultRange);
	if (trace) ('[BeamHemisphere ' + name + '] initial beamScale=', beamScale.toString());
}
function range (newRange, timeStamp)
{
	if (newRange < 0)
	{
		direction     = new SFRotation (1, 0, 0, 3.141592653);
		beamScale = new SFVec3f (-newRange, -newRange, -newRange);
	}
	else if (newRange == 0)
	{
		direction     = new SFRotation (1, 0, 0, 0);
		beamScale = new SFVec3f ( .0001, .0001, .0001 );  // zero scale is illegal
	}
	else // (newRange > 0)
	{
		direction     = new SFRotation (1, 0, 0, 0);
		beamScale = new SFVec3f (newRange, newRange, newRange);
	}
}
""" .
:field_2_5_2_9_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :BEAM_CALCULATE ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'name' ;
  x3do:type 'SFString' .
:field_2_5_2_9_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :BEAM_CALCULATE ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'range' ;
  x3do:type 'SFFloat' .
:field_2_5_2_9_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :BEAM_CALCULATE ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'defaultRange' ;
  x3do:type 'SFFloat' .
:field_2_5_2_9_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :BEAM_CALCULATE ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'beamScale' ;
  x3do:type 'SFVec3f' .
:field_2_5_2_9_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :BEAM_CALCULATE ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'direction' ;
  x3do:type 'SFRotation' .
:field_2_5_2_9_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :BEAM_CALCULATE ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'internal flag to turn on Script tracing' ;
  x3do:name 'trace' ;
  x3do:type 'SFBool' ;
  x3do:value false .
:IS_2_5_2_9_7 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :BEAM_CALCULATE ;
  x3do:hasConnect :connect_2_5_2_9_7_1, :connect_2_5_2_9_7_2, :connect_2_5_2_9_7_3 .
:connect_2_5_2_9_7_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_9_7 ;
  x3do:nodeField 'name' ;
  x3do:protoField 'name' .
:connect_2_5_2_9_7_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_9_7 ;
  x3do:nodeField 'range' ;
  x3do:protoField 'range' .
:connect_2_5_2_9_7_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_9_7 ;
  x3do:nodeField 'defaultRange' ;
  x3do:protoField 'defaultRange' .
:ROUTE_2_5_2_10 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:fromField 'beamScale' ;
  x3do:fromNode 'BEAM_CALCULATE' ;
  x3do:toField 'scale' ;
  x3do:toNode 'BEAM_CONTROL' .
:ROUTE_2_5_2_11 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:fromField 'direction' ;
  x3do:fromNode 'BEAM_CALCULATE' ;
  x3do:toField 'rotation' ;
  x3do:toNode 'BEAM_CONTROL' .
:Anchor_2_6 a owl:NamedIndividual, x3do:Anchor ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Shape_2_6_1, :Shape_2_6_2 ;
  x3do:description 'Beam Hemisphere Example' ;
  x3do:url '"BeamHemisphereExample.x3d" "../../CommunicationsAndSensors/Beam/BeamHemisphereExample.x3d" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamHemisphereExample.x3d" "BeamHemisphereExample.wrl" "../../CommunicationsAndSensors/Beam/BeamHemisphereExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamHemisphereExample.wrl"' .
:Shape_2_6_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Anchor_2_6 ;
  x3do:hasAppearance :Appearance_2_6_1_1 ;
  x3do:hasGeometry :Text_2_6_1_2 .
:Appearance_2_6_1_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_6_1 ;
  x3do:hasMaterial :Material_2_6_1_1_1 .
:Material_2_6_1_1_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_6_1_1 ;
  x3do:diffuseColor ( 0 1 1 ) ;
  x3do:emissiveColor ( 0 1 1 ) .
:Text_2_6_1_2 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_6_1 ;
  x3do:hasFontStyle :FontStyle_2_6_1_2_1 ;
  x3do:string '"BeamHemispherePrototype" "is a Prototype definition file." "" "To see an example scene" "click this text and view" "BeamHemisphereExample."' .
:FontStyle_2_6_1_2_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_6_1_2 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Shape_2_6_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Anchor_2_6 ;
  x3do:hasGeometry :Box_2_6_2_1 ;
  x3do:hasAppearance :Appearance_2_6_2_2 .
:Box_2_6_2_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_6_2 ;
  x3do:size ( 11 6 0.1 ) .
:Appearance_2_6_2_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_6_2 ;
  x3do:hasMaterial :Material_2_6_2_2_1 .
:Material_2_6_2_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_6_2_2 ;
  x3do:transparency 1 .
