work in progress [might break]
This commit is contained in:
parent
786173a9e0
commit
a539559ae9
4 changed files with 18 additions and 6 deletions
Binary file not shown.
|
|
@ -21,10 +21,19 @@ xrf.addEventListener('parseModel', (opts) => {
|
||||||
})
|
})
|
||||||
|
|
||||||
model.scene.traverse( (n) => {
|
model.scene.traverse( (n) => {
|
||||||
|
const variables = /{([a-zA-Z0-9-]+)}/g
|
||||||
|
|
||||||
if( n.userData ){
|
if( n.userData ){
|
||||||
for( let i in n.userData ){
|
for( let i in n.userData ){
|
||||||
if( i[0] == '#' || i.match(/^(href|src|tag)$/) ) continue // ignore XR Fragment aliases
|
if( i[0] == '#' || i.match(/^(href|tag)$/) ) continue // ignore XR Fragment aliases
|
||||||
xrf.URI.vars[i] = () => n.userData[i]
|
if( i == 'src' ){
|
||||||
|
// lets declare empty variables found in src-values ('https://foo.com/video.mp4#{somevar}') e.g.
|
||||||
|
if( n.userData[i].match(variables) ){
|
||||||
|
let vars = [].concat( n.userData[i].match(variables) )
|
||||||
|
const strip = (v) => v.replace(/[{}]/g,'')
|
||||||
|
vars.map( (v) => xrf.URI.vars[ strip(v) ] = () => '' )
|
||||||
|
}
|
||||||
|
}else xrf.URI.vars[i] = () => n.userData[i] // declare variables with values
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -38,13 +47,13 @@ xrf.addEventListener('dynamicKeyValue', (opts) => {
|
||||||
|
|
||||||
if( !v.is( xrf.XRF.CUSTOMFRAG) ) return // only process custom frags from here
|
if( !v.is( xrf.XRF.CUSTOMFRAG) ) return // only process custom frags from here
|
||||||
if( v.string.match(/(<|>)/) ) return // ignore filter values
|
if( v.string.match(/(<|>)/) ) return // ignore filter values
|
||||||
|
|
||||||
if( match.length > 0 ){
|
if( match.length > 0 ){
|
||||||
xrf.frag.dynamic.material(v,opts) // check if fragment is an objectname
|
xrf.frag.dynamic.material(v,opts) // check if fragment is an objectname
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !xrf.URI.vars[ v.string ] ) return console.error(`'${v.string}' metadata-key not found in scene`)
|
if( !xrf.URI.vars[ v.string ] ) return console.error(`'${v.string}' metadata-key not found in scene`)
|
||||||
if( xrf.URI.vars[ id ] && !match.length ) return console.error(`'${id}' object/tag/metadata-key not found in scene`)
|
//if( xrf.URI.vars[ id ] && !match.length ) return console.error(`'${id}' object/tag/metadata-key not found in scene`)
|
||||||
|
|
||||||
if( xrf.debug ) console.log(`URI.vars[${id}]='${v.string}'`)
|
if( xrf.debug ) console.log(`URI.vars[${id}]='${v.string}'`)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,10 @@ const doFilter = (opts) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
xrf.addEventListener('dynamicKey', doFilter )
|
xrf.addEventListener('dynamicKey', doFilter )
|
||||||
xrf.addEventListener('dynamicKeyValue', doFilter )
|
xrf.addEventListener('dynamicKeyValue', (opts) => {
|
||||||
|
console.log("*TODO* filter integers only")
|
||||||
|
// doFilter(opts)
|
||||||
|
})
|
||||||
|
|
||||||
// spec: https://xrfragment.org/#filters
|
// spec: https://xrfragment.org/#filters
|
||||||
xrf.filter = function(query, cb){
|
xrf.filter = function(query, cb){
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ xrf.frag.uv.scroll = function(){
|
||||||
if( this.uv.uspeed == 1.0 ) uv.setX(i, this.uv.ushift ? uv.getX(i) + this.uv.u : uv.old.getX(i) + this.uv.u )
|
if( this.uv.uspeed == 1.0 ) uv.setX(i, this.uv.ushift ? uv.getX(i) + this.uv.u : uv.old.getX(i) + this.uv.u )
|
||||||
if( this.uv.vspeed == 1.0 ) uv.setY(i, this.uv.vshift ? uv.getY(i) + this.uv.v : uv.old.getY(i) + this.uv.v )
|
if( this.uv.vspeed == 1.0 ) uv.setY(i, this.uv.vshift ? uv.getY(i) + this.uv.v : uv.old.getY(i) + this.uv.v )
|
||||||
|
|
||||||
if( this.uv.uloop || this.uv.vloop ){
|
if( this.uv.uspeed != 1.0 || this.uv.vspeed != 1.0 ){
|
||||||
let u = uv.getX(i)
|
let u = uv.getX(i)
|
||||||
let v = uv.getY(i)
|
let v = uv.getY(i)
|
||||||
let uTarget = this.uv.ushift ? uv.getX(i) + this.uv.u : uv.old.getX(i) + this.uv.u
|
let uTarget = this.uv.ushift ? uv.getX(i) + this.uv.u : uv.old.getX(i) + this.uv.u
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue