update documentation
This commit is contained in:
parent
3e602fd6a2
commit
a68ffe12d0
8 changed files with 50 additions and 33 deletions
1
make
1
make
|
|
@ -71,6 +71,7 @@ build_js(){
|
||||||
src/3rd/js/three/*.js \
|
src/3rd/js/three/*.js \
|
||||||
src/3rd/js/three/xrmacro/*.js \
|
src/3rd/js/three/xrmacro/*.js \
|
||||||
src/3rd/js/three/xrf/*.js \
|
src/3rd/js/three/xrf/*.js \
|
||||||
|
src/3rd/js/three/xrf/dynamic/*.js \
|
||||||
src/3rd/js/three/xrf/src/*.js > dist/xrfragment.three.js
|
src/3rd/js/three/xrf/src/*.js > dist/xrfragment.three.js
|
||||||
# add THREE module
|
# add THREE module
|
||||||
cat dist/xrfragment.three.js > dist/xrfragment.three.module.js
|
cat dist/xrfragment.three.js > dist/xrfragment.three.module.js
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
# nativeBuildInputs is usually what you want -- tools you need to run
|
# nativeBuildInputs is usually what you want -- tools you need to run
|
||||||
nativeBuildInputs = with pkgs.buildPackages; [
|
nativeBuildInputs = with pkgs.buildPackages; [
|
||||||
|
|
||||||
|
haxe
|
||||||
mmark
|
mmark
|
||||||
xml2rfc
|
xml2rfc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
|
|
||||||
const drawLineToMesh = (frag,scene,mesh) => {
|
const drawLineToMesh = (opts) => {
|
||||||
let id = frag.string
|
let {scene,mesh,frag,id} = opts
|
||||||
let oldSelection
|
let oldSelection
|
||||||
if(!id) return id // important: ignore empty strings
|
|
||||||
// Selection of Interest if predefined_view matches object name
|
// Selection of Interest if predefined_view matches object name
|
||||||
if( mesh.visible && mesh.material){
|
if( mesh.visible && mesh.material){
|
||||||
xrf.emit('focus',{...opts,frag})
|
xrf.emit('focus',{...opts,frag})
|
||||||
|
|
@ -37,7 +36,6 @@ const drawLineToMesh = (frag,scene,mesh) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
xrf.addEventListener('dynamicKey', (opts) => {
|
xrf.addEventListener('dynamicKey', (opts) => {
|
||||||
console.dir(opts)
|
|
||||||
let {scene,id,match,v} = opts
|
let {scene,id,match,v} = opts
|
||||||
if( !scene ) return
|
if( !scene ) return
|
||||||
let remove = []
|
let remove = []
|
||||||
|
|
@ -50,7 +48,7 @@ xrf.addEventListener('dynamicKey', (opts) => {
|
||||||
remove.map( (n) => scene.remove(n.selection) )
|
remove.map( (n) => scene.remove(n.selection) )
|
||||||
// drawlines
|
// drawlines
|
||||||
match.map( (w) => {
|
match.map( (w) => {
|
||||||
w.nodes.map( (mesh) => drawLineToMesh( v, scene, mesh ) )
|
w.nodes.map( (mesh) => drawLineToMesh({ ...opts, mesh}) )
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -66,4 +64,3 @@ xrf.addEventListener('render', (opts) => {
|
||||||
if( xrf.focusLine.opacity > 0.0 ) xrf.focusLine.opacity -= time*0.2
|
if( xrf.focusLine.opacity > 0.0 ) xrf.focusLine.opacity -= time*0.2
|
||||||
if( xrf.focusLine.opacity < 0.0 ) xrf.focusLine.opacity = 0
|
if( xrf.focusLine.opacity < 0.0 ) xrf.focusLine.opacity = 0
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,11 @@ xrf.frag.updatePredefinedView = (opts) => {
|
||||||
for ( let i in frag ) {
|
for ( let i in frag ) {
|
||||||
let v = frag[i]
|
let v = frag[i]
|
||||||
let id = v.string || v.fragment
|
let id = v.string || v.fragment
|
||||||
if( id == '#' ) return
|
if( id == '#' || !id ) return
|
||||||
let match = xrf.XRWG.match(id)
|
let match = xrf.XRWG.match(id)
|
||||||
|
|
||||||
if( v.is( xrf.XRF.PV_EXECUTE ) ){
|
if( v.is( xrf.XRF.PV_EXECUTE ) ){
|
||||||
|
console.log("pv_execute")
|
||||||
scene.XRF_PV_ORIGIN = v.string
|
scene.XRF_PV_ORIGIN = v.string
|
||||||
// evaluate aliases
|
// evaluate aliases
|
||||||
match.map( (w) => {
|
match.map( (w) => {
|
||||||
|
|
@ -29,6 +30,9 @@ xrf.frag.updatePredefinedView = (opts) => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
xrf.emit('dynamicKey',{ ...opts,v,frag,id,match,scene })
|
xrf.emit('dynamicKey',{ ...opts,v,frag,id,match,scene })
|
||||||
|
}else{
|
||||||
|
console.log("non pv_execute")
|
||||||
|
xrf.emit('dynamicKeyValue',{ ...opts,v,frag,id,match,scene })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -36,7 +40,7 @@ xrf.frag.updatePredefinedView = (opts) => {
|
||||||
|
|
||||||
// react to enduser typing url
|
// react to enduser typing url
|
||||||
xrf.addEventListener('hash', (opts) => {
|
xrf.addEventListener('hash', (opts) => {
|
||||||
let frag = xrf.URI.parse( opts.hash, xrf.XRF.NAVIGATOR | xrf.XRF.PV_OVERRIDE | xrf.XRF.METADATA )
|
let frag = xrf.URI.parse( opts.hash )
|
||||||
xrf.frag.updatePredefinedView({frag,scene:xrf.scene})
|
xrf.frag.updatePredefinedView({frag,scene:xrf.scene})
|
||||||
})
|
})
|
||||||
|
|
||||||
26
src/3rd/js/three/xrf/dynamic/texture.js
Normal file
26
src/3rd/js/three/xrf/dynamic/texture.js
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
xrf.addEventListener('dynamicKeyValue', (opts) => {
|
||||||
|
let {scene,match,v} = opts
|
||||||
|
let materialName = v.fragment
|
||||||
|
scene.traverse( (mesh) => {
|
||||||
|
if( mesh.material){
|
||||||
|
if( mesh.material.map && mesh.material.name == materialName ){
|
||||||
|
let mat = mesh.material
|
||||||
|
if( v.x != undefined ){
|
||||||
|
mat.map.offset.x = v.x
|
||||||
|
mat.map.offset.y = v.y
|
||||||
|
mat.map.rotation = v.z
|
||||||
|
}else{
|
||||||
|
let driver = xrf.scene.getObjectByName(v.string)
|
||||||
|
if( !driver ) return
|
||||||
|
xrf.addEventListener('render', (opts) => {
|
||||||
|
let model = xrf.model
|
||||||
|
if( !model || !model.clock ) return
|
||||||
|
mat.map.offset.x = driver.position.x
|
||||||
|
mat.map.offset.y = driver.position.y
|
||||||
|
mat.map.rotation = driver.position.z
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
@ -71,10 +71,6 @@ class Parser {
|
||||||
store.set(key, v );
|
store.set(key, v );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if( key.split(".").length > 1 && value.split(".").length > 1 ){
|
|
||||||
store.set(key, new XRF(key, XRF.ASSET | XRF.PV_OVERRIDE | XRF.T_STRING | XRF.PROP_BIND ) );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// regular fragments:
|
// regular fragments:
|
||||||
var v:XRF = new XRF(key, Frag.get(key));
|
var v:XRF = new XRF(key, Frag.get(key));
|
||||||
|
|
|
||||||
|
|
@ -359,19 +359,15 @@ xrfragment_Parser.parse = function(key,value,store) {
|
||||||
store[key] = v;
|
store[key] = v;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if(key.split(".").length > 1 && value.split(".").length > 1) {
|
|
||||||
store[key] = new xrfragment_XRF(key,xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_STRING | xrfragment_XRF.PROP_BIND);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
var v = new xrfragment_XRF(key,Frag_h[key]);
|
var v = new xrfragment_XRF(key,Frag_h[key]);
|
||||||
if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
|
if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
|
||||||
if(!v.validate(value)) {
|
if(!v.validate(value)) {
|
||||||
console.log("src/xrfragment/Parser.hx:83:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
|
console.log("src/xrfragment/Parser.hx:79:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
store[key] = v;
|
store[key] = v;
|
||||||
if(xrfragment_Parser.debug) {
|
if(xrfragment_Parser.debug) {
|
||||||
console.log("src/xrfragment/Parser.hx:87:","✔ " + key + ": " + v.string);
|
console.log("src/xrfragment/Parser.hx:83:","✔ " + key + ": " + v.string);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(typeof(value) == "string") {
|
if(typeof(value) == "string") {
|
||||||
|
|
|
||||||
|
|
@ -1436,10 +1436,6 @@ class xrfragment_Parser:
|
||||||
v.validate(key)
|
v.validate(key)
|
||||||
setattr(store,(("_hx_" + key) if ((key in python_Boot.keywords)) else (("_hx_" + key) if (((((len(key) > 2) and ((ord(key[0]) == 95))) and ((ord(key[1]) == 95))) and ((ord(key[(len(key) - 1)]) != 95)))) else key)),v)
|
setattr(store,(("_hx_" + key) if ((key in python_Boot.keywords)) else (("_hx_" + key) if (((((len(key) > 2) and ((ord(key[0]) == 95))) and ((ord(key[1]) == 95))) and ((ord(key[(len(key) - 1)]) != 95)))) else key)),v)
|
||||||
return True
|
return True
|
||||||
if ((len(key.split(".")) > 1) and ((len(value.split(".")) > 1))):
|
|
||||||
value1 = xrfragment_XRF(key,(((xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE) | xrfragment_XRF.T_STRING) | xrfragment_XRF.PROP_BIND))
|
|
||||||
setattr(store,(("_hx_" + key) if ((key in python_Boot.keywords)) else (("_hx_" + key) if (((((len(key) > 2) and ((ord(key[0]) == 95))) and ((ord(key[1]) == 95))) and ((ord(key[(len(key) - 1)]) != 95)))) else key)),value1)
|
|
||||||
return True
|
|
||||||
v = xrfragment_XRF(key,Frag.h.get(key,None))
|
v = xrfragment_XRF(key,Frag.h.get(key,None))
|
||||||
if (key in Frag.h):
|
if (key in Frag.h):
|
||||||
if (not v.validate(value)):
|
if (not v.validate(value)):
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue