cleanup (pending bug: duplicate non-euclidian different scales
This commit is contained in:
parent
0bbf3ae5e4
commit
969251eb7d
7 changed files with 18 additions and 12 deletions
Binary file not shown.
|
|
@ -39,14 +39,13 @@ window.AFRAME.registerComponent('xrf', {
|
||||||
p.resolve()
|
p.resolve()
|
||||||
AFRAME.fade.out(fastFadeMs)
|
AFRAME.fade.out(fastFadeMs)
|
||||||
}, fastFadeMs)
|
}, fastFadeMs)
|
||||||
}
|
}else if( !isLocal ){
|
||||||
if( !isLocal ){
|
|
||||||
AFRAME.fade.in()
|
AFRAME.fade.in()
|
||||||
setTimeout( () => {
|
setTimeout( () => {
|
||||||
p.resolve()
|
p.resolve()
|
||||||
setTimeout( () => AFRAME.fade.out(), 1000 ) // allow one second to load textures e.g.
|
setTimeout( () => AFRAME.fade.out(), 1000 ) // allow one second to load textures e.g.
|
||||||
}, AFRAME.fade.data.fadetime )
|
}, AFRAME.fade.data.fadetime )
|
||||||
}
|
}else p.resolve()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -81,7 +80,6 @@ window.AFRAME.registerComponent('xrf', {
|
||||||
|
|
||||||
// cleanup xrf-get objects when resetting scene
|
// cleanup xrf-get objects when resetting scene
|
||||||
xrf.addEventListener('reset', (opts) => {
|
xrf.addEventListener('reset', (opts) => {
|
||||||
console.log("aframe reset")
|
|
||||||
let els = [...document.querySelectorAll('[xrf-get]')]
|
let els = [...document.querySelectorAll('[xrf-get]')]
|
||||||
els.map( (el) => document.querySelector('a-scene').removeChild(el) )
|
els.map( (el) => document.querySelector('a-scene').removeChild(el) )
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ xrf.navigator.to = (url,flags,loader,data) => {
|
||||||
setTimeout( () => { // give external objects some slack
|
setTimeout( () => { // give external objects some slack
|
||||||
let frag = hashbus.pub( url, model) // and eval URI XR fragments
|
let frag = hashbus.pub( url, model) // and eval URI XR fragments
|
||||||
hashbus.pub.XRWG({model,scene:model.scene,frag})
|
hashbus.pub.XRWG({model,scene:model.scene,frag})
|
||||||
console.dir(frag)
|
|
||||||
},2000)
|
},2000)
|
||||||
xrf.add( model.scene )
|
xrf.add( model.scene )
|
||||||
xrf.navigator.updateHash(hash)
|
xrf.navigator.updateHash(hash)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,17 @@
|
||||||
/*
|
/*
|
||||||
* TODO: refactor/fix this (queries are being refactored to filters)
|
* TODO: refactor/fix this (queries are being refactored to filters)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
xrf.addEventListener('dynamicKey', (opts) => {
|
||||||
|
let {scene,id,match,v} = opts
|
||||||
|
if( v.filter ){
|
||||||
|
let frags = {}
|
||||||
|
frags[ v.fragment ] = v
|
||||||
|
xrf.filter.scene({frag:frags,scene})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// spec: https://xrfragment.org/#filters
|
// spec: https://xrfragment.org/#filters
|
||||||
xrf.filter = function(query, cb){
|
xrf.filter = function(query, cb){
|
||||||
let result = []
|
let result = []
|
||||||
|
|
@ -14,8 +25,8 @@ xrf.filter.scene = function(opts){
|
||||||
let {scene,frag} = opts
|
let {scene,frag} = opts
|
||||||
|
|
||||||
xrf.filter
|
xrf.filter
|
||||||
.sort(frag) // get (sorted) filters from XR Fragments
|
.sort(frag) // get (sorted) filters from XR Fragments
|
||||||
.process(frag,scene) // show/hide things
|
.process(frag,scene,opts) // show/hide things
|
||||||
|
|
||||||
scene.visible = true // always enable scene
|
scene.visible = true // always enable scene
|
||||||
|
|
||||||
|
|
@ -41,11 +52,12 @@ xrf.filter.process = function(frag,scene,opts){
|
||||||
|
|
||||||
// spec 2: https://xrfragment.org/doc/RFC_XR_Macros.html#embedding-xr-content-using-src
|
// spec 2: https://xrfragment.org/doc/RFC_XR_Macros.html#embedding-xr-content-using-src
|
||||||
// reparent scene based on objectname in case it matches a (non-negating) selector
|
// reparent scene based on objectname in case it matches a (non-negating) selector
|
||||||
if( !firstFilter.value && firstFilter.show === true ){
|
if( opts.reparent && !firstFilter.value && firstFilter.show === true ){
|
||||||
let obj
|
let obj
|
||||||
scene.traverse( (n) => hasName(n, firstFilter.key,firstFilter) && (obj = n) )
|
scene.traverse( (n) => hasName(n, firstFilter.key,firstFilter) && (obj = n) )
|
||||||
if(obj){
|
if(obj){
|
||||||
while( scene.children.length > 0 ) scene.children[0].removeFromParent()
|
while( scene.children.length > 0 ) scene.children[0].removeFromParent()
|
||||||
|
obj.position.set(0,0,0)
|
||||||
scene.add( obj )
|
scene.add( obj )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -108,8 +108,7 @@ xrf.frag.src.scale = function(scene, opts, url){
|
||||||
xrf.frag.src.filterScene = (scene,opts) => {
|
xrf.frag.src.filterScene = (scene,opts) => {
|
||||||
let { mesh, model, camera, renderer, THREE, hashbus, frag} = opts
|
let { mesh, model, camera, renderer, THREE, hashbus, frag} = opts
|
||||||
|
|
||||||
xrf.filter.scene({scene,frag})
|
xrf.filter.scene({scene,frag,reparent:true})
|
||||||
if( scene.children.length == 1 ) scene.children[0].position.set(0,0,0)
|
|
||||||
|
|
||||||
scene.traverse( (m) => {
|
scene.traverse( (m) => {
|
||||||
if( m.userData && (m.userData.src || m.userData.href) ) return ; // prevent infinite recursion
|
if( m.userData && (m.userData.src || m.userData.href) ) return ; // prevent infinite recursion
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,6 @@ let loadAudio = (mimetype) => function(url,opts){
|
||||||
|
|
||||||
if( t.z > 0 ) sound.setLoopEnd( loopEnd )
|
if( t.z > 0 ) sound.setLoopEnd( loopEnd )
|
||||||
if( t.y != undefined ){
|
if( t.y != undefined ){
|
||||||
console.dir({loopStart,t})
|
|
||||||
sound.setLoopStart( loopStart )
|
sound.setLoopStart( loopStart )
|
||||||
sound.offset = loopStart
|
sound.offset = loopStart
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,6 @@ xrf.addEventListener('render', (opts) => {
|
||||||
xrf.addEventListener('dynamicKey', (opts) => {
|
xrf.addEventListener('dynamicKey', (opts) => {
|
||||||
// select active camera if any
|
// select active camera if any
|
||||||
let {id,match,v} = opts
|
let {id,match,v} = opts
|
||||||
console.dir(opts)
|
|
||||||
match.map( (w) => {
|
match.map( (w) => {
|
||||||
w.nodes.map( (node) => {
|
w.nodes.map( (node) => {
|
||||||
if( node.isCamera ){
|
if( node.isCamera ){
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue