aframe-babia-components
Version:
A data visualization set of components for A-Frame.
163 lines (142 loc) • 7.54 kB
HTML
<html>
<head>
<meta charset="utf-8">
<title></title>
<meta name="description" content="A BabiaXR example - " />
<script src="https://aframe.io/releases/1.5.0/aframe.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/donmccurdy/aframe-extras@v7.2.0/dist/aframe-extras.min.js"></script>
<script
src="https://unpkg.com/aframe-environment-component@1.3.3/dist/aframe-environment-component.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
<script src="../../dist/aframe-babia-components.js"></script>
<script src="../../components/visualizers/babia-html.js"></script>
<link rel="stylesheet" href="../../assets/gitlab-corner.css">
</head>
<body>
<a-scene xr-mode-ui="XRMode: xr" background="color: #A8F3FF" id="AframeScene">
<!-- <a-entity environment="playArea: 10"></a-entity> -->
<a-light type="point" intensity="1" position="-10 20 30"></a-light>
<!-- scene -->
<a-entity id="htmlDOM" scale="0.3 0.3 0.3" position="-2 2 0" babia-html='renderHTML: true; renderHTMLOnlyLeafs: true; distanceLevels: 0.7; html: <header>
<h1>Website Title</h1>
<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</header>
<main>
<section>
<h2>Main Content</h2>
<article>
<h3>Article Title</h3>
<p>Article content goes here.</p>
</article>
<aside>
<h4>Related Links</h4>
<ul>
<li><a href="#link1">Link 1</a></li>
<li><a href="#link2">Link 2</a></li>
</ul>
</aside>
</section>
</main>
<footer>
<p>© 2024 Website</p>
</footer>'></a-entity>
<!-- buttons -->
<a-entity position="0 3 0">
<!-- RotateX button -->
<a-plane id="rotateX" class="babiaxraycasterclass" position="-1 1 -3" width="1" height="0.5" color="blue"
rotation="0 0 0" text="value: RotateX; color: white; align: center; width: 3;"></a-plane>
<!-- RotateY button -->
<a-plane id="rotateY" class="babiaxraycasterclass" position="0 1 -3" width="1" height="0.5" color="green"
rotation="0 0 0" text="value: RotateY; color: white; align: center; width: 3;"></a-plane>
<!-- RotateZ button -->
<a-plane id="rotateZ" class="babiaxraycasterclass" position="1 1 -3" width="1" height="0.5" color="red"
rotation="0 0 0" text="value: RotateZ; color: white; align: center; width: 3;"></a-plane>
<!-- Collapse button -->
<a-plane id="collapse" class="babiaxraycasterclass" position="-1 0.5 -3" width="1" height="0.5"
color="yellow" rotation="0 0 0"
text="value: Collapse; color: black; align: center; width: 3;"></a-plane>
<!-- Expand button -->
<a-plane id="expand" class="babiaxraycasterclass" position="1 0.5 -3" width="1" height="0.5" color="purple"
rotation="0 0 0" text="value: Expand; color: white; align: center; width: 3;"></a-plane>
</a-entity>
<!-- Controls and Camera -->
<a-entity id="cameraRig" movement-controls="fly: true; speed: 0.1" position="0 1.6 3">
<a-entity id="head" camera babia-camera="raycasterMouse: .babiaxraycasterclass;
raycasterHand: .babiaxraycasterclass" look-controls>
<a-entity></a-entity>
</a-entity>
</a-entity>
</a-scene>
<script>// RotateX button
document.querySelector('#rotateX').addEventListener('click', function () {
let entity = document.querySelector('#htmlDOM');
let rotation = entity.getAttribute('rotation');
entity.setAttribute('rotation', { x: rotation.x + 90, y: rotation.y, z: rotation.z });
});
// RotateY button
document.querySelector('#rotateY').addEventListener('click', function () {
let entity = document.querySelector('#htmlDOM');
let rotation = entity.getAttribute('rotation');
entity.setAttribute('rotation', { x: rotation.x, y: rotation.y + 90, z: rotation.z });
});
// RotateZ button
document.querySelector('#rotateZ').addEventListener('click', function () {
let entity = document.querySelector('#htmlDOM');
let rotation = entity.getAttribute('rotation');
entity.setAttribute('rotation', { x: rotation.x, y: rotation.y, z: rotation.z + 90 });
});
// Collapse button
document.querySelector('#collapse').addEventListener('click', function () {
let entity = document.querySelector('#htmlDOM');
entity.setAttribute('babia-html', 'distanceLevels: 0.01');
});
// Expand button
document.querySelector('#expand').addEventListener('click', function () {
let entity = document.querySelector('#htmlDOM');
entity.setAttribute('babia-html', 'distanceLevels: 0.7');
});
</script>
<!-- GITLAB CORNER-->
<div class="gitlab-corner-wrapper"><a
href="https://gitlab.com/babiaxr/aframe-babia-components/-/blob/master/examples///index.html"
class="gitlab-corner" aria-label="View source on GitLab"><svg id="logo_art" data-name="logo art"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 586 559">
<g id="g44">
<path id="path46" class="cls-1"
d="M461.17,301.83l-18.91-58.12L404.84,128.43a6.47,6.47,0,0,0-12.27,0L355.15,243.64H230.82L193.4,128.43a6.46,6.46,0,0,0-12.26,0L143.78,243.64l-18.91,58.19a12.88,12.88,0,0,0,4.66,14.39L293,435,456.44,316.22a12.9,12.9,0,0,0,4.73-14.39" />
</g>
<g id="g48">
<path id="path50" class="cls-2" d="M293,434.91h0l62.16-191.28H230.87L293,434.91Z" />
</g>
<g id="g56">
<path id="path58" class="cls-1" d="M293,434.91,230.82,243.63h-87L293,434.91Z" />
</g>
<g id="g64">
<path id="path66" class="cls-3"
d="M143.75,243.69h0l-18.91,58.12a12.88,12.88,0,0,0,4.66,14.39L293,435,143.75,243.69Z" />
</g>
<g id="g72">
<path id="path74" class="cls-2"
d="M143.78,243.69h87.11L193.4,128.49a6.47,6.47,0,0,0-12.27,0l-37.35,115.2Z" />
</g>
<g id="g76">
<path id="path78" class="cls-1" d="M293,434.91l62.16-191.28H442.3L293,434.91Z" />
</g>
<g id="g80">
<path id="path82" class="cls-3"
d="M442.24,243.69h0l18.91,58.12a12.85,12.85,0,0,1-4.66,14.39L293,434.91l149.2-191.22Z" />
</g>
<g id="g84">
<path id="path86" class="cls-2"
d="M442.28,243.69h-87.1l37.42-115.2a6.46,6.46,0,0,1,12.26,0l37.42,115.2Z" />
</g>
</svg></a></div>
</body>
</html>