From a539559ae99a7a302087f2e9ceacbf26f676bd1d Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Thu, 15 Feb 2024 11:43:15 +0000 Subject: [PATCH] work in progress [might break] --- example/assets/index.glb | Bin 8562060 -> 8572000 bytes src/3rd/js/three/xrf/dynamic/URIvars.js | 17 +++++++++++++---- src/3rd/js/three/xrf/dynamic/filter.js | 5 ++++- src/3rd/js/three/xrf/uv.js | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/example/assets/index.glb b/example/assets/index.glb index eab4a05e24313ebe6ff6f68aced8a6f3e1a74f8f..065e3b0209caf02a62b5639c28fdeb334b51fc88 100644 GIT binary patch delta 21107 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 { }) model.scene.traverse( (n) => { + const variables = /{([a-zA-Z0-9-]+)}/g + if( n.userData ){ for( let i in n.userData ){ - if( i[0] == '#' || i.match(/^(href|src|tag)$/) ) continue // ignore XR Fragment aliases - xrf.URI.vars[i] = () => n.userData[i] + if( i[0] == '#' || i.match(/^(href|tag)$/) ) continue // ignore XR Fragment aliases + 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.string.match(/(<|>)/) ) return // ignore filter values - + if( match.length > 0 ){ 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[ 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}'`) diff --git a/src/3rd/js/three/xrf/dynamic/filter.js b/src/3rd/js/three/xrf/dynamic/filter.js index c89ff2f..ae834a5 100644 --- a/src/3rd/js/three/xrf/dynamic/filter.js +++ b/src/3rd/js/three/xrf/dynamic/filter.js @@ -9,7 +9,10 @@ const doFilter = (opts) => { } 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 xrf.filter = function(query, cb){ diff --git a/src/3rd/js/three/xrf/uv.js b/src/3rd/js/three/xrf/uv.js index d4a55c1..2ec3349 100644 --- a/src/3rd/js/three/xrf/uv.js +++ b/src/3rd/js/three/xrf/uv.js @@ -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.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 v = uv.getY(i) let uTarget = this.uv.ushift ? uv.getX(i) + this.uv.u : uv.old.getX(i) + this.uv.u