work in progress [might break]

This commit is contained in:
Leon van Kammen 2023-05-18 12:39:47 +02:00
parent 4b98936157
commit b8a41ebce0
3 changed files with 12 additions and 9 deletions

View file

@ -854,9 +854,11 @@ xrf.add = (object) => {
xrf.navigator = {} xrf.navigator = {}
xrf.navigator.to = (url,event) => { xrf.navigator.to = (url,event) => {
debugger
return new Promise( (resolve,reject) => { return new Promise( (resolve,reject) => {
console.log("xrfragment: navigating to "+url) console.log("xrfragment: navigating to "+url)
let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url) let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url)
if( xrf.model.file == file ) return resolve(xrf.model) // we're already loaded
if( xrf.model && xrf.model.scene ) xrf.model.scene.visible = false if( xrf.model && xrf.model.scene ) xrf.model.scene.visible = false
const Loader = xrf.loaders[ext] const Loader = xrf.loaders[ext]
if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext
@ -865,11 +867,10 @@ xrf.navigator.to = (url,event) => {
if( dir ) dir = dir[0] == '.' ? dir : `.${dir}` if( dir ) dir = dir[0] == '.' ? dir : `.${dir}`
const loader = new Loader().setPath( dir ) const loader = new Loader().setPath( dir )
loader.load( file, function(model){ loader.load( file, function(model){
model.file = file
xrf.add( model.scene ) xrf.add( model.scene )
xrf.model = model xrf.model = model
// if( event && event.type == "popstate" ){
xrf.navigator.commit( file, hash ) xrf.navigator.commit( file, hash )
// }
resolve(model) resolve(model)
}) })
}) })

View file

@ -854,9 +854,11 @@ xrf.add = (object) => {
xrf.navigator = {} xrf.navigator = {}
xrf.navigator.to = (url,event) => { xrf.navigator.to = (url,event) => {
debugger
return new Promise( (resolve,reject) => { return new Promise( (resolve,reject) => {
console.log("xrfragment: navigating to "+url) console.log("xrfragment: navigating to "+url)
let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url) let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url)
if( xrf.model.file == file ) return resolve(xrf.model) // we're already loaded
if( xrf.model && xrf.model.scene ) xrf.model.scene.visible = false if( xrf.model && xrf.model.scene ) xrf.model.scene.visible = false
const Loader = xrf.loaders[ext] const Loader = xrf.loaders[ext]
if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext
@ -865,11 +867,10 @@ xrf.navigator.to = (url,event) => {
if( dir ) dir = dir[0] == '.' ? dir : `.${dir}` if( dir ) dir = dir[0] == '.' ? dir : `.${dir}`
const loader = new Loader().setPath( dir ) const loader = new Loader().setPath( dir )
loader.load( file, function(model){ loader.load( file, function(model){
model.file = file
xrf.add( model.scene ) xrf.add( model.scene )
xrf.model = model xrf.model = model
// if( event && event.type == "popstate" ){
xrf.navigator.commit( file, hash ) xrf.navigator.commit( file, hash )
// }
resolve(model) resolve(model)
}) })
}) })

View file

@ -1,9 +1,11 @@
xrf.navigator = {} xrf.navigator = {}
xrf.navigator.to = (url,event) => { xrf.navigator.to = (url,event) => {
debugger
return new Promise( (resolve,reject) => { return new Promise( (resolve,reject) => {
console.log("xrfragment: navigating to "+url) console.log("xrfragment: navigating to "+url)
let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url) let {urlObj,dir,file,hash,ext} = xrf.parseUrl(url)
if( xrf.model.file == file ) return resolve(xrf.model) // we're already loaded
if( xrf.model && xrf.model.scene ) xrf.model.scene.visible = false if( xrf.model && xrf.model.scene ) xrf.model.scene.visible = false
const Loader = xrf.loaders[ext] const Loader = xrf.loaders[ext]
if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext if( !Loader ) throw 'xrfragment: no loader passed to xrfragment for extension .'+ext
@ -12,11 +14,10 @@ xrf.navigator.to = (url,event) => {
if( dir ) dir = dir[0] == '.' ? dir : `.${dir}` if( dir ) dir = dir[0] == '.' ? dir : `.${dir}`
const loader = new Loader().setPath( dir ) const loader = new Loader().setPath( dir )
loader.load( file, function(model){ loader.load( file, function(model){
model.file = file
xrf.add( model.scene ) xrf.add( model.scene )
xrf.model = model xrf.model = model
// if( event && event.type == "popstate" ){
xrf.navigator.commit( file, hash ) xrf.navigator.commit( file, hash )
// }
resolve(model) resolve(model)
}) })
}) })