bugfix url update. Todo: reflect pos/rot/pv in url after clicking pv
This commit is contained in:
parent
9a7b3009b0
commit
38c305f13d
6 changed files with 60 additions and 36 deletions
20
dist/xrfragment.aframe.js
vendored
20
dist/xrfragment.aframe.js
vendored
|
|
@ -1118,7 +1118,7 @@ xrf.frag.href = function(v, opts){
|
||||||
xrf
|
xrf
|
||||||
.emit('href',{click:true,mesh,xrf:v}) // let all listeners agree
|
.emit('href',{click:true,mesh,xrf:v}) // let all listeners agree
|
||||||
.then( () => {
|
.then( () => {
|
||||||
if( v.string[0] == '#' ){ // apply modifications to scene
|
if( v.string[0] == '#' && v.string.match(/\|/) ){ // apply modifications to scene
|
||||||
xrf.eval( v.string, xrf.model, xrf.XRF.PV_OVERRIDE )
|
xrf.eval( v.string, xrf.model, xrf.XRF.PV_OVERRIDE )
|
||||||
}else xrf.navigator.to(v.string) // or let's surf to HREF!
|
}else xrf.navigator.to(v.string) // or let's surf to HREF!
|
||||||
})
|
})
|
||||||
|
|
@ -1177,14 +1177,15 @@ xrf.frag.pos = function(v, opts){
|
||||||
const doPredefinedView = (opts) => {
|
const doPredefinedView = (opts) => {
|
||||||
let {frag,scene} = opts
|
let {frag,scene} = opts
|
||||||
|
|
||||||
const selectionOfInterest = (id,scene,mesh) => {
|
const selectionOfInterest = (frag,scene,mesh) => {
|
||||||
|
let id = frag.string
|
||||||
// Selection of Interest if predefined_view matches object name
|
// Selection of Interest if predefined_view matches object name
|
||||||
if( mesh.selection ){
|
if( mesh.selection ){
|
||||||
scene.remove(mesh.selection)
|
scene.remove(mesh.selection)
|
||||||
delete mesh.selection
|
delete mesh.selection
|
||||||
}
|
}
|
||||||
if( id == mesh.name || id.substr(1) == mesh.userData.class ){
|
if( id == mesh.name || id.substr(1) == mesh.userData.class ){
|
||||||
xrf.emit('selection',opts)
|
xrf.emit('selection',{...opts,frag})
|
||||||
.then( () => {
|
.then( () => {
|
||||||
const margin = 1.2
|
const margin = 1.2
|
||||||
mesh.scale.multiplyScalar( margin )
|
mesh.scale.multiplyScalar( margin )
|
||||||
|
|
@ -1204,7 +1205,7 @@ const doPredefinedView = (opts) => {
|
||||||
let frag = xrf.URI.parse( mesh.userData[id], xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
let frag = xrf.URI.parse( mesh.userData[id], xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
||||||
for ( let k in frag ){
|
for ( let k in frag ){
|
||||||
let opts = {frag, model, camera: xrf.camera, scene: xrf.scene, renderer: xrf.renderer, THREE: xrf.THREE }
|
let opts = {frag, model, camera: xrf.camera, scene: xrf.scene, renderer: xrf.renderer, THREE: xrf.THREE }
|
||||||
xrf.emit('predefinedView',opts)
|
xrf.emit('predefinedView',{...opts,frag})
|
||||||
.then( () => xrf.eval.fragment(k,opts) )
|
.then( () => xrf.eval.fragment(k,opts) )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1219,7 +1220,7 @@ const doPredefinedView = (opts) => {
|
||||||
setTimeout( () => {
|
setTimeout( () => {
|
||||||
if( !scene ) return
|
if( !scene ) return
|
||||||
scene.traverse( (mesh) => {
|
scene.traverse( (mesh) => {
|
||||||
selectionOfInterest( v.string, scene, mesh )
|
selectionOfInterest( v, scene, mesh )
|
||||||
predefinedView( v , scene, mesh )
|
predefinedView( v , scene, mesh )
|
||||||
})
|
})
|
||||||
},100)
|
},100)
|
||||||
|
|
@ -1236,6 +1237,13 @@ xrf.addEventListener('href', (opts) => {
|
||||||
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
||||||
doPredefinedView({frag,scene:xrf.scene})
|
doPredefinedView({frag,scene:xrf.scene})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//let updateUrl = (opts) => {
|
||||||
|
// console.dir(opts)
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//xrf.addEventListener('predefinedView', updateUrl )
|
||||||
|
//xrf.addEventListener('selection', updateUrl )
|
||||||
xrf.frag.q = function(v, opts){
|
xrf.frag.q = function(v, opts){
|
||||||
let { frag, mesh, model, camera, scene, renderer, THREE} = opts
|
let { frag, mesh, model, camera, scene, renderer, THREE} = opts
|
||||||
console.log(" └ running query ")
|
console.log(" └ running query ")
|
||||||
|
|
@ -1273,8 +1281,6 @@ xrf.frag.q = function(v, opts){
|
||||||
|
|
||||||
const showHide = () => {
|
const showHide = () => {
|
||||||
let q = frag.q.query
|
let q = frag.q.query
|
||||||
console.log(frag.q.string)
|
|
||||||
console.dir(frag)
|
|
||||||
scene.traverse( (mesh) => {
|
scene.traverse( (mesh) => {
|
||||||
for ( let i in q ) {
|
for ( let i in q ) {
|
||||||
let isMeshId = q[i].id != undefined
|
let isMeshId = q[i].id != undefined
|
||||||
|
|
|
||||||
20
dist/xrfragment.three.js
vendored
20
dist/xrfragment.three.js
vendored
|
|
@ -1118,7 +1118,7 @@ xrf.frag.href = function(v, opts){
|
||||||
xrf
|
xrf
|
||||||
.emit('href',{click:true,mesh,xrf:v}) // let all listeners agree
|
.emit('href',{click:true,mesh,xrf:v}) // let all listeners agree
|
||||||
.then( () => {
|
.then( () => {
|
||||||
if( v.string[0] == '#' ){ // apply modifications to scene
|
if( v.string[0] == '#' && v.string.match(/\|/) ){ // apply modifications to scene
|
||||||
xrf.eval( v.string, xrf.model, xrf.XRF.PV_OVERRIDE )
|
xrf.eval( v.string, xrf.model, xrf.XRF.PV_OVERRIDE )
|
||||||
}else xrf.navigator.to(v.string) // or let's surf to HREF!
|
}else xrf.navigator.to(v.string) // or let's surf to HREF!
|
||||||
})
|
})
|
||||||
|
|
@ -1177,14 +1177,15 @@ xrf.frag.pos = function(v, opts){
|
||||||
const doPredefinedView = (opts) => {
|
const doPredefinedView = (opts) => {
|
||||||
let {frag,scene} = opts
|
let {frag,scene} = opts
|
||||||
|
|
||||||
const selectionOfInterest = (id,scene,mesh) => {
|
const selectionOfInterest = (frag,scene,mesh) => {
|
||||||
|
let id = frag.string
|
||||||
// Selection of Interest if predefined_view matches object name
|
// Selection of Interest if predefined_view matches object name
|
||||||
if( mesh.selection ){
|
if( mesh.selection ){
|
||||||
scene.remove(mesh.selection)
|
scene.remove(mesh.selection)
|
||||||
delete mesh.selection
|
delete mesh.selection
|
||||||
}
|
}
|
||||||
if( id == mesh.name || id.substr(1) == mesh.userData.class ){
|
if( id == mesh.name || id.substr(1) == mesh.userData.class ){
|
||||||
xrf.emit('selection',opts)
|
xrf.emit('selection',{...opts,frag})
|
||||||
.then( () => {
|
.then( () => {
|
||||||
const margin = 1.2
|
const margin = 1.2
|
||||||
mesh.scale.multiplyScalar( margin )
|
mesh.scale.multiplyScalar( margin )
|
||||||
|
|
@ -1204,7 +1205,7 @@ const doPredefinedView = (opts) => {
|
||||||
let frag = xrf.URI.parse( mesh.userData[id], xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
let frag = xrf.URI.parse( mesh.userData[id], xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
||||||
for ( let k in frag ){
|
for ( let k in frag ){
|
||||||
let opts = {frag, model, camera: xrf.camera, scene: xrf.scene, renderer: xrf.renderer, THREE: xrf.THREE }
|
let opts = {frag, model, camera: xrf.camera, scene: xrf.scene, renderer: xrf.renderer, THREE: xrf.THREE }
|
||||||
xrf.emit('predefinedView',opts)
|
xrf.emit('predefinedView',{...opts,frag})
|
||||||
.then( () => xrf.eval.fragment(k,opts) )
|
.then( () => xrf.eval.fragment(k,opts) )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1219,7 +1220,7 @@ const doPredefinedView = (opts) => {
|
||||||
setTimeout( () => {
|
setTimeout( () => {
|
||||||
if( !scene ) return
|
if( !scene ) return
|
||||||
scene.traverse( (mesh) => {
|
scene.traverse( (mesh) => {
|
||||||
selectionOfInterest( v.string, scene, mesh )
|
selectionOfInterest( v, scene, mesh )
|
||||||
predefinedView( v , scene, mesh )
|
predefinedView( v , scene, mesh )
|
||||||
})
|
})
|
||||||
},100)
|
},100)
|
||||||
|
|
@ -1236,6 +1237,13 @@ xrf.addEventListener('href', (opts) => {
|
||||||
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
||||||
doPredefinedView({frag,scene:xrf.scene})
|
doPredefinedView({frag,scene:xrf.scene})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//let updateUrl = (opts) => {
|
||||||
|
// console.dir(opts)
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//xrf.addEventListener('predefinedView', updateUrl )
|
||||||
|
//xrf.addEventListener('selection', updateUrl )
|
||||||
xrf.frag.q = function(v, opts){
|
xrf.frag.q = function(v, opts){
|
||||||
let { frag, mesh, model, camera, scene, renderer, THREE} = opts
|
let { frag, mesh, model, camera, scene, renderer, THREE} = opts
|
||||||
console.log(" └ running query ")
|
console.log(" └ running query ")
|
||||||
|
|
@ -1273,8 +1281,6 @@ xrf.frag.q = function(v, opts){
|
||||||
|
|
||||||
const showHide = () => {
|
const showHide = () => {
|
||||||
let q = frag.q.query
|
let q = frag.q.query
|
||||||
console.log(frag.q.string)
|
|
||||||
console.dir(frag)
|
|
||||||
scene.traverse( (mesh) => {
|
scene.traverse( (mesh) => {
|
||||||
for ( let i in q ) {
|
for ( let i in q ) {
|
||||||
let isMeshId = q[i].id != undefined
|
let isMeshId = q[i].id != undefined
|
||||||
|
|
|
||||||
20
dist/xrfragment.three.module.js
vendored
20
dist/xrfragment.three.module.js
vendored
|
|
@ -1118,7 +1118,7 @@ xrf.frag.href = function(v, opts){
|
||||||
xrf
|
xrf
|
||||||
.emit('href',{click:true,mesh,xrf:v}) // let all listeners agree
|
.emit('href',{click:true,mesh,xrf:v}) // let all listeners agree
|
||||||
.then( () => {
|
.then( () => {
|
||||||
if( v.string[0] == '#' ){ // apply modifications to scene
|
if( v.string[0] == '#' && v.string.match(/\|/) ){ // apply modifications to scene
|
||||||
xrf.eval( v.string, xrf.model, xrf.XRF.PV_OVERRIDE )
|
xrf.eval( v.string, xrf.model, xrf.XRF.PV_OVERRIDE )
|
||||||
}else xrf.navigator.to(v.string) // or let's surf to HREF!
|
}else xrf.navigator.to(v.string) // or let's surf to HREF!
|
||||||
})
|
})
|
||||||
|
|
@ -1177,14 +1177,15 @@ xrf.frag.pos = function(v, opts){
|
||||||
const doPredefinedView = (opts) => {
|
const doPredefinedView = (opts) => {
|
||||||
let {frag,scene} = opts
|
let {frag,scene} = opts
|
||||||
|
|
||||||
const selectionOfInterest = (id,scene,mesh) => {
|
const selectionOfInterest = (frag,scene,mesh) => {
|
||||||
|
let id = frag.string
|
||||||
// Selection of Interest if predefined_view matches object name
|
// Selection of Interest if predefined_view matches object name
|
||||||
if( mesh.selection ){
|
if( mesh.selection ){
|
||||||
scene.remove(mesh.selection)
|
scene.remove(mesh.selection)
|
||||||
delete mesh.selection
|
delete mesh.selection
|
||||||
}
|
}
|
||||||
if( id == mesh.name || id.substr(1) == mesh.userData.class ){
|
if( id == mesh.name || id.substr(1) == mesh.userData.class ){
|
||||||
xrf.emit('selection',opts)
|
xrf.emit('selection',{...opts,frag})
|
||||||
.then( () => {
|
.then( () => {
|
||||||
const margin = 1.2
|
const margin = 1.2
|
||||||
mesh.scale.multiplyScalar( margin )
|
mesh.scale.multiplyScalar( margin )
|
||||||
|
|
@ -1204,7 +1205,7 @@ const doPredefinedView = (opts) => {
|
||||||
let frag = xrf.URI.parse( mesh.userData[id], xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
let frag = xrf.URI.parse( mesh.userData[id], xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
||||||
for ( let k in frag ){
|
for ( let k in frag ){
|
||||||
let opts = {frag, model, camera: xrf.camera, scene: xrf.scene, renderer: xrf.renderer, THREE: xrf.THREE }
|
let opts = {frag, model, camera: xrf.camera, scene: xrf.scene, renderer: xrf.renderer, THREE: xrf.THREE }
|
||||||
xrf.emit('predefinedView',opts)
|
xrf.emit('predefinedView',{...opts,frag})
|
||||||
.then( () => xrf.eval.fragment(k,opts) )
|
.then( () => xrf.eval.fragment(k,opts) )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1219,7 +1220,7 @@ const doPredefinedView = (opts) => {
|
||||||
setTimeout( () => {
|
setTimeout( () => {
|
||||||
if( !scene ) return
|
if( !scene ) return
|
||||||
scene.traverse( (mesh) => {
|
scene.traverse( (mesh) => {
|
||||||
selectionOfInterest( v.string, scene, mesh )
|
selectionOfInterest( v, scene, mesh )
|
||||||
predefinedView( v , scene, mesh )
|
predefinedView( v , scene, mesh )
|
||||||
})
|
})
|
||||||
},100)
|
},100)
|
||||||
|
|
@ -1236,6 +1237,13 @@ xrf.addEventListener('href', (opts) => {
|
||||||
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
||||||
doPredefinedView({frag,scene:xrf.scene})
|
doPredefinedView({frag,scene:xrf.scene})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//let updateUrl = (opts) => {
|
||||||
|
// console.dir(opts)
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//xrf.addEventListener('predefinedView', updateUrl )
|
||||||
|
//xrf.addEventListener('selection', updateUrl )
|
||||||
xrf.frag.q = function(v, opts){
|
xrf.frag.q = function(v, opts){
|
||||||
let { frag, mesh, model, camera, scene, renderer, THREE} = opts
|
let { frag, mesh, model, camera, scene, renderer, THREE} = opts
|
||||||
console.log(" └ running query ")
|
console.log(" └ running query ")
|
||||||
|
|
@ -1273,8 +1281,6 @@ xrf.frag.q = function(v, opts){
|
||||||
|
|
||||||
const showHide = () => {
|
const showHide = () => {
|
||||||
let q = frag.q.query
|
let q = frag.q.query
|
||||||
console.log(frag.q.string)
|
|
||||||
console.dir(frag)
|
|
||||||
scene.traverse( (mesh) => {
|
scene.traverse( (mesh) => {
|
||||||
for ( let i in q ) {
|
for ( let i in q ) {
|
||||||
let isMeshId = q[i].id != undefined
|
let isMeshId = q[i].id != undefined
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ xrf.frag.href = function(v, opts){
|
||||||
xrf
|
xrf
|
||||||
.emit('href',{click:true,mesh,xrf:v}) // let all listeners agree
|
.emit('href',{click:true,mesh,xrf:v}) // let all listeners agree
|
||||||
.then( () => {
|
.then( () => {
|
||||||
if( v.string[0] == '#' ){ // apply modifications to scene
|
if( v.string[0] == '#' && v.string.match(/\|/) ){ // apply modifications to scene
|
||||||
xrf.eval( v.string, xrf.model, xrf.XRF.PV_OVERRIDE )
|
xrf.eval( v.string, xrf.model, xrf.XRF.PV_OVERRIDE )
|
||||||
}else xrf.navigator.to(v.string) // or let's surf to HREF!
|
}else xrf.navigator.to(v.string) // or let's surf to HREF!
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,15 @@
|
||||||
const doPredefinedView = (opts) => {
|
const doPredefinedView = (opts) => {
|
||||||
let {frag,scene} = opts
|
let {frag,scene} = opts
|
||||||
|
|
||||||
const selectionOfInterest = (id,scene,mesh) => {
|
const selectionOfInterest = (frag,scene,mesh) => {
|
||||||
|
let id = frag.string
|
||||||
// Selection of Interest if predefined_view matches object name
|
// Selection of Interest if predefined_view matches object name
|
||||||
if( mesh.selection ){
|
if( mesh.selection ){
|
||||||
scene.remove(mesh.selection)
|
scene.remove(mesh.selection)
|
||||||
delete mesh.selection
|
delete mesh.selection
|
||||||
}
|
}
|
||||||
if( id == mesh.name || id.substr(1) == mesh.userData.class ){
|
if( id == mesh.name || id.substr(1) == mesh.userData.class ){
|
||||||
xrf.emit('selection',opts)
|
xrf.emit('selection',{...opts,frag})
|
||||||
.then( () => {
|
.then( () => {
|
||||||
const margin = 1.2
|
const margin = 1.2
|
||||||
mesh.scale.multiplyScalar( margin )
|
mesh.scale.multiplyScalar( margin )
|
||||||
|
|
@ -28,7 +29,7 @@ const doPredefinedView = (opts) => {
|
||||||
let frag = xrf.URI.parse( mesh.userData[id], xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
let frag = xrf.URI.parse( mesh.userData[id], xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
||||||
for ( let k in frag ){
|
for ( let k in frag ){
|
||||||
let opts = {frag, model, camera: xrf.camera, scene: xrf.scene, renderer: xrf.renderer, THREE: xrf.THREE }
|
let opts = {frag, model, camera: xrf.camera, scene: xrf.scene, renderer: xrf.renderer, THREE: xrf.THREE }
|
||||||
xrf.emit('predefinedView',opts)
|
xrf.emit('predefinedView',{...opts,frag})
|
||||||
.then( () => xrf.eval.fragment(k,opts) )
|
.then( () => xrf.eval.fragment(k,opts) )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -43,7 +44,7 @@ const doPredefinedView = (opts) => {
|
||||||
setTimeout( () => {
|
setTimeout( () => {
|
||||||
if( !scene ) return
|
if( !scene ) return
|
||||||
scene.traverse( (mesh) => {
|
scene.traverse( (mesh) => {
|
||||||
selectionOfInterest( v.string, scene, mesh )
|
selectionOfInterest( v, scene, mesh )
|
||||||
predefinedView( v , scene, mesh )
|
predefinedView( v , scene, mesh )
|
||||||
})
|
})
|
||||||
},100)
|
},100)
|
||||||
|
|
@ -60,3 +61,10 @@ xrf.addEventListener('href', (opts) => {
|
||||||
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
let frag = xrf.URI.parse( opts.xrf.string, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.EMBEDDED )
|
||||||
doPredefinedView({frag,scene:xrf.scene})
|
doPredefinedView({frag,scene:xrf.scene})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//let updateUrl = (opts) => {
|
||||||
|
// console.dir(opts)
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//xrf.addEventListener('predefinedView', updateUrl )
|
||||||
|
//xrf.addEventListener('selection', updateUrl )
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,6 @@ xrf.frag.q = function(v, opts){
|
||||||
|
|
||||||
const showHide = () => {
|
const showHide = () => {
|
||||||
let q = frag.q.query
|
let q = frag.q.query
|
||||||
console.log(frag.q.string)
|
|
||||||
console.dir(frag)
|
|
||||||
scene.traverse( (mesh) => {
|
scene.traverse( (mesh) => {
|
||||||
for ( let i in q ) {
|
for ( let i in q ) {
|
||||||
let isMeshId = q[i].id != undefined
|
let isMeshId = q[i].id != undefined
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue