diff --git a/index.html b/index.html index 88ded25..51b19d5 100644 --- a/index.html +++ b/index.html @@ -252,7 +252,7 @@ document.querySelector("#immersbundle").addEventListener('load',(event) => { immersClient = document.querySelector("immers-hud").immersClient document.querySelector('immers-hud').immersClient.sendModel = async function sendModel (name, glb, privacy, icon, to = []) { return this.activities.model(name, glb, icon, to, privacy) - } + } // shim until API update document.querySelector("immers-hud").setAttribute("access-role", "modFull") document.querySelector("immers-hud").immersClient.addEventListener("immers-client-connected", _ => { //immersClient.addEventListener("immers-client-new-message", e => addNewNote(e.detail.message.messageHTML) ) @@ -260,7 +260,8 @@ document.querySelector("#immersbundle").addEventListener('load',(event) => { if (e.detail.message.type == "chat"){ let msg = ( await immersClient.activities.getObject( e.detail.message.id )) if (msg.object.context.location ) - addNewNote( e.detail.message.messageHTML ,msg.object.context.location.position ) + addNewNote( e.detail.message.messageHTML, msg.object.context.location.position , + "0.1 0.1 0.1", null, "immerschat", "true", msg.object.context.location.rotation ) else addNewNote( e.detail.message.messageHTML ) // could hook on pinchended @@ -999,7 +1000,10 @@ AFRAME.registerComponent('pinchprimary', { // currently only 1 hand, the right o if (selectedElement){ let content = selectedElement.getAttribute("value") if (content && immersClient && immersClient.connected){ - immersClient.place.location = { position: AFRAME.utils.coordinates.stringify(event.detail.position), rotation: "0 0 0" }; + immersClient.place.location = { + position: AFRAME.utils.coordinates.stringify(event.detail.position), + rotation: AFRAME.utils.coordinates.stringify( selectedElement.getAttribute("rotation") ) + }; immersClient.sendChatMessage(content, "public"); } selectedElements.push({element:selectedElement, timestamp:Date.now(), primary:true}) @@ -1235,7 +1239,7 @@ AFRAME.registerComponent('hud', { } }) -function addNewNote( text, position=`-0.2 1.1 -0.1`, scale= "0.1 0.1 0.1", id=null, classes=null, visible="true" ){ +function addNewNote( text, position=`-0.2 1.1 -0.1`, scale= "0.1 0.1 0.1", id=null, classes=null, visible="true", rotation="0 0 0" ){ var newnote = document.createElement("a-troika-text") newnote.setAttribute("anchor", "left" ) newnote.setAttribute("outline-width", "5%" ) @@ -1255,6 +1259,7 @@ function addNewNote( text, position=`-0.2 1.1 -0.1`, scale= "0.1 0.1 0.1", id=nu newnote.setAttribute("value", text ) //newnote.setAttribute("font", "sw-test/Roboto-msdf.json") newnote.setAttribute("position", position) + newnote.setAttribute("rotation", rotation) newnote.setAttribute("scale", scale) AFRAME.scenes[0].appendChild( newnote ) targets.push(newnote) @@ -1803,6 +1808,18 @@ function addPageFromURL(url){ return el } +function getModelsFromWebDAV(){ + const webdavurl = "https://webdav.benetou.fr"; + const client = window.WebDAV.createClient(webdavurl) + async function getDirectory(path = "/"){ return await client.getDirectoryContents(path); } + getDirectory("models").then( d => d.sort( (a,b) => (a.filename>b.filename)).slice(0,10).map( (c,i) => addModelFromURL(webdavurl+c.filename))) +} + +function addModelFromURL(url){ + return addNewNote("jxr lg "+url+ " 0.001", -Math.random()+" "+Math.random()*3 + " -1") + // should try boxing it instead in 1m3 +} + // same principle to go from nextPage() to openingLinkedPages() from wiki URL // consider screenstack, could add a note to mode further