Skip to content
Snippets Groups Projects
Commit c8570606 authored by tobia's avatar tobia
Browse files

No commit message

No commit message
parent d2b4bdc7
No related branches found
No related tags found
No related merge requests found
<!DOCTYPE html>
<html class="" lang="en">
<head prefix="og: http://ogp.me/ns#">
<meta charset="utf-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="object" property="og:type">
<meta content="GitLab" property="og:site_name">
<meta content="CommunicationsAndSensors/Beam/BeamConePrototype.x3d · master · Savage / X3dExamples" property="og:title">
<meta content="X3D Examples Archive" property="og:description">
<meta content="/uploads/-/system/project/avatar/2568/x3d2-s.gif" property="og:image">
<meta content="64" property="og:image:width">
<meta content="64" property="og:image:height">
<meta content="https://gitlab.nps.edu/Savage/Savage/blob/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d" property="og:url">
<meta content="summary" property="twitter:card">
<meta content="CommunicationsAndSensors/Beam/BeamConePrototype.x3d · master · Savage / X3dExamples" property="twitter:title">
<meta content="X3D Examples Archive" property="twitter:description">
<meta content="/uploads/-/system/project/avatar/2568/x3d2-s.gif" property="twitter:image">
<title>CommunicationsAndSensors/Beam/BeamConePrototype.x3d · master · Savage / X3dExamples · GitLab</title>
<meta content="X3D Examples Archive" name="description">
<link rel="shortcut icon" type="image/png" href="/assets/favicon-7901bd695fb93edb07975966062049829afb56cf11511236e61bcf425070e36e.png" id="favicon" data-original-href="/assets/favicon-7901bd695fb93edb07975966062049829afb56cf11511236e61bcf425070e36e.png" />
<link rel="stylesheet" media="all" href="/assets/application-aeddf31361633b3d1196c6483f25c484855e0f243e7f7e62686a4de9e10ec03b.css" />
<link rel="stylesheet" media="print" href="/assets/print-74c3df10dad473d66660c828e3aa54ca3bfeac6d8bb708643331403fe7211e60.css" />
<link rel="stylesheet" media="all" href="/assets/highlight/themes/white-3144068cf4f603d290f553b653926358ddcd02493b9728f62417682657fc58c0.css" />
<script>
//<![CDATA[
window.gon={};gon.api_version="v4";gon.default_avatar_url="https://gitlab.nps.edu/assets/no_avatar-849f9c04a3a0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png";gon.max_file_size=50;gon.asset_host=null;gon.webpack_public_path="/assets/webpack/";gon.relative_url_root="";gon.shortcuts_path="/help/shortcuts";gon.user_color_scheme="white";gon.gitlab_url="https://gitlab.nps.edu";gon.revision="fc376e40baf";gon.gitlab_logo="/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png";gon.sprite_icons="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg";gon.sprite_file_icons="/assets/file_icons-7262fc6897e02f1ceaf8de43dc33afa5e4f9a2067f4f68ef77dcc87946575e9e.svg";gon.emoji_sprites_css_path="/assets/emoji_sprites-289eccffb1183c188b630297431be837765d9ff4aed6130cf738586fb307c170.css";gon.test_env=false;gon.suggested_label_colors={"#0033CC":"UA blue","#428BCA":"Moderate blue","#44AD8E":"Lime green","#A8D695":"Feijoa","#5CB85C":"Slightly desaturated green","#69D100":"Bright green","#004E00":"Very dark lime green","#34495E":"Very dark desaturated blue","#7F8C8D":"Dark grayish cyan","#A295D6":"Slightly desaturated blue","#5843AD":"Dark moderate blue","#8E44AD":"Dark moderate violet","#FFECDB":"Very pale orange","#AD4363":"Dark moderate pink","#D10069":"Strong pink","#CC0033":"Strong red","#FF0000":"Pure red","#D9534F":"Soft red","#D1D100":"Strong yellow","#F0AD4E":"Soft orange","#AD8D43":"Dark moderate orange"};gon.first_day_of_week=0;gon.ee=false;gon.current_user_id=797;gon.current_username="t.brennenstuhl.gy";gon.current_user_fullname="Brennenstuhl, Tobias FORNATL, GY";gon.current_user_avatar_url="https://secure.gravatar.com/avatar/05592b2f60588393f75904adc3c7f31f?s=80\u0026d=identicon";gon.features={"snippetsVue":false};
//]]>
</script>
<script src="/assets/webpack/runtime.ee78bc38.bundle.js" defer="defer"></script>
<script src="/assets/webpack/main.b91d0a07.chunk.js" defer="defer"></script>
<script src="/assets/webpack/commons~pages.admin.clusters~pages.admin.clusters.destroy~pages.admin.clusters.edit~pages.admin.clus~2b7477a2.8f970186.chunk.js" defer="defer"></script>
<script src="/assets/webpack/commons~pages.groups.milestones.edit~pages.groups.milestones.new~pages.projects.blame.show~pages.pro~d3e579ac.76c0178f.chunk.js" defer="defer"></script>
<script src="/assets/webpack/pages.projects.blob.show.a1513880.chunk.js" defer="defer"></script>
<script>
//<![CDATA[
window.uploads_path = "/Savage/Savage/uploads";
//]]>
</script>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="WtWAs58AAiefZ0UKZRGxP+e8WTGcwnwFYqHu0jgRKqECOVLzDAD2qKsMIqDKOYbUQuZ7LyIb+ivZB8SezLeO8Q==" />
<meta content="origin-when-cross-origin" name="referrer">
<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">
<meta content="#474D57" name="theme-color">
<link rel="apple-touch-icon" type="image/x-icon" href="/assets/touch-icon-iphone-5a9cee0e8a51212e70b90c87c12f382c428870c0ff67d1eb034d884b78d2dae7.png" />
<link rel="apple-touch-icon" type="image/x-icon" href="/assets/touch-icon-ipad-a6eec6aeb9da138e507593b464fdac213047e49d3093fc30e90d9a995df83ba3.png" sizes="76x76" />
<link rel="apple-touch-icon" type="image/x-icon" href="/assets/touch-icon-iphone-retina-72e2aadf86513a56e050e7f0f2355deaa19cc17ed97bbe5147847f2748e5a3e3.png" sizes="120x120" />
<link rel="apple-touch-icon" type="image/x-icon" href="/assets/touch-icon-ipad-retina-8ebe416f5313483d9c1bc772b5bbe03ecad52a54eba443e5215a22caed2a16a2.png" sizes="152x152" />
<link color="rgb(226, 67, 41)" href="/assets/logo-d36b5212042cebc89b96df4bf6ac24e43db316143e89926c0db839ff694d2de4.svg" rel="mask-icon">
<meta content="/assets/msapplication-tile-1196ec67452f618d39cdd85e2e3a542f76574c071051ae7effbfde01710eb17d.png" name="msapplication-TileImage">
<meta content="#30353E" name="msapplication-TileColor">
</head>
<body class="ui-indigo gl-browser-chrome gl-platform-windows" data-find-file="/Savage/Savage/find_file/master" data-group="" data-namespace-id="501" data-page="projects:blob:show" data-page-type-id="master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d" data-project="Savage" data-project-id="2568">
<script>
//<![CDATA[
gl = window.gl || {};
gl.client = {"isChrome":true,"isWindows":true};
//]]>
</script>
<header class="navbar navbar-gitlab navbar-expand-sm js-navbar" data-qa-selector="navbar">
<a class="sr-only gl-accessibility" href="#content-body" tabindex="1">Skip to content</a>
<div class="container-fluid">
<div class="header-content">
<div class="title-container">
<h1 class="title">
<a title="Dashboard" id="logo" href="/"><svg width="24" height="24" class="tanuki-logo" viewBox="0 0 36 36">
<path class="tanuki-shape tanuki-left-ear" fill="#e24329" d="M2 14l9.38 9v-9l-4-12.28c-.205-.632-1.176-.632-1.38 0z"/>
<path class="tanuki-shape tanuki-right-ear" fill="#e24329" d="M34 14l-9.38 9v-9l4-12.28c.205-.632 1.176-.632 1.38 0z"/>
<path class="tanuki-shape tanuki-nose" fill="#e24329" d="M18,34.38 3,14 33,14 Z"/>
<path class="tanuki-shape tanuki-left-eye" fill="#fc6d26" d="M18,34.38 11.38,14 2,14 6,25Z"/>
<path class="tanuki-shape tanuki-right-eye" fill="#fc6d26" d="M18,34.38 24.62,14 34,14 30,25Z"/>
<path class="tanuki-shape tanuki-left-cheek" fill="#fca326" d="M2 14L.1 20.16c-.18.565 0 1.2.5 1.56l17.42 12.66z"/>
<path class="tanuki-shape tanuki-right-cheek" fill="#fca326" d="M34 14l1.9 6.16c.18.565 0 1.2-.5 1.56L18 34.38z"/>
</svg>
<span class="logo-text d-none d-lg-block prepend-left-8">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 617 169"><path d="M315.26 2.97h-21.8l.1 162.5h88.3v-20.1h-66.5l-.1-142.4M465.89 136.95c-5.5 5.7-14.6 11.4-27 11.4-16.6 0-23.3-8.2-23.3-18.9 0-16.1 11.2-23.8 35-23.8 4.5 0 11.7.5 15.4 1.2v30.1h-.1m-22.6-98.5c-17.6 0-33.8 6.2-46.4 16.7l7.7 13.4c8.9-5.2 19.8-10.4 35.5-10.4 17.9 0 25.8 9.2 25.8 24.6v7.9c-3.5-.7-10.7-1.2-15.1-1.2-38.2 0-57.6 13.4-57.6 41.4 0 25.1 15.4 37.7 38.7 37.7 15.7 0 30.8-7.2 36-18.9l4 15.9h15.4v-83.2c-.1-26.3-11.5-43.9-44-43.9M557.63 149.1c-8.2 0-15.4-1-20.8-3.5V70.5c7.4-6.2 16.6-10.7 28.3-10.7 21.1 0 29.2 14.9 29.2 39 0 34.2-13.1 50.3-36.7 50.3m9.2-110.6c-19.5 0-30 13.3-30 13.3v-21l-.1-27.8h-21.3l.1 158.5c10.7 4.5 25.3 6.9 41.2 6.9 40.7 0 60.3-26 60.3-70.9-.1-35.5-18.2-59-50.2-59M77.9 20.6c19.3 0 31.8 6.4 39.9 12.9l9.4-16.3C114.5 6 97.3 0 78.9 0 32.5 0 0 28.3 0 85.4c0 59.8 35.1 83.1 75.2 83.1 20.1 0 37.2-4.7 48.4-9.4l-.5-63.9V75.1H63.6v20.1h38l.5 48.5c-5 2.5-13.6 4.5-25.3 4.5-32.2 0-53.8-20.3-53.8-63-.1-43.5 22.2-64.6 54.9-64.6M231.43 2.95h-21.3l.1 27.3v94.3c0 26.3 11.4 43.9 43.9 43.9 4.5 0 8.9-.4 13.1-1.2v-19.1c-3.1.5-6.4.7-9.9.7-17.9 0-25.8-9.2-25.8-24.6v-65h35.7v-17.8h-35.7l-.1-38.5M155.96 165.47h21.3v-124h-21.3v124M155.96 24.37h21.3V3.07h-21.3v21.3"/></svg>
</span>
</a></h1>
<ul class="list-unstyled navbar-sub-nav">
<li id="nav-projects-dropdown" class="home dropdown header-projects qa-projects-dropdown" data-track-label="projects_dropdown" data-track-event="click_dropdown" data-track-value=""><button class="btn" data-toggle="dropdown" type="button">
Projects
<svg class="caret-down"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-down"></use></svg>
</button>
<div class="dropdown-menu frequent-items-dropdown-menu">
<div class="frequent-items-dropdown-container">
<div class="frequent-items-dropdown-sidebar qa-projects-dropdown-sidebar">
<ul>
<li class=""><a class="qa-your-projects-link" href="/dashboard/projects">Your projects
</a></li><li class=""><a href="/dashboard/projects/starred">Starred projects
</a></li><li class=""><a href="/explore">Explore projects
</a></li></ul>
</div>
<div class="frequent-items-dropdown-content">
<div data-project-avatar-url="/uploads/-/system/project/avatar/2568/x3d2-s.gif" data-project-id="2568" data-project-name="X3dExamples" data-project-namespace="Savage / X3dExamples" data-project-web-url="/Savage/Savage" data-user-name="t.brennenstuhl.gy" id="js-projects-dropdown"></div>
</div>
</div>
</div>
</li><li id="nav-groups-dropdown" class="d-none d-md-block home dropdown header-groups qa-groups-dropdown" data-track-label="groups_dropdown" data-track-event="click_dropdown" data-track-value=""><button class="btn" data-toggle="dropdown" type="button">
Groups
<svg class="caret-down"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-down"></use></svg>
</button>
<div class="dropdown-menu frequent-items-dropdown-menu">
<div class="frequent-items-dropdown-container">
<div class="frequent-items-dropdown-sidebar qa-groups-dropdown-sidebar">
<ul>
<li class=""><a class="qa-your-groups-link" href="/dashboard/groups">Your groups
</a></li><li class=""><a href="/explore/groups">Explore groups
</a></li></ul>
</div>
<div class="frequent-items-dropdown-content">
<div data-user-name="t.brennenstuhl.gy" id="js-groups-dropdown"></div>
</div>
</div>
</div>
</li><li class="header-more dropdown">
<a data-qa-selector="more_dropdown" data-toggle="dropdown" href="#">
More
<svg class="caret-down"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-down"></use></svg>
</a>
<div class="dropdown-menu">
<ul>
<li class="d-md-none">
<a href="/dashboard/groups">Groups
</a></li>
<li class=""><a href="/dashboard/activity">Activity
</a></li><li class=""><a class="dashboard-shortcuts-milestones" href="/dashboard/milestones">Milestones
</a></li><li class=""><a class="dashboard-shortcuts-snippets" data-qa-selector="snippets_link" href="/dashboard/snippets">Snippets
</a></li>
<li class="dropdown">
</li>
<li class=""><a href="/-/instance_statistics">Instance Statistics
</a></li></ul>
</div>
</li>
<li class="hidden">
<a class="dashboard-shortcuts-projects" href="/dashboard/projects">Projects
</a></li>
</ul>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="header-new dropdown" data-track-event="click_dropdown" data-track-label="new_dropdown" data-track-value="">
<a class="header-new-dropdown-toggle has-tooltip qa-new-menu-toggle" id="js-onboarding-new-project-link" title="New..." ref="tooltip" aria-label="New..." data-toggle="dropdown" data-placement="bottom" data-container="body" data-display="static" href="/projects/new"><svg class="s16"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#plus-square"></use></svg>
<svg class="caret-down"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-down"></use></svg>
</a><div class="dropdown-menu dropdown-menu-right">
<ul>
<li class="dropdown-bold-header">
This project
</li>
<li><a href="/Savage/Savage/issues/new">New issue</a></li>
<li class="divider"></li>
<li class="dropdown-bold-header">GitLab</li>
<li><a class="qa-global-new-project-link" href="/projects/new">New project</a></li>
<li><a href="/groups/new">New group</a></li>
<li><a class="qa-global-new-snippet-link" href="/snippets/new">New snippet</a></li>
</ul>
</div>
</li>
<li class="nav-item d-none d-lg-block m-auto">
<div class="search search-form" data-track-event="activate_form_input" data-track-label="navbar_search" data-track-value="">
<form class="form-inline" action="/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" /><div class="search-input-container">
<div class="search-input-wrap">
<div class="dropdown" data-url="/search/autocomplete">
<input type="search" name="search" id="search" placeholder="Search or jump to…" class="search-input dropdown-menu-toggle no-outline js-search-dashboard-options" spellcheck="false" tabindex="1" autocomplete="off" data-issues-path="/dashboard/issues" data-mr-path="/dashboard/merge_requests" data-qa-selector="search_term_field" aria-label="Search or jump to…" />
<button class="hidden js-dropdown-search-toggle" data-toggle="dropdown" type="button"></button>
<div class="dropdown-menu dropdown-select js-dashboard-search-options">
<div class="dropdown-content"><ul>
<li class="dropdown-menu-empty-item">
<a>
Loading...
</a>
</li>
</ul>
</div><div class="dropdown-loading"><i aria-hidden="true" data-hidden="true" class="fa fa-spinner fa-spin"></i></div>
</div>
<svg class="s16 search-icon"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#search"></use></svg>
<svg class="s16 clear-icon js-clear-input"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#close"></use></svg>
</div>
</div>
</div>
<input type="hidden" name="group_id" id="group_id" class="js-search-group-options" />
<input type="hidden" name="project_id" id="search_project_id" value="2568" class="js-search-project-options" data-project-path="Savage" data-name="X3dExamples" data-issues-path="/Savage/Savage/issues" data-mr-path="/Savage/Savage/merge_requests" data-issues-disabled="false" />
<input type="hidden" name="search_code" id="search_code" value="true" />
<input type="hidden" name="repository_ref" id="repository_ref" value="master" />
<input type="hidden" name="nav_source" id="nav_source" value="navbar" />
<div class="search-autocomplete-opts hide" data-autocomplete-path="/search/autocomplete" data-autocomplete-project-id="2568" data-autocomplete-project-ref="master"></div>
</form></div>
</li>
<li class="nav-item d-inline-block d-lg-none">
<a title="Search" aria-label="Search" data-toggle="tooltip" data-placement="bottom" data-container="body" href="/search?project_id=2568"><svg class="s16"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#search"></use></svg>
</a></li>
<li class="user-counter"><a title="Issues" class="dashboard-shortcuts-issues" aria-label="Issues" data-toggle="tooltip" data-placement="bottom" data-container="body" href="/dashboard/issues?assignee_username=t.brennenstuhl.gy"><svg class="s16"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#issues"></use></svg>
<span class="badge badge-pill green-badge hidden issues-count">
0
</span>
</a></li><li class="user-counter"><a title="Merge requests" class="dashboard-shortcuts-merge_requests" aria-label="Merge requests" data-toggle="tooltip" data-placement="bottom" data-container="body" href="/dashboard/merge_requests?assignee_username=t.brennenstuhl.gy"><svg class="s16"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#git-merge"></use></svg>
<span class="badge badge-pill hidden merge-requests-count">
0
</span>
</a></li><li class="user-counter"><a title="To-Do List" aria-label="To-Do List" class="shortcuts-todos" data-toggle="tooltip" data-placement="bottom" data-container="body" href="/dashboard/todos"><svg class="s16"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#todo-done"></use></svg>
<span class="badge badge-pill hidden todos-count">
0
</span>
</a></li><li class="nav-item header-help dropdown d-none d-md-block">
<a class="header-help-dropdown-toggle" data-toggle="dropdown" href="/help"><svg class="s16"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#question"></use></svg>
<svg class="caret-down"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-down"></use></svg>
</a><div class="dropdown-menu dropdown-menu-right">
<ul>
<li>
<a href="/help">Help</a>
</li>
<li>
<a href="https://about.gitlab.com/getting-help/">Support</a>
</li>
<li class="divider"></li>
<li>
<a href="https://about.gitlab.com/submit-feedback">Submit feedback</a>
</li>
<li>
<a target="_blank" class="text-nowrap" href="https://about.gitlab.com/contributing">Contribute to GitLab
</a>
</li>
</ul>
</div>
</li>
<li class="dropdown header-user nav-item" data-qa-selector="user_menu" data-track-event="click_dropdown" data-track-label="profile_dropdown" data-track-value="">
<a class="header-user-dropdown-toggle" data-toggle="dropdown" href="/t.brennenstuhl.gy"><img width="23" height="23" class="header-user-avatar qa-user-avatar lazy" data-src="https://secure.gravatar.com/avatar/05592b2f60588393f75904adc3c7f31f?s=46&amp;d=identicon" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
<svg class="caret-down"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-down"></use></svg>
</a><div class="dropdown-menu dropdown-menu-right">
<ul>
<li class="current-user">
<div class="user-name bold">
Brennenstuhl, Tobias FORNATL, GY
</div>
@t.brennenstuhl.gy
</li>
<li class="divider"></li>
<li>
<div class="js-set-status-modal-trigger" data-has-status="false"></div>
</li>
<li>
<a class="profile-link" data-user="t.brennenstuhl.gy" href="/t.brennenstuhl.gy">Profile</a>
</li>
<li>
<a data-qa-selector="settings_link" href="/profile">Settings</a>
</li>
<li class="divider d-md-none"></li>
<li class="d-md-none">
<a href="/help">Help</a>
</li>
<li class="d-md-none">
<a href="https://about.gitlab.com/getting-help/">Support</a>
</li>
<li class="d-md-none">
<a href="https://about.gitlab.com/submit-feedback">Submit feedback</a>
</li>
<li class="d-md-none">
<a target="_blank" class="text-nowrap" href="https://about.gitlab.com/contributing">Contribute to GitLab
</a>
</li>
<li class="divider"></li>
<li>
<a class="sign-out-link" data-qa-selector="sign_out_link" href="/users/sign_out">Sign out</a>
</li>
</ul>
</div>
</li>
</ul>
</div>
<button class="navbar-toggler d-block d-sm-none" type="button">
<span class="sr-only">Toggle navigation</span>
<svg class="s12 more-icon js-navbar-toggle-right"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#ellipsis_h"></use></svg>
<svg class="s12 close-icon js-navbar-toggle-left"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#close"></use></svg>
</button>
</div>
</div>
</header>
<div class="js-set-status-modal-wrapper" data-current-emoji="" data-current-message=""></div>
<div class="layout-page page-with-contextual-sidebar">
<div class="nav-sidebar">
<div class="nav-sidebar-inner-scroll">
<div class="context-header">
<a title="X3dExamples" href="/Savage/Savage"><div class="avatar-container rect-avatar s40 project-avatar">
<img alt="X3dExamples" class="avatar s40 avatar-tile lazy" width="40" height="40" data-src="/uploads/-/system/project/avatar/2568/x3d2-s.gif" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
</div>
<div class="sidebar-context-title">
X3dExamples
</div>
</a></div>
<ul class="sidebar-top-level-items">
<li class="home"><a class="shortcuts-project rspec-project-link" data-qa-selector="project_link" href="/Savage/Savage"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#home"></use></svg>
</div>
<span class="nav-item-name">
Project overview
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item"><a href="/Savage/Savage"><strong class="fly-out-top-item-name">
Project overview
</strong>
</a></li><li class="divider fly-out-top-item"></li>
<li class=""><a title="Project details" class="shortcuts-project" href="/Savage/Savage"><span>Details</span>
</a></li><li class=""><a title="Activity" class="shortcuts-project-activity" data-qa-selector="activity_link" href="/Savage/Savage/activity"><span>Activity</span>
</a></li><li class=""><a title="Releases" class="shortcuts-project-releases" href="/Savage/Savage/-/releases"><span>Releases</span>
</a></li><li class=""><a title="Cycle Analytics" class="shortcuts-project-cycle-analytics" href="/Savage/Savage/-/cycle_analytics"><span>Cycle Analytics</span>
</a></li>
</ul>
</li><li class="active"><a class="shortcuts-tree qa-project-menu-repo" href="/Savage/Savage/tree/master"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#doc-text"></use></svg>
</div>
<span class="nav-item-name" id="js-onboarding-repo-link">
Repository
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item active"><a href="/Savage/Savage/tree/master"><strong class="fly-out-top-item-name">
Repository
</strong>
</a></li><li class="divider fly-out-top-item"></li>
<li class="active"><a href="/Savage/Savage/tree/master">Files
</a></li><li class=""><a id="js-onboarding-commits-link" href="/Savage/Savage/commits/master">Commits
</a></li><li class=""><a class="qa-branches-link" id="js-onboarding-branches-link" href="/Savage/Savage/-/branches">Branches
</a></li><li class=""><a href="/Savage/Savage/-/tags">Tags
</a></li><li class=""><a href="/Savage/Savage/-/graphs/master">Contributors
</a></li><li class=""><a href="/Savage/Savage/-/network/master">Graph
</a></li><li class=""><a href="/Savage/Savage/compare?from=master&amp;to=master">Compare
</a></li><li class=""><a href="/Savage/Savage/-/graphs/master/charts">Charts
</a></li>
</ul>
</li><li class=""><a class="shortcuts-issues qa-issues-item" href="/Savage/Savage/issues"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#issues"></use></svg>
</div>
<span class="nav-item-name" id="js-onboarding-issues-link">
Issues
</span>
<span class="badge badge-pill count issue_counter">
0
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item"><a href="/Savage/Savage/issues"><strong class="fly-out-top-item-name">
Issues
</strong>
<span class="badge badge-pill count issue_counter fly-out-badge">
0
</span>
</a></li><li class="divider fly-out-top-item"></li>
<li class=""><a title="Issues" href="/Savage/Savage/issues"><span>
List
</span>
</a></li><li class=""><a title="Boards" data-qa-selector="issue_boards_link" href="/Savage/Savage/-/boards"><span>
Boards
</span>
</a></li><li class=""><a title="Labels" class="qa-labels-link" href="/Savage/Savage/-/labels"><span>
Labels
</span>
</a></li>
<li class=""><a title="Milestones" class="qa-milestones-link" href="/Savage/Savage/-/milestones"><span>
Milestones
</span>
</a></li></ul>
</li><li class=""><a class="shortcuts-merge_requests" data-qa-selector="merge_requests_link" href="/Savage/Savage/merge_requests"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#git-merge"></use></svg>
</div>
<span class="nav-item-name" id="js-onboarding-mr-link">
Merge Requests
</span>
<span class="badge badge-pill count merge_counter js-merge-counter">
0
</span>
</a><ul class="sidebar-sub-level-items is-fly-out-only">
<li class="fly-out-top-item"><a href="/Savage/Savage/merge_requests"><strong class="fly-out-top-item-name">
Merge Requests
</strong>
<span class="badge badge-pill count merge_counter js-merge-counter fly-out-badge">
0
</span>
</a></li></ul>
</li><li class=""><a class="shortcuts-pipelines qa-link-pipelines rspec-link-pipelines" data-qa-selector="ci_cd_link" href="/Savage/Savage/pipelines"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#rocket"></use></svg>
</div>
<span class="nav-item-name" id="js-onboarding-pipelines-link">
CI / CD
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item"><a href="/Savage/Savage/pipelines"><strong class="fly-out-top-item-name">
CI / CD
</strong>
</a></li><li class="divider fly-out-top-item"></li>
<li class=""><a title="Pipelines" class="shortcuts-pipelines" href="/Savage/Savage/pipelines"><span>
Pipelines
</span>
</a></li><li class=""><a title="Jobs" class="shortcuts-builds" href="/Savage/Savage/-/jobs"><span>
Jobs
</span>
</a></li><li class=""><a title="Schedules" class="shortcuts-builds" href="/Savage/Savage/pipeline_schedules"><span>
Schedules
</span>
</a></li><li class=""><a title="Charts" class="shortcuts-pipelines-charts" href="/Savage/Savage/pipelines/charts"><span>
Charts
</span>
</a></li></ul>
</li>
<li class=""><a href="/Savage/Savage/container_registry"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#package"></use></svg>
</div>
<span class="nav-item-name">
Packages
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item"><a href="/Savage/Savage/container_registry"><strong class="fly-out-top-item-name">
Packages
</strong>
</a></li><li class="divider fly-out-top-item"></li>
<li class=""><a class="shortcuts-container-registry" title="Container Registry" href="/Savage/Savage/container_registry"><span>Container Registry</span>
</a></li></ul>
</li>
<li class=""><a class="shortcuts-wiki" data-qa-selector="wiki_link" href="/Savage/Savage/-/wikis/home"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#book"></use></svg>
</div>
<span class="nav-item-name">
Wiki
</span>
</a><ul class="sidebar-sub-level-items is-fly-out-only">
<li class="fly-out-top-item"><a href="/Savage/Savage/-/wikis/home"><strong class="fly-out-top-item-name">
Wiki
</strong>
</a></li></ul>
</li><li class=""><a class="shortcuts-snippets" href="/Savage/Savage/snippets"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#snippet"></use></svg>
</div>
<span class="nav-item-name">
Snippets
</span>
</a><ul class="sidebar-sub-level-items is-fly-out-only">
<li class="fly-out-top-item"><a href="/Savage/Savage/snippets"><strong class="fly-out-top-item-name">
Snippets
</strong>
</a></li></ul>
</li><li class=""><a title="Members" class="shortcuts-tree" href="/Savage/Savage/-/settings/members"><div class="nav-icon-container">
<svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#users"></use></svg>
</div>
<span class="nav-item-name">
Members
</span>
</a><ul class="sidebar-sub-level-items is-fly-out-only">
<li class="fly-out-top-item"><a href="/Savage/Savage/-/project_members"><strong class="fly-out-top-item-name">
Members
</strong>
</a></li></ul>
</li><a class="toggle-sidebar-button js-toggle-sidebar qa-toggle-sidebar rspec-toggle-sidebar" role="button" title="Toggle sidebar" type="button">
<svg class="icon-angle-double-left"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-double-left"></use></svg>
<svg class="icon-angle-double-right"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-double-right"></use></svg>
<span class="collapse-text">Collapse sidebar</span>
</a>
<button name="button" type="button" class="close-nav-button"><svg class="s16"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#close"></use></svg>
<span class="collapse-text">Close sidebar</span>
</button>
<li class="hidden">
<a title="Activity" class="shortcuts-project-activity" href="/Savage/Savage/activity"><span>
Activity
</span>
</a></li>
<li class="hidden">
<a title="Network" class="shortcuts-network" href="/Savage/Savage/-/network/master">Graph
</a></li>
<li class="hidden">
<a title="Charts" class="shortcuts-repository-charts" href="/Savage/Savage/-/graphs/master/charts">Charts
</a></li>
<li class="hidden">
<a class="shortcuts-new-issue" href="/Savage/Savage/issues/new">Create a new issue
</a></li>
<li class="hidden">
<a title="Jobs" class="shortcuts-builds" href="/Savage/Savage/-/jobs">Jobs
</a></li>
<li class="hidden">
<a title="Commits" class="shortcuts-commits" href="/Savage/Savage/commits/master">Commits
</a></li>
<li class="hidden">
<a title="Issue Boards" class="shortcuts-issue-boards" href="/Savage/Savage/-/boards">Issue Boards</a>
</li>
</ul>
</div>
</div>
<div class="content-wrapper">
<div class="mobile-overlay"></div>
<div class="alert-wrapper">
<nav class="breadcrumbs container-fluid container-limited" role="navigation">
<div class="breadcrumbs-container">
<button name="button" type="button" class="toggle-mobile-nav"><span class="sr-only">Open sidebar</span>
<i aria-hidden="true" data-hidden="true" class="fa fa-bars"></i>
</button><div class="breadcrumbs-links js-title-container">
<ul class="list-unstyled breadcrumbs-list js-breadcrumbs-list">
<li><a class="group-path breadcrumb-item-text js-breadcrumb-item-text " href="/Savage"><img class="avatar-tile lazy" width="15" height="15" data-src="/uploads/-/system/group/avatar/501/SavageLogoSmall.png" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />Savage</a><svg class="s8 breadcrumbs-list-angle"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-right"></use></svg></li> <li><a href="/Savage/Savage"><img alt="X3dExamples" class="avatar-tile lazy" width="15" height="15" data-src="/uploads/-/system/project/avatar/2568/x3d2-s.gif" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /><span class="breadcrumb-item-text js-breadcrumb-item-text">X3dExamples</span></a><svg class="s8 breadcrumbs-list-angle"><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#angle-right"></use></svg></li>
<li>
<h2 class="breadcrumbs-sub-title"><a href="/Savage/Savage/blob/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d">Repository</a></h2>
</li>
</ul>
</div>
</div>
</nav>
<div class="d-flex"></div>
</div>
<div class="container-fluid container-limited ">
<div class="content" id="content-body">
<div class="flash-container flash-container-page sticky">
</div>
<div class="js-signature-container" data-signatures-path="/Savage/Savage/commits/d442957f26ef7027dd839f6e40d252744e0bd26b/signatures?limit=1"></div>
<div class="tree-holder" id="tree-holder">
<div class="nav-block">
<div class="tree-ref-container">
<div class="tree-ref-holder">
<form class="project-refs-form" action="/Savage/Savage/refs/switch" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="destination" id="destination" value="blob" />
<input type="hidden" name="path" id="path" value="CommunicationsAndSensors/Beam/BeamConePrototype.x3d" />
<div class="dropdown">
<button class="dropdown-menu-toggle js-project-refs-dropdown qa-branches-select" type="button" data-toggle="dropdown" data-selected="master" data-ref="master" data-refs-url="/Savage/Savage/refs?sort=updated_desc" data-field-name="ref" data-submit-form-on-click="true" data-visit="true"><span class="dropdown-toggle-text ">master</span><i aria-hidden="true" data-hidden="true" class="fa fa-chevron-down"></i></button>
<div class="dropdown-menu dropdown-menu-paging dropdown-menu-selectable git-revision-dropdown qa-branches-dropdown">
<div class="dropdown-page-one">
<div class="dropdown-title"><span>Switch branch/tag</span><button class="dropdown-title-button dropdown-menu-close" aria-label="Close" type="button"><i aria-hidden="true" data-hidden="true" class="fa fa-times dropdown-menu-close-icon"></i></button></div>
<div class="dropdown-input"><input type="search" id="" class="dropdown-input-field qa-dropdown-input-field" placeholder="Search branches and tags" autocomplete="off" /><i aria-hidden="true" data-hidden="true" class="fa fa-search dropdown-input-search"></i><i aria-hidden="true" data-hidden="true" role="button" class="fa fa-times dropdown-input-clear js-dropdown-input-clear"></i></div>
<div class="dropdown-content"></div>
<div class="dropdown-loading"><i aria-hidden="true" data-hidden="true" class="fa fa-spinner fa-spin"></i></div>
</div>
</div>
</div>
</form>
</div>
<ul class="breadcrumb repo-breadcrumb">
<li class="breadcrumb-item">
<a href="/Savage/Savage/tree/master">Savage
</a></li>
<li class="breadcrumb-item">
<a href="/Savage/Savage/tree/master/CommunicationsAndSensors">CommunicationsAndSensors</a>
</li>
<li class="breadcrumb-item">
<a href="/Savage/Savage/tree/master/CommunicationsAndSensors/Beam">Beam</a>
</li>
<li class="breadcrumb-item">
<a href="/Savage/Savage/blob/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d"><strong>BeamConePrototype.x3d</strong>
</a></li>
</ul>
</div>
<div class="tree-controls"><a class="btn shortcuts-find-file" rel="nofollow" href="/Savage/Savage/find_file/master"><i aria-hidden="true" data-hidden="true" class="fa fa-search"></i>
<span>Find file</span>
</a><a class="btn js-blob-blame-link" href="/Savage/Savage/blame/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d">Blame</a><a class="btn" href="/Savage/Savage/commits/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d">History</a><a class="btn js-data-file-blob-permalink-url" href="/Savage/Savage/blob/c5f806541d5ac920cb7c3b76f50a3efd111baeeb/CommunicationsAndSensors/Beam/BeamConePrototype.x3d">Permalink</a></div>
</div>
<div class="info-well d-none d-sm-block">
<div class="well-segment">
<ul class="blob-commit-info">
<li class="commit flex-row js-toggle-container" id="commit-d442957f">
<div class="avatar-cell d-none d-sm-block">
<a href="mailto:brutzman@DESKTOP-2S09UKA"><img alt="brutzman&#39;s avatar" src="https://secure.gravatar.com/avatar/e69e082c4bc137307e632268429cf8e1?s=80&amp;d=identicon" class="avatar s40 d-none d-sm-inline-block" title="brutzman" /></a>
</div>
<div class="commit-detail flex-list">
<div class="commit-content qa-commit-content">
<a class="commit-row-message item-title js-onboarding-commit-item" href="/Savage/Savage/commit/d442957f26ef7027dd839f6e40d252744e0bd26b">restore </a><a href="http://www.web3d.org" rel="nofollow noreferrer noopener" target="_blank">http://www.web3d.org</a><a class="commit-row-message item-title js-onboarding-commit-item" href="/Savage/Savage/commit/d442957f26ef7027dd839f6e40d252744e0bd26b"> for DTD, schema entries</a>
<span class="commit-row-message d-inline d-sm-none">
&middot;
d442957f
</span>
<div class="committer">
<a class="commit-author-link" href="mailto:brutzman@DESKTOP-2S09UKA">brutzman</a> authored <time class="js-timeago" title="Nov 26, 2019 12:34pm" datetime="2019-11-26T12:34:18Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Nov 26, 2019</time>
</div>
</div>
<div class="commit-actions flex-row">
<div class="js-commit-pipeline-status" data-endpoint="/Savage/Savage/commit/d442957f26ef7027dd839f6e40d252744e0bd26b/pipelines?ref=master"></div>
<div class="commit-sha-group d-none d-sm-flex">
<div class="label label-monospace monospace">
d442957f
</div>
<button class="btn btn btn-default" data-toggle="tooltip" data-placement="bottom" data-container="body" data-title="Copy commit SHA" data-class="btn btn-default" data-clipboard-text="d442957f26ef7027dd839f6e40d252744e0bd26b" type="button" title="Copy commit SHA" aria-label="Copy commit SHA"><svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#duplicate"></use></svg></button>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="blob-content-holder" id="blob-content-holder">
<article class="file-holder">
<div class="js-file-title file-title-flex-parent">
<div class="file-header-content">
<i aria-hidden="true" data-hidden="true" class="fa fa-file-text-o fa-fw"></i>
<strong class="file-title-name qa-file-title-name">
BeamConePrototype.x3d
</strong>
<button class="btn btn-clipboard btn-transparent" data-toggle="tooltip" data-placement="bottom" data-container="body" data-class="btn-clipboard btn-transparent" data-title="Copy file path" data-clipboard-text="{&quot;text&quot;:&quot;CommunicationsAndSensors/Beam/BeamConePrototype.x3d&quot;,&quot;gfm&quot;:&quot;`CommunicationsAndSensors/Beam/BeamConePrototype.x3d`&quot;}" type="button" title="Copy file path" aria-label="Copy file path"><svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#duplicate"></use></svg></button>
<small class="mr-1">
11.4 KB
</small>
</div>
<div class="file-actions">
<div class="btn-group" role="group"><button name="button" type="submit" class="btn btn-primary js-edit-blob js-edit-blob-link-fork-toggler" data-action="edit" data-fork-path="/Savage/Savage/-/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&amp;continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&amp;continue%5Bto%5D=%2FSavage%2FSavage%2Fedit%2Fmaster%2FCommunicationsAndSensors%2FBeam%2FBeamConePrototype.x3d&amp;namespace_key=942">Edit</button><button name="button" type="submit" class="btn btn-inverted btn-primary ide-edit-button js-edit-blob-link-fork-toggler" data-action="edit" data-fork-path="/Savage/Savage/-/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&amp;continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&amp;continue%5Bto%5D=%2F-%2Fide%2Fproject%2Ft.brennenstuhl.gy%2FSavage%2Fedit%2Fmaster%2F-%2FCommunicationsAndSensors%2FBeam%2FBeamConePrototype.x3d&amp;namespace_key=942">Web IDE</button></div>
<div class="btn-group" role="group"><button name="button" type="submit" class="btn btn-default js-edit-blob-link-fork-toggler" data-action="replace" data-fork-path="/Savage/Savage/-/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+replace+this+file+again.&amp;continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&amp;continue%5Bto%5D=%2FSavage%2FSavage%2Fblob%2Fmaster%2FCommunicationsAndSensors%2FBeam%2FBeamConePrototype.x3d&amp;namespace_key=942">Replace</button><button name="button" type="submit" class="btn btn-default js-edit-blob-link-fork-toggler" data-action="delete" data-fork-path="/Savage/Savage/-/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+delete+this+file+again.&amp;continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&amp;continue%5Bto%5D=%2FSavage%2FSavage%2Fblob%2Fmaster%2FCommunicationsAndSensors%2FBeam%2FBeamConePrototype.x3d&amp;namespace_key=942">Delete</button></div>
<div class="btn-group" role="group"><button class="btn btn btn-sm js-copy-blob-source-btn" data-toggle="tooltip" data-placement="bottom" data-container="body" data-class="btn btn-sm js-copy-blob-source-btn" data-title="Copy file contents" data-clipboard-target=".blob-content[data-blob-id=&#39;4796d6314bf2b4b809dc7e09e732a39cba4b2143&#39;]" type="button" title="Copy file contents" aria-label="Copy file contents"><svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#duplicate"></use></svg></button><a class="btn btn-sm has-tooltip" target="_blank" rel="noopener noreferrer" aria-label="Open raw" title="Open raw" data-container="body" href="/Savage/Savage/raw/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d"><svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#doc-code"></use></svg></a><a download="CommunicationsAndSensors/Beam/BeamConePrototype.x3d" class="btn btn-sm has-tooltip" target="_blank" rel="noopener noreferrer" aria-label="Download" title="Download" data-container="body" href="/Savage/Savage/raw/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d?inline=false"><svg><use xlink:href="/assets/icons-e91700f3f1ecff110fc2c35aa62aec8f2aad69d1bfb35844186a11175a79e25f.svg#download"></use></svg></a></div>
</div>
</div>
<div class="js-file-fork-suggestion-section file-fork-suggestion hidden">
<span class="file-fork-suggestion-note">
You're not allowed to
<span class="js-file-fork-suggestion-section-action">
edit
</span>
files in this project directly. Please fork this project,
make your changes there, and submit a merge request.
</span>
<a class="js-fork-suggestion-button btn btn-grouped btn-inverted btn-success" rel="nofollow" data-method="post" href="/Savage/Savage/blob/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d">Fork</a>
<button class="js-cancel-fork-suggestion-button btn btn-grouped" type="button">
Cancel
</button>
</div>
<div class="blob-viewer" data-type="simple" data-url="/Savage/Savage/blob/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d?format=json&amp;viewer=simple">
<div class="text-center prepend-top-default append-bottom-default">
<i aria-hidden="true" aria-label="Loading content…" class="fa fa-spinner fa-spin fa-2x qa-spinner"></i>
</div>
</div>
</article>
</div>
<div class="modal" id="modal-upload-blob">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h3 class="page-title">Replace BeamConePrototype.x3d</h3>
<button aria-label="Close" class="close" data-dismiss="modal" type="button">
<span aria-hidden>&times;</span>
</button>
</div>
<div class="modal-body">
<form class="js-quick-submit js-upload-blob-form" data-method="put" action="/Savage/Savage/update/master/CommunicationsAndSensors/Beam/BeamConePrototype.x3d" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="NTHUAem++8zvzf/vA8VpLApo0tgrbMaOev9Vyypj6c5t3QZBer4PQ9ummEWs7V7HrzLwxpW1QKDBWX+H3sVNng==" /><div class="dropzone">
<div class="dropzone-previews blob-upload-dropzone-previews">
<p class="dz-message light">
Attach a file by drag &amp; drop or <a class="markdown-selector" href="#">click to upload</a>
</p>
</div>
</div>
<br>
<div class="dropzone-alerts alert alert-danger data" style="display:none"></div>
<div class="form-group row commit_message-group">
<label class="col-form-label col-sm-2" for="commit_message-baf21686faaa134db0b1eae985afd2fb">Commit message
</label><div class="col-sm-10">
<div class="commit-message-container">
<div class="max-width-marker"></div>
<textarea name="commit_message" id="commit_message-baf21686faaa134db0b1eae985afd2fb" class="form-control js-commit-message" placeholder="Replace BeamConePrototype.x3d" required="required" rows="3">
Replace BeamConePrototype.x3d</textarea>
</div>
</div>
</div>
<input type="hidden" name="branch_name" id="branch_name" />
<input type="hidden" name="create_merge_request" id="create_merge_request" value="1" />
<input type="hidden" name="original_branch" id="original_branch" value="master" class="js-original-branch" />
<div class="form-actions">
<button name="button" type="button" class="btn btn-success btn-upload-file" id="submit-all"><i aria-hidden="true" data-hidden="true" class="fa fa-spin fa-spinner js-loading-icon hidden"></i>
Replace file
</button><a class="btn btn-cancel" data-dismiss="modal" href="#">Cancel</a>
<div class="inline prepend-left-10">
A new branch will be created in your fork and a new merge request will be started.
</div>
</div>
</form></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "http://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive' version='3.3' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.3.xsd'>
<head>
<meta content='BeamConePrototype.x3d' name='title'/>
<meta content='Don Brutzman' name='creator'/>
<meta content='7 December 2000' name='created'/>
<meta content='26 December 2014' name='modified'/>
<meta content='Produce wireframe or transparent beam cones.' name='description'/>
<meta content='https://savage.nps.edu/Savage/CommunicationsAndSensors/Beam/BeamConePrototype.x3d' name='identifier'/>
<meta content='http://faculty.nps.edu/brutzman/vrtp/demo/auv/BeamConePrototype.x3d' name='reference'/>
<meta content='http://www.web3d.org/WorkingGroups/vrtp/demo/auv/BeamConePrototype.x3d' name='reference'/>
<meta content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit' name='generator'/>
<meta content='../../license.html' name='license'/>
</head>
<Scene>
<NavigationInfo DEF='LockedDownInterface2D' type='"NONE"'/>
<Background skyColor='0 0.3 0.5'/>
<WorldInfo info='"Produce wireframe or transparent beam cones"' title='BeamConeProto'/>
<Viewpoint description='Beam Cone' position='0 0 15'/>
<ProtoDeclare appinfo='Produce wireframe or transparent beam cones. Typical uses include propeller/thruster water flow or line-of-sight sonar/radar/light beams. Negative range values invert base and apex at same relative location. Default: beam with apex at (0 0 0) and base of radius 1 in x-z plane at (1 0 0).' name='BeamCone'>
<ProtoInterface>
<field accessType='initializeOnly' appinfo='BeamCone name aids in node identification and tracing' name='name' type='SFString' value='(unnamed)'/>
<field accessType='inputOnly' appinfo='(communications) is transmitted signal in contact with receiver or (sensor) is a target return detected?' name='contact' type='SFBool'/>
<field accessType='inputOnly' appinfo='distance in meters along x axis' name='range' type='SFFloat'/>
<field accessType='initializeOnly' appinfo='distance in meters used until eventIn range sent' name='defaultRange' type='SFFloat' value='1'/>
<field accessType='initializeOnly' appinfo='whether wireframe beam is drawn' name='wireframe' type='SFBool' value='true'/>
<field accessType='initializeOnly' appinfo='whether solid beam is drawn' name='solid' type='SFBool' value='true'/>
<field accessType='initializeOnly' appinfo='degrees across vertical y axis' name='beamHeightDegrees' type='SFFloat' value='10'/>
<field accessType='initializeOnly' appinfo='degrees across horizontal z axis' name='beamWidthDegrees' type='SFFloat' value='10'/>
<field accessType='initializeOnly' appinfo='rendering color when contact=true' name='contactColor' type='SFColor' value='.8 .1 .1'/>
<field accessType='initializeOnly' appinfo='rendering color when contact=false' name='noContactColor' type='SFColor' value='.3 .5 .5'/>
<field accessType='inputOutput' appinfo='1 = fully transparent wireframe only' name='transparency' type='SFFloat' value='0'/>
<field accessType='initializeOnly' appinfo='flag to turn on Script tracing' name='traceEnabled' type='SFBool' value='false'/>
<!-- BEAM_CONTROL beam scaling is controlled by range/beamHeightDegrees/beamWidthDegrees/direction inputs -->
</ProtoInterface>
<ProtoBody>
<Transform DEF='BEAM_CONTROL'>
<Switch DEF='WIREFRAME_SWITCH' whichChoice='0'>
<WorldInfo info='"initial choice is null node (WorldInfo), meaning no wireframe beam"'/>
<Shape>
<Appearance>
<Material DEF='WIRE_COLOR' diffuseColor='.1 .1 .1'>
<IS>
<connect nodeField='transparency' protoField='transparency'/>
</IS>
</Material>
</Appearance>
<IndexedLineSet coordIndex='0 13 -1 1 2 3 4 5 6 7 8 9 10 11 12 1 -1 0 1 -1 0 2 -1 0 3 -1 0 4 -1 0 5 -1 0 6 -1 0 7 -1 0 8 -1 0 9 -1 0 10 -1 0 11 -1 0 12 -1'>
<Coordinate point='0 0 0 1 1 0 1 0.86 0.50 1 0.50 0.86 1 0 1.0 1 -0.50 0.86 1 -0.86 0.50 1 -1 0 1 -0.86 -0.50 1 -0.50 -0.86 1 0 -1.0 1 0.50 -0.86 1 0.86 -0.50 1 0 0'/>
</IndexedLineSet>
</Shape>
</Switch>
<Switch DEF='SOLID_SWITCH' whichChoice='0'>
<WorldInfo info='"initial choice is null node (WorldInfo), meaning no solid beam"'/>
<Transform rotation='0 0 1 1.57079' translation='.5 0 0'>
<Shape>
<Appearance>
<Material DEF='CONE_COLOR' diffuseColor='.1 .1 .1'>
<IS>
<connect nodeField='transparency' protoField='transparency'/>
</IS>
</Material>
</Appearance>
<!-- solid='false' is harder to recognize properly, use default solid='true' -->
<Cone bottom='false' height='1'/>
</Shape>
</Transform>
</Switch>
</Transform>
<!-- Non-renderable animation controls -->
<Script DEF='DETECTION'>
<field accessType='initializeOnly' appinfo='BeamCone name aids tracing' name='name' type='SFString'/>
<field accessType='inputOnly' name='contact' type='SFBool'/>
<field accessType='initializeOnly' name='wireframe' type='SFBool'/>
<field accessType='initializeOnly' name='solid' type='SFBool'/>
<field accessType='initializeOnly' name='contactColor' type='SFColor'/>
<field accessType='initializeOnly' name='noContactColor' type='SFColor'/>
<field accessType='outputOnly' name='beamColor' type='SFColor'/>
<field accessType='outputOnly' name='wireframeChoice' type='SFInt32'/>
<field accessType='outputOnly' name='solidChoice' type='SFInt32'/>
<field accessType='initializeOnly' appinfo='internal flag to turn on Script tracing' name='traceEnabled' type='SFBool'/>
<IS>
<connect nodeField='name' protoField='name'/>
<connect nodeField='contact' protoField='contact'/>
<connect nodeField='wireframe' protoField='wireframe'/>
<connect nodeField='solid' protoField='solid'/>
<connect nodeField='contactColor' protoField='contactColor'/>
<connect nodeField='noContactColor' protoField='noContactColor'/>
<connect nodeField='traceEnabled' protoField='traceEnabled'/>
</IS>
<![CDATA[
ecmascript:
function initialize ()
{
beamColor = noContactColor;
if (wireframe == true) wireframeChoice = 1;
if (solid == true) solidChoice = 1;
if (traceEnabled)
{
// Browser.print ('[BeamCone ' + name + '] trace=' + trace + '\n');
Browser.print ('[BeamCone ' + name + '] wireframeChoice=' + wireframeChoice + ', solidChoice=' + solidChoice) + '\n';
Browser.print ('[BeamCone ' + name + '] contactColor=' + contactColor.toString() + ', noContactColor=' + noContactColor.toString() + '\n');
}
}
function contact (newDetect, timeStamp)
{
if (newDetect) beamColor = contactColor;
else beamColor = noContactColor;
if (traceEnabled) Browser.print ('[BeamCone ' + name + '] contact=' + newDetect + ', beamColor=' + beamColor.toString() + '\n');
}
]]>
</Script>
<Script DEF='BEAM_CALCULATE'>
<field accessType='inputOnly' name='range' type='SFFloat'/>
<field accessType='initializeOnly' name='defaultRange' type='SFFloat'/>
<field accessType='initializeOnly' name='beamHeightDegrees' type='SFFloat'/>
<field accessType='initializeOnly' name='beamWidthDegrees' type='SFFloat'/>
<field accessType='outputOnly' name='beamScale' type='SFVec3f'/>
<field accessType='outputOnly' name='direction' type='SFRotation'/>
<field accessType='outputOnly' name='reverseOffset' type='SFVec3f'/>
<IS>
<connect nodeField='range' protoField='range'/>
<connect nodeField='defaultRange' protoField='defaultRange'/>
<connect nodeField='beamHeightDegrees' protoField='beamHeightDegrees'/>
<connect nodeField='beamWidthDegrees' protoField='beamWidthDegrees'/>
</IS>
<![CDATA[
ecmascript:
function initialize () {
// Note that X3D scale factor triplets all equal to zero are not allowed
if (defaultRange == 0) defaultRange = .0001;
if (beamHeightDegrees == 0) beamHeightDegrees = .0001;
if (beamWidthDegrees == 0) beamWidthDegrees = .0001;
beamHeightFactor= Math.sin ((beamHeightDegrees * 3.141592653 / 180.0) / 2.0);
beamWidthFactor = Math.sin ((beamWidthDegrees * 3.141592653 / 180.0) / 2.0);
beamScale = new SFVec3f ( defaultRange, defaultRange * beamHeightFactor, defaultRange * beamWidthFactor);
}
function range (newRange, timeStamp) {
beamHeightFactor= Math.sin ((beamHeightDegrees * 3.141592653 / 180.0) / 2.0);
beamWidthFactor = Math.sin ((beamWidthDegrees * 3.141592653 / 180.0) / 2.0);
if (newRange < 0)
{
direction = new SFRotation (0, 1, 0, 3.141592653);
reverseOffset = new SFVec3f (- newRange, 0, 0);
beamScale = new SFVec3f (-newRange, -newRange * beamHeightFactor, -newRange * beamWidthFactor);
}
else if (newRange == 0)
{
direction = new SFRotation (0, 1, 0, 0);
reverseOffset = new SFVec3f (0, 0, 0);
beamScale = new SFVec3f ( .0001, .0001, .0001 );
}
else
{
direction = new SFRotation (0, 1, 0, 0);
reverseOffset = new SFVec3f (0, 0, 0);
beamScale = new SFVec3f (newRange, newRange * beamHeightFactor, newRange * beamWidthFactor);
}
}
]]>
</Script>
<ROUTE fromField='beamColor' fromNode='DETECTION' toField='emissiveColor' toNode='WIRE_COLOR'/>
<ROUTE fromField='beamColor' fromNode='DETECTION' toField='emissiveColor' toNode='CONE_COLOR'/>
<ROUTE fromField='wireframeChoice' fromNode='DETECTION' toField='whichChoice' toNode='WIREFRAME_SWITCH'/>
<ROUTE fromField='solidChoice' fromNode='DETECTION' toField='whichChoice' toNode='SOLID_SWITCH'/>
<ROUTE fromField='beamScale' fromNode='BEAM_CALCULATE' toField='scale' toNode='BEAM_CONTROL'/>
<ROUTE fromField='direction' fromNode='BEAM_CALCULATE' toField='rotation' toNode='BEAM_CONTROL'/>
<ROUTE fromField='reverseOffset' fromNode='BEAM_CALCULATE' toField='translation' toNode='BEAM_CONTROL'/>
</ProtoBody>
</ProtoDeclare>
<!-- Viewable geometry for this scene is anchored text that links to an example showing ExternProtoDeclare usage of BeamCone -->
<Anchor description='Beam Cone Example' url='"BeamConeExample.x3d" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Beam/BeamConeExample.x3d" "BeamConeExample.wrl" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Beam/BeamConeExample.wrl"'>
<Shape>
<Appearance>
<Material diffuseColor='0 1 1' emissiveColor='0 1 1'/>
</Appearance>
<Text string='"BeamConePrototype" "is a Prototype definition file." "" "To see an example scene" "click this text and view" "BeamConeExample."'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
</Shape>
<Shape>
<!-- transparent Box as text-selection assist -->
<Box size='11 6 .001'/>
<Appearance>
<Material transparency='1'/>
</Appearance>
</Shape>
</Anchor>
</Scene>
</X3D>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment