diff --git a/index.html b/index.html
index 1739c18..54fbb2f 100644
--- a/index.html
+++ b/index.html
@@ -8,8 +8,9 @@
-
+
+
@@ -218,13 +219,69 @@ AFRAME.registerComponent('web-url', {
}
})
+function sendGlbFromEl(el){
+ const gltfExporter = new THREE.GLTFExporter();
+ const mesh = el.object3D
+
+ const options = {
+ trs: true,
+ onlyVisible: true,
+ truncateDrawRange: false,
+ binary: true,
+ maxTextureSize: Infinity
+ };
+
+ gltfExporter.parse(
+ mesh,
+ function (result) {
+ immersClient.sendModel("testing", new Blob([result]), "public")
+ console.log("sent blob")
+ // worked as https://immers.benetou.fr/s/639cb4171757b8382c120da1 of type model
+ // with glb as URL https://immers.benetou.fr/media/edf5641922e6371abb3118f56cd20b9b
+ },
+ function (error) {
+ console.log('An error happened during parsing', error);
+ },
+ options
+ );
+}
+
var immersClient
// See dedicated issue https://git.benetou.fr/utopiah/text-code-xr-engine/issues/47
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)
+ }
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) )
+ //immersClient.addEventListener("immers-client-new-message", e => addNewNote(e.detail.message.messageHTML) )
+ immersClient.addEventListener("immers-client-new-message", async e => {
+ 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 )
+ else
+ addNewNote( e.detail.message.messageHTML )
+ // could hook on pinchended
+ // immersClient.place.location = { position: "0 1.5 -2", rotation: "0 190 0" };
+ // immersClient.sendChatMessage(textvalue, "public");
+ }
+ if (e.detail.message.type == "media" && e.detail.message.mediaType == "image"){
+ console.log("src", e.detail.message.url)
+ let el = document.createElement("a-box")
+ el.setAttribute("position", -Math.random()+" "+Math.random()*3 + " -1")
+ el.setAttribute("width", ".1")
+ el.setAttribute("height", ".15")
+ el.setAttribute("depth", ".01")
+ el.setAttribute("src", e.detail.message.url.href)
+ AFRAME.scenes[0].appendChild(el)
+ }
+ if (e.detail.message.type == "other"){
+ let msg = ( await immersClient.activities.getObject( e.detail.message.id ))
+ console.log("maybe model, see object.type.model==model", msg )
+ }
+ })
immersClient.friendsList().then( r => {
if (r.length>0) addNewNote( "Friends:", "-1 1.65 -0.5")
r.map( (u,i) => {