xrfragment-haxe/src/3rd/js/three/xrf/dynamic/index.js

24 lines
868 B
JavaScript
Raw Normal View History

2023-10-27 16:55:48 +02:00
xrf.frag.defaultPredefinedViews = (opts) => {
let {scene,model} = opts;
2023-10-27 16:55:48 +02:00
scene.traverse( (n) => {
if( n.userData && n.userData['#'] ){
let frag = xrf.URI.parse( n.userData['#'] )
2023-11-02 21:23:35 +01:00
xrf.hashbus.pub( n.userData['#'] ) // evaluate static XR fragments
xrf.hashbus.pub.XRWG({frag,model,scene}) // evaluate dynamic XR fragment using XRWG (see spec)
}
2023-10-27 16:55:48 +02:00
})
}
// react to enduser typing url
xrf.addEventListener('hash', (opts) => {
2023-10-25 17:32:19 +02:00
let frag = xrf.URI.parse( opts.hash )
2023-10-27 16:55:48 +02:00
xrf.hashbus.pub.XRWG({frag,scene:xrf.scene})
})
// clicking href url with predefined view
xrf.addEventListener('href', (opts) => {
if( !opts.click || opts.xrf.string[0] != '#' ) return
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.METADATA )
2023-10-27 16:55:48 +02:00
xrf.hashbus.pub.XRWG({frag,scene:xrf.scene,href:opts.xrf})
})