From 106fd56b064a84a5469b460ded04256ca3d04eab Mon Sep 17 00:00:00 2001 From: kalwalt Date: Wed, 11 Sep 2019 14:51:53 +0200 Subject: [PATCH 1/6] restoring _parseMultiFile --- Source/artoolkitX.api.js | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/Source/artoolkitX.api.js b/Source/artoolkitX.api.js index 926c41c..7be04b5 100644 --- a/Source/artoolkitX.api.js +++ b/Source/artoolkitX.api.js @@ -1201,40 +1201,40 @@ ARController[_ajaxDependencies] = async (files) => { } } -// ARController[_parseMultiFile] = (bytes) => { -// const str = String.fromCharCode.apply(String, bytes) // basically bytesToString -// const lines = str.split('\n') -// const files = [] - -// let state = 0 // 0 - read, -// let markers = 0 - -// lines.forEach(function (line) { -// line = line.trim() -// if (!line || line.startsWith('#')) return // FIXME: Should probably be `if (line.indexOf('#') === 0) { return; }` - -// switch (state) { -// case 0: -// markers = +line -// state = 1 -// return -// case 1: // filename or barcode -// if (!line.match(/^\d+$/)) { -// files.push(line) -// } -// return -// case 2: // width -// case 3: // matrices -// case 4: -// state++ -// return -// case 5: -// state = 1 -// } -// }) - -// return files -// } + ARController[_parseMultiFile] = (bytes) => { + const str = String.fromCharCode.apply(String, bytes) // basically bytesToString + const lines = str.split('\n') + const files = [] + + let state = 0 // 0 - read, + let markers = 0 + + lines.forEach(function (line) { + line = line.trim() + if (!line || line.startsWith('#')) return // FIXME: Should probably be `if (line.indexOf('#') === 0) { return; }` + + switch (state) { + case 0: + markers = +line + state = 1 + return + case 1: // filename or barcode + if (!line.match(/^\d+$/)) { + files.push(line) + } + return + case 2: // width + case 3: // matrices + case 4: + state++ + return + case 5: + state = 1 + } + }) + + return files + } ARController._marker_count = 0 ARController._camera_count = 0 From bc60cce14524618d0233291ea5bd0489df849c31 Mon Sep 17 00:00:00 2001 From: kalwalt Date: Wed, 11 Sep 2019 16:17:15 +0200 Subject: [PATCH 2/6] map files outside but error: Promise.map is not a constructor --- Source/artoolkitX.api.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Source/artoolkitX.api.js b/Source/artoolkitX.api.js index 7be04b5..7fe74ca 100644 --- a/Source/artoolkitX.api.js +++ b/Source/artoolkitX.api.js @@ -1112,6 +1112,7 @@ const _loadCameraParam = Symbol('_loadCameraParam') const _loadMultiTrackable = Symbol('_loadMultiTrackable') const _ajaxDependencies = Symbol('_ajaxDependencies') const _parseMultiFile = Symbol('_parseMultiFile') +const _mapFiles = Symbol('_mapFiles') // Eg. // ajax('../bin/Data2/markers.dat', '/Data2/markers.dat', callback); @@ -1171,7 +1172,7 @@ ARController[_loadMultiTrackable] = async (url) => { const filename = '/multi_trackable_' + ARController._multi_marker_count++ try { const bytes = await ARController[_ajax](url, filename) - let files = ARController[_parseMultiFile](bytes) + let files = await ARController[_parseMultiFile](bytes) // function ok() { // var markerID = Module._addMultiMarker(arId, filename); @@ -1180,11 +1181,9 @@ ARController[_loadMultiTrackable] = async (url) => { // } // if (!files.length) return ok(); - - const path = url.split('/').slice(0, -1).join('/') - files = files.map(function (file) { - return [path + '/' + file, file] - }) + console.log(files); + await ARController[_mapFiles](url, files) + return files await ARController[_ajaxDependencies](files) return filename @@ -1193,6 +1192,15 @@ ARController[_loadMultiTrackable] = async (url) => { } } +ARController[_mapFiles] = async (url, files) => { + const path = url.split('/').slice(0, -1).join('/'); + let final; + return new Promise.map(files, function(file) { + return final = [path + '/' + file, file] + + }).then(() => resolve(final)).catch(e => { reject(e) }) +} + ARController[_ajaxDependencies] = async (files) => { var next = files.pop() if (next) { @@ -1201,7 +1209,7 @@ ARController[_ajaxDependencies] = async (files) => { } } - ARController[_parseMultiFile] = (bytes) => { +ARController[_parseMultiFile] = async (bytes) => { const str = String.fromCharCode.apply(String, bytes) // basically bytesToString const lines = str.split('\n') const files = [] From 3ee9d81236f78f10a19ded6ca29e181af558b13f Mon Sep 17 00:00:00 2001 From: kalwalt Date: Wed, 11 Sep 2019 16:32:12 +0200 Subject: [PATCH 3/6] this maybe is not necessary --- Source/artoolkitX.api.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/artoolkitX.api.js b/Source/artoolkitX.api.js index 7fe74ca..b8f5a3f 100644 --- a/Source/artoolkitX.api.js +++ b/Source/artoolkitX.api.js @@ -1197,8 +1197,7 @@ ARController[_mapFiles] = async (url, files) => { let final; return new Promise.map(files, function(file) { return final = [path + '/' + file, file] - - }).then(() => resolve(final)).catch(e => { reject(e) }) + }) } ARController[_ajaxDependencies] = async (files) => { From 5c7a39ed445d92418916734f5be566e7e4aef2b1 Mon Sep 17 00:00:00 2001 From: kalwalt Date: Wed, 11 Sep 2019 17:43:21 +0200 Subject: [PATCH 4/6] if the func is async it is not necessary to return a new Promise --- Source/artoolkitX.api.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Source/artoolkitX.api.js b/Source/artoolkitX.api.js index b8f5a3f..317cd21 100644 --- a/Source/artoolkitX.api.js +++ b/Source/artoolkitX.api.js @@ -1194,9 +1194,8 @@ ARController[_loadMultiTrackable] = async (url) => { ARController[_mapFiles] = async (url, files) => { const path = url.split('/').slice(0, -1).join('/'); - let final; - return new Promise.map(files, function(file) { - return final = [path + '/' + file, file] + return files.map(function(file) { + return [path + '/' + file, file] }) } From 33e1c845445eec26d823eaf4936af3f341120060 Mon Sep 17 00:00:00 2001 From: kalwalt Date: Wed, 11 Sep 2019 18:22:27 +0200 Subject: [PATCH 5/6] simplyfing the code --- Source/artoolkitX.api.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Source/artoolkitX.api.js b/Source/artoolkitX.api.js index 317cd21..9baab0c 100644 --- a/Source/artoolkitX.api.js +++ b/Source/artoolkitX.api.js @@ -1181,9 +1181,8 @@ ARController[_loadMultiTrackable] = async (url) => { // } // if (!files.length) return ok(); - console.log(files); - await ARController[_mapFiles](url, files) - return files + //console.log(files); + files = await ARController[_mapFiles](url, files) await ARController[_ajaxDependencies](files) return filename From a982434e56673413ba55dab31843b8014576d54a Mon Sep 17 00:00:00 2001 From: kalwalt Date: Fri, 20 Dec 2019 15:03:17 +0100 Subject: [PATCH 6/6] set log level --- Examples/simple_video-multi-patt.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/simple_video-multi-patt.html b/Examples/simple_video-multi-patt.html index 8284072..eaac162 100644 --- a/Examples/simple_video-multi-patt.html +++ b/Examples/simple_video-multi-patt.html @@ -31,7 +31,7 @@ }); try { - arController.setLogLevel(0); + //arController.setLogLevel(0); arController.start().then( () => { console.log("start done"); var trackableId = arController.addTrackable(trackable);