This demo works with the mouse as well as with the hands in VR.
setNodeInteractableInVR(findNode("CurvedDisplay"), True)
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8">
<meta name="author" content="Pascal Seifert">
<title>Display</title>
<link rel="stylesheet" type="text/css" href="main.css"/>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<div id="displaycolor">My Display</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8">
<meta name="author" content="Pascal Seifert">
<title>Materials</title>
<link id="light-style" rel="stylesheet" type="text/css" href="light.css"/>
<link id="dark-style" rel="stylesheet" type="text/css" href="main.css"/>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<div class="menu">
<div class="toolbar">
<div class="header">Stylesheet</div>
<div class="switch">
<div id="checkbox-left" onclick="fn12()">
<div id="circle-left"></div>
</div>
<div id="checkbox-right" onclick="fn11()">
<div id="circle-right"></div>
</div>
</div>
</div>
<div class="toolbar">
<div class="header">Tools</div>
<div class="button" onclick="cl1()">
<svg class="icon1"/>Wire
</div>
<div class="button" onclick="cl2()">
<svg class="icon2"/>Clipping
</div>
<div class="button" onclick="cl3()">
<svg class="icon3"/>Ruler
</div>
<div class="button" onclick="cl4()">
<svg class="icon4"/>RayT.
</div>
</div>
<div class="toolbar">
<div class="header">Color</div>
<div class="button" onclick="cl5()">
<img class="png" src="assets/MatPink.png"/>Pink
</div>
<div class="button" onclick="cl6()">
<img class="png" src="assets/MatBlue.png"/>Blue
</div>
<div class="button" onclick="cl7()">
<img class="png" src="assets/MatGreen.png"/>Green
</div>
<div class="button" onclick="cl8()">
<img class="png" src="assets/MatYellow.png"/>Yellow
</div>
</div>
<div class="toolbar">
<div class="header">Screen</div>
<div class="button" onclick="cl9()">
<img class="png" src="assets/BlackScreen.png"/>Black
</div>
<div class="button" onclick="cl10()">
<img class="png" src="assets/WhiteScreen.png"/>White
</div>
</div>
</div>
</body>
</html>
/* Receive python commands from VRED */
/*
function setInnerHtml(id, html) {
const e = document.getElementById(id);
if (e) {
e.innerHTML = html;
return true;
}
return false;
}
*/
/* Tools Functions */
/* Wire Toggle */
function cl1() {
vred.executePython("setWireframe(SWITCH_TOGGLE)");
// example how to call a python command with a return value.
//vred.executePythonCommand("getFov()", function(value) {
// window.alert(value);
//});
};
/* Clipping Toggle */
var cl2 = (function() {
var first = true;
return function() {
first ? fn1() : fn2();
first = !first;
}
})();
function fn1(){
vred.executePython("enableClippingPlane(true)");
};
function fn2(){
vred.executePython("enableClippingPlane(false)");
};
/* Ruler Toggle */
var cl3 = (function() {
var first = true;
return function() {
first ? fn3() : fn4();
first = !first;
}
})();
function fn3(){
vred.executePython("showRuler(true)");
};
function fn4(){
vred.executePython("showRuler(false)");
};
/* Ray Toggle */
var cl4 = (function() {
var first = true;
return function() {
first ? fn5() : fn6();
first = !first;
}
})();
function fn5(){
vred.executePython("toggleRaytracing(true)");
};
function fn6(){
vred.executePython("toggleRaytracing(false)");
};
/* Materials Functions */
/* Switch Material Color */
function cl5() {
vred.executePython("value=setSwitchMaterialChoice('SwitchMaterial', 0)");
};
function cl6() {
vred.executePython("value=setSwitchMaterialChoice('SwitchMaterial', 1)");
};
function cl7() {
vred.executePython("value=setSwitchMaterialChoice('SwitchMaterial', 2)");
};
function cl8() {
vred.executePython("value=setSwitchMaterialChoice('SwitchMaterial', 3)");
};
/* DisplayUI Functions */
/* Screen Color */
function cl9(){
vred.executePython("value=sendToWebEngine('WebEngine_Display', 'Color1', '')");
};
function cl10(){
vred.executePython("value=sendToWebEngine('WebEngine_Display', 'Color2', '')");
};
/* Display EventListener´s Function*/
changecolor1 = function(event){
var fieldNameElement = document.getElementById("displaycolor");
fieldNameElement.style.backgroundColor = '#000000';
fieldNameElement.textContent = "Black Screen";
};
document.addEventListener("Color1", changecolor1);
changecolor2 = function(event){
var fieldNameElement = document.getElementById("displaycolor");
fieldNameElement.style.backgroundColor = '#FFFFFF';
fieldNameElement.textContent = "White Screen";
};
document.addEventListener("Color2", changecolor2);
/*Switch*/
changestyle1 = function(event){
document.getElementById("dark-style").disabled = true;
document.getElementById("light-style").disabled = false;
};
document.addEventListener("Style1", changestyle1);
function fn11(){
document.getElementById("dark-style").disabled = true;
document.getElementById("light-style").disabled = false;
vred.executePython("value=sendToWebEngine('WebEngine_Tools', 'Style1', '')");
};
changestyle2 = function(event){
document.getElementById("dark-style").disabled = false;
document.getElementById("light-style").disabled = true;
};
document.addEventListener("Style2", changestyle2);
function fn12(){
document.getElementById("dark-style").disabled = false;
document.getElementById("light-style").disabled = true;
vred.executePython("value=sendToWebEngine('WebEngine_Tools', 'Style2', '')");
};