diff --git a/dist/xrfragment.aframe.js b/dist/xrfragment.aframe.js index 9c6bba3..226c4dc 100644 --- a/dist/xrfragment.aframe.js +++ b/dist/xrfragment.aframe.js @@ -1337,11 +1337,12 @@ xrf.frag.rot = function(v, opts){ xrf.frag.src = function(v, opts){ opts.embedded = v // indicate embedded XR fragment let { mesh, model, camera, scene, renderer, THREE} = opts - let src = new THREE.Group() - if( v.string[0] == "#" ){ // local - console.log(" └ instancing src") - let frag = xrfragment.URI.parse(v.string) + console.log(" └ instancing src") + let src = new THREE.Group() + let frag = xrfragment.URI.parse(v.string) + + const localSRC = () => { // apply embedded XR fragments setTimeout( () => { @@ -1370,6 +1371,25 @@ xrf.frag.src = function(v, opts){ if( !opts.recursive ) mesh.material.visible = false // lets hide the preview object because deleting disables animations+nested objs },10) } + + const externalSRC = () => { + debugger + console.log("external !") + console.dir(v) + console.dir(frag) + //// apply URI XR Fragments inside src-value + //for( var i in frag ){ + // xrf.eval.fragment(i, Object.assign(opts,{frag, model,scene})) + //} + //let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url) + //const Loader = xrf.loaders[ext] + //if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext + //loader = loader || new Loader().setPath( dir ) + + } + + if( v.string[0] == "#" ) localSRC() // local + else externalSRC() } window.AFRAME.registerComponent('xrf', { schema: { diff --git a/dist/xrfragment.three.js b/dist/xrfragment.three.js index c7052f6..10f8932 100644 --- a/dist/xrfragment.three.js +++ b/dist/xrfragment.three.js @@ -1337,11 +1337,12 @@ xrf.frag.rot = function(v, opts){ xrf.frag.src = function(v, opts){ opts.embedded = v // indicate embedded XR fragment let { mesh, model, camera, scene, renderer, THREE} = opts - let src = new THREE.Group() - if( v.string[0] == "#" ){ // local - console.log(" └ instancing src") - let frag = xrfragment.URI.parse(v.string) + console.log(" └ instancing src") + let src = new THREE.Group() + let frag = xrfragment.URI.parse(v.string) + + const localSRC = () => { // apply embedded XR fragments setTimeout( () => { @@ -1370,4 +1371,23 @@ xrf.frag.src = function(v, opts){ if( !opts.recursive ) mesh.material.visible = false // lets hide the preview object because deleting disables animations+nested objs },10) } + + const externalSRC = () => { + debugger + console.log("external !") + console.dir(v) + console.dir(frag) + //// apply URI XR Fragments inside src-value + //for( var i in frag ){ + // xrf.eval.fragment(i, Object.assign(opts,{frag, model,scene})) + //} + //let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url) + //const Loader = xrf.loaders[ext] + //if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext + //loader = loader || new Loader().setPath( dir ) + + } + + if( v.string[0] == "#" ) localSRC() // local + else externalSRC() } diff --git a/dist/xrfragment.three.module.js b/dist/xrfragment.three.module.js index 8e1da3b..3a8bb48 100644 --- a/dist/xrfragment.three.module.js +++ b/dist/xrfragment.three.module.js @@ -1337,11 +1337,12 @@ xrf.frag.rot = function(v, opts){ xrf.frag.src = function(v, opts){ opts.embedded = v // indicate embedded XR fragment let { mesh, model, camera, scene, renderer, THREE} = opts - let src = new THREE.Group() - if( v.string[0] == "#" ){ // local - console.log(" └ instancing src") - let frag = xrfragment.URI.parse(v.string) + console.log(" └ instancing src") + let src = new THREE.Group() + let frag = xrfragment.URI.parse(v.string) + + const localSRC = () => { // apply embedded XR fragments setTimeout( () => { @@ -1370,5 +1371,24 @@ xrf.frag.src = function(v, opts){ if( !opts.recursive ) mesh.material.visible = false // lets hide the preview object because deleting disables animations+nested objs },10) } + + const externalSRC = () => { + debugger + console.log("external !") + console.dir(v) + console.dir(frag) + //// apply URI XR Fragments inside src-value + //for( var i in frag ){ + // xrf.eval.fragment(i, Object.assign(opts,{frag, model,scene})) + //} + //let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url) + //const Loader = xrf.loaders[ext] + //if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext + //loader = loader || new Loader().setPath( dir ) + + } + + if( v.string[0] == "#" ) localSRC() // local + else externalSRC() } export default xrf; diff --git a/example/assets/src.gltf b/example/assets/src.gltf index b1f7ed3..9ed6ce6 100644 --- a/example/assets/src.gltf +++ b/example/assets/src.gltf @@ -677,7 +677,7 @@ 27, 28 ], - "name" : "portal_external", + "name" : "src_external", "rotation" : [ 0, -0.969214141368866, @@ -1259,7 +1259,8 @@ "NORMAL" : 86, "TEXCOORD_0" : 87 }, - "indices" : 88 + "indices" : 88, + "material" : 7 } ] }, diff --git a/src/3rd/js/three/xrf/src.js b/src/3rd/js/three/xrf/src.js index f344d3d..6ac79f5 100644 --- a/src/3rd/js/three/xrf/src.js +++ b/src/3rd/js/three/xrf/src.js @@ -39,7 +39,18 @@ xrf.frag.src = function(v, opts){ } const externalSRC = () => { + debugger + console.log("external !") + console.dir(v) console.dir(frag) + //// apply URI XR Fragments inside src-value + //for( var i in frag ){ + // xrf.eval.fragment(i, Object.assign(opts,{frag, model,scene})) + //} + //let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url) + //const Loader = xrf.loaders[ext] + //if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext + //loader = loader || new Loader().setPath( dir ) }