@srsergio/taptapp-ar 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiler/controller.d.ts +15 -22
- package/dist/compiler/controller.js +73 -92
- package/dist/compiler/detector/crop-detector.d.ts +20 -51
- package/dist/compiler/detector/crop-detector.js +21 -15
- package/dist/compiler/input-loader.d.ts +15 -17
- package/dist/compiler/input-loader.js +58 -76
- package/dist/compiler/matching/hamming-distance.js +4 -4
- package/dist/compiler/matching/matcher.js +2 -2
- package/dist/compiler/matching/matching.d.ts +2 -16
- package/dist/compiler/matching/matching.js +72 -60
- package/dist/compiler/offline-compiler.d.ts +14 -65
- package/dist/compiler/offline-compiler.js +86 -55
- package/dist/compiler/three.js +0 -4
- package/dist/compiler/tracker/tracker.d.ts +26 -12
- package/dist/compiler/tracker/tracker.js +158 -259
- package/dist/compiler/utils/worker-pool.d.ts +2 -1
- package/dist/compiler/utils/worker-pool.js +4 -8
- package/package.json +1 -1
- package/src/compiler/controller.js +71 -93
- package/src/compiler/detector/crop-detector.js +26 -15
- package/src/compiler/input-loader.js +62 -88
- package/src/compiler/matching/hamming-distance.js +4 -4
- package/src/compiler/matching/hough.js +1 -1
- package/src/compiler/matching/matcher.js +2 -2
- package/src/compiler/matching/matching.js +80 -72
- package/src/compiler/offline-compiler.js +92 -58
- package/src/compiler/three.js +0 -4
- package/src/compiler/tracker/tracker.js +183 -283
- package/src/compiler/utils/worker-pool.js +4 -8
- package/dist/compiler/compiler-base.d.ts +0 -8
- package/dist/compiler/compiler-base.js +0 -179
- package/dist/compiler/compiler.d.ts +0 -9
- package/dist/compiler/compiler.js +0 -24
- package/dist/compiler/compiler.worker.d.ts +0 -1
- package/dist/compiler/compiler.worker.js +0 -28
- package/dist/compiler/detector/detector.d.ts +0 -97
- package/dist/compiler/detector/detector.js +0 -1042
- package/dist/compiler/detector/kernels/cpu/binomialFilter.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/binomialFilter.js +0 -50
- package/dist/compiler/detector/kernels/cpu/buildExtremas.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/buildExtremas.js +0 -89
- package/dist/compiler/detector/kernels/cpu/computeExtremaAngles.d.ts +0 -7
- package/dist/compiler/detector/kernels/cpu/computeExtremaAngles.js +0 -79
- package/dist/compiler/detector/kernels/cpu/computeExtremaFreak.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/computeExtremaFreak.js +0 -68
- package/dist/compiler/detector/kernels/cpu/computeFreakDescriptors.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/computeFreakDescriptors.js +0 -57
- package/dist/compiler/detector/kernels/cpu/computeLocalization.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/computeLocalization.js +0 -50
- package/dist/compiler/detector/kernels/cpu/computeOrientationHistograms.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/computeOrientationHistograms.js +0 -100
- package/dist/compiler/detector/kernels/cpu/downsampleBilinear.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/downsampleBilinear.js +0 -29
- package/dist/compiler/detector/kernels/cpu/extremaReduction.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/extremaReduction.js +0 -50
- package/dist/compiler/detector/kernels/cpu/fakeShader.d.ts +0 -20
- package/dist/compiler/detector/kernels/cpu/fakeShader.js +0 -80
- package/dist/compiler/detector/kernels/cpu/index.d.ts +0 -1
- package/dist/compiler/detector/kernels/cpu/index.js +0 -25
- package/dist/compiler/detector/kernels/cpu/prune.d.ts +0 -7
- package/dist/compiler/detector/kernels/cpu/prune.js +0 -62
- package/dist/compiler/detector/kernels/cpu/smoothHistograms.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/smoothHistograms.js +0 -47
- package/dist/compiler/detector/kernels/cpu/upsampleBilinear.d.ts +0 -6
- package/dist/compiler/detector/kernels/cpu/upsampleBilinear.js +0 -43
- package/dist/compiler/detector/kernels/index.d.ts +0 -1
- package/dist/compiler/detector/kernels/index.js +0 -2
- package/dist/compiler/detector/kernels/webgl/binomialFilter.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/binomialFilter.js +0 -67
- package/dist/compiler/detector/kernels/webgl/buildExtremas.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/buildExtremas.js +0 -101
- package/dist/compiler/detector/kernels/webgl/computeExtremaAngles.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/computeExtremaAngles.js +0 -78
- package/dist/compiler/detector/kernels/webgl/computeExtremaFreak.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/computeExtremaFreak.js +0 -86
- package/dist/compiler/detector/kernels/webgl/computeFreakDescriptors.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/computeFreakDescriptors.js +0 -52
- package/dist/compiler/detector/kernels/webgl/computeLocalization.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/computeLocalization.js +0 -58
- package/dist/compiler/detector/kernels/webgl/computeOrientationHistograms.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/computeOrientationHistograms.js +0 -116
- package/dist/compiler/detector/kernels/webgl/downsampleBilinear.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/downsampleBilinear.js +0 -46
- package/dist/compiler/detector/kernels/webgl/extremaReduction.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/extremaReduction.js +0 -48
- package/dist/compiler/detector/kernels/webgl/index.d.ts +0 -1
- package/dist/compiler/detector/kernels/webgl/index.js +0 -25
- package/dist/compiler/detector/kernels/webgl/smoothHistograms.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/smoothHistograms.js +0 -49
- package/dist/compiler/detector/kernels/webgl/upsampleBilinear.d.ts +0 -6
- package/dist/compiler/detector/kernels/webgl/upsampleBilinear.js +0 -56
- package/dist/compiler/tensorflow-setup.d.ts +0 -6
- package/dist/compiler/tensorflow-setup.js +0 -99
- package/src/compiler/compiler-base.js +0 -210
- package/src/compiler/compiler.js +0 -25
- package/src/compiler/compiler.worker.js +0 -30
- package/src/compiler/detector/detector.js +0 -1119
- package/src/compiler/detector/kernels/cpu/binomialFilter.js +0 -58
- package/src/compiler/detector/kernels/cpu/buildExtremas.js +0 -108
- package/src/compiler/detector/kernels/cpu/computeExtremaAngles.js +0 -91
- package/src/compiler/detector/kernels/cpu/computeExtremaFreak.js +0 -92
- package/src/compiler/detector/kernels/cpu/computeFreakDescriptors.js +0 -68
- package/src/compiler/detector/kernels/cpu/computeLocalization.js +0 -67
- package/src/compiler/detector/kernels/cpu/computeOrientationHistograms.js +0 -124
- package/src/compiler/detector/kernels/cpu/downsampleBilinear.js +0 -33
- package/src/compiler/detector/kernels/cpu/extremaReduction.js +0 -53
- package/src/compiler/detector/kernels/cpu/fakeShader.js +0 -88
- package/src/compiler/detector/kernels/cpu/index.js +0 -26
- package/src/compiler/detector/kernels/cpu/prune.js +0 -78
- package/src/compiler/detector/kernels/cpu/smoothHistograms.js +0 -57
- package/src/compiler/detector/kernels/cpu/upsampleBilinear.js +0 -51
- package/src/compiler/detector/kernels/index.js +0 -2
- package/src/compiler/detector/kernels/webgl/binomialFilter.js +0 -72
- package/src/compiler/detector/kernels/webgl/buildExtremas.js +0 -109
- package/src/compiler/detector/kernels/webgl/computeExtremaAngles.js +0 -82
- package/src/compiler/detector/kernels/webgl/computeExtremaFreak.js +0 -105
- package/src/compiler/detector/kernels/webgl/computeFreakDescriptors.js +0 -56
- package/src/compiler/detector/kernels/webgl/computeLocalization.js +0 -70
- package/src/compiler/detector/kernels/webgl/computeOrientationHistograms.js +0 -129
- package/src/compiler/detector/kernels/webgl/downsampleBilinear.js +0 -50
- package/src/compiler/detector/kernels/webgl/extremaReduction.js +0 -50
- package/src/compiler/detector/kernels/webgl/index.js +0 -26
- package/src/compiler/detector/kernels/webgl/smoothHistograms.js +0 -53
- package/src/compiler/detector/kernels/webgl/upsampleBilinear.js +0 -62
- package/src/compiler/tensorflow-setup.js +0 -116
|
@@ -19,6 +19,7 @@ import { extractTrackingFeatures } from "./tracker/extract-utils.js";
|
|
|
19
19
|
import { DetectorLite } from "./detector/detector-lite.js";
|
|
20
20
|
import { build as hierarchicalClusteringBuild } from "./matching/hierarchical-clustering.js";
|
|
21
21
|
import * as msgpack from "@msgpack/msgpack";
|
|
22
|
+
import { WorkerPool } from "./utils/worker-pool.js";
|
|
22
23
|
// Detect environment
|
|
23
24
|
const isNode = typeof process !== "undefined" &&
|
|
24
25
|
process.versions != null &&
|
|
@@ -41,21 +42,27 @@ export class OfflineCompiler {
|
|
|
41
42
|
}
|
|
42
43
|
async _initNodeWorkers() {
|
|
43
44
|
try {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
// Use variables to prevent bundlers from trying to bundle these
|
|
46
|
+
const pathModule = "path";
|
|
47
|
+
const urlModule = "url";
|
|
48
|
+
const osModule = "os";
|
|
49
|
+
const workerThreadsModule = "node:worker_threads";
|
|
50
|
+
const [path, url, os, { Worker }] = await Promise.all([
|
|
51
|
+
import(pathModule),
|
|
52
|
+
import(urlModule),
|
|
53
|
+
import(osModule),
|
|
54
|
+
import(workerThreadsModule)
|
|
49
55
|
]);
|
|
50
56
|
const __filename = url.fileURLToPath(import.meta.url);
|
|
51
57
|
const __dirname = path.dirname(__filename);
|
|
52
58
|
const workerPath = path.join(__dirname, "node-worker.js");
|
|
59
|
+
// Limit workers to avoid freezing system
|
|
53
60
|
const numWorkers = Math.min(os.cpus().length, 4);
|
|
54
|
-
this.workerPool = new
|
|
61
|
+
this.workerPool = new WorkerPool(workerPath, numWorkers, Worker);
|
|
55
62
|
console.log(`🚀 OfflineCompiler: Node.js mode with ${numWorkers} workers`);
|
|
56
63
|
}
|
|
57
64
|
catch (e) {
|
|
58
|
-
console.log("⚡ OfflineCompiler: Running without workers");
|
|
65
|
+
console.log("⚡ OfflineCompiler: Running without workers (initialization failed)", e);
|
|
59
66
|
}
|
|
60
67
|
}
|
|
61
68
|
/**
|
|
@@ -89,40 +96,48 @@ export class OfflineCompiler {
|
|
|
89
96
|
}
|
|
90
97
|
targetImages.push({
|
|
91
98
|
data: greyImageData,
|
|
92
|
-
height: img.height,
|
|
93
99
|
width: img.width,
|
|
100
|
+
height: img.height,
|
|
94
101
|
});
|
|
95
102
|
}
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
progressCallback(percent * 0.5);
|
|
103
|
+
// Compilar Match y Track por separado
|
|
104
|
+
const matchingDataList = await this._compileMatch(targetImages, (p) => {
|
|
105
|
+
progressCallback(p * 0.7); // 70% Match
|
|
100
106
|
});
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
console.time("⏱️ Fase Tracking");
|
|
104
|
-
const trackingDataList = await this._compileTrack(targetImages, (percent) => {
|
|
105
|
-
progressCallback(50 + percent * 0.5);
|
|
107
|
+
const trackingDataList = await this._compileTrack(targetImages, (p) => {
|
|
108
|
+
progressCallback(70 + p * 0.3); // 30% Track
|
|
106
109
|
});
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
this.data = targetImages.map((targetImage, i) => ({
|
|
110
|
-
targetImage: { width: targetImage.width, height: targetImage.height },
|
|
111
|
-
trackingData: trackingDataList[i],
|
|
110
|
+
this.data = targetImages.map((img, i) => ({
|
|
111
|
+
targetImage: img,
|
|
112
112
|
matchingData: matchingDataList[i],
|
|
113
|
+
trackingData: trackingDataList[i],
|
|
113
114
|
}));
|
|
114
115
|
console.timeEnd("⏱️ Compilación total");
|
|
115
116
|
return this.data;
|
|
116
117
|
}
|
|
117
|
-
/**
|
|
118
|
-
* Compila datos de matching usando DetectorLite (JS puro)
|
|
119
|
-
*/
|
|
120
118
|
async _compileMatch(targetImages, progressCallback) {
|
|
121
119
|
const percentPerImage = 100 / targetImages.length;
|
|
122
120
|
let currentPercent = 0;
|
|
121
|
+
// Use workers if available
|
|
122
|
+
if (this.workerPool) {
|
|
123
|
+
const progressMap = new Float32Array(targetImages.length);
|
|
124
|
+
const wrappedPromises = targetImages.map((targetImage, index) => {
|
|
125
|
+
return this.workerPool.runTask({
|
|
126
|
+
type: 'match',
|
|
127
|
+
targetImage,
|
|
128
|
+
percentPerImage,
|
|
129
|
+
basePercent: 0,
|
|
130
|
+
onProgress: (p) => {
|
|
131
|
+
progressMap[index] = p;
|
|
132
|
+
const sum = progressMap.reduce((a, b) => a + b, 0);
|
|
133
|
+
progressCallback(sum);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
return Promise.all(wrappedPromises);
|
|
138
|
+
}
|
|
139
|
+
// Serial Fallback
|
|
123
140
|
const results = [];
|
|
124
|
-
// Procesar secuencialmente para evitar overhead de workers
|
|
125
|
-
// (los workers son útiles para muchas imágenes, pero añaden latencia)
|
|
126
141
|
for (let i = 0; i < targetImages.length; i++) {
|
|
127
142
|
const targetImage = targetImages[i];
|
|
128
143
|
const imageList = buildImageList(targetImage);
|
|
@@ -151,12 +166,27 @@ export class OfflineCompiler {
|
|
|
151
166
|
}
|
|
152
167
|
return results;
|
|
153
168
|
}
|
|
154
|
-
/**
|
|
155
|
-
* Compila datos de tracking usando extractTrackingFeatures (JS puro)
|
|
156
|
-
*/
|
|
157
169
|
async _compileTrack(targetImages, progressCallback) {
|
|
158
170
|
const percentPerImage = 100 / targetImages.length;
|
|
159
171
|
let currentPercent = 0;
|
|
172
|
+
if (this.workerPool) {
|
|
173
|
+
const progressMap = new Float32Array(targetImages.length);
|
|
174
|
+
const wrappedPromises = targetImages.map((targetImage, index) => {
|
|
175
|
+
return this.workerPool.runTask({
|
|
176
|
+
type: 'compile',
|
|
177
|
+
targetImage,
|
|
178
|
+
percentPerImage,
|
|
179
|
+
basePercent: 0,
|
|
180
|
+
onProgress: (p) => {
|
|
181
|
+
progressMap[index] = p;
|
|
182
|
+
const sum = progressMap.reduce((a, b) => a + b, 0);
|
|
183
|
+
progressCallback(sum);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
return Promise.all(wrappedPromises);
|
|
188
|
+
}
|
|
189
|
+
// Serial Fallback
|
|
160
190
|
const results = [];
|
|
161
191
|
for (let i = 0; i < targetImages.length; i++) {
|
|
162
192
|
const targetImage = targetImages[i];
|
|
@@ -170,38 +200,22 @@ export class OfflineCompiler {
|
|
|
170
200
|
}
|
|
171
201
|
return results;
|
|
172
202
|
}
|
|
173
|
-
/**
|
|
174
|
-
* Método público para compilar tracking (compatibilidad con API anterior)
|
|
175
|
-
* @param {Object} options - Opciones de compilación
|
|
176
|
-
* @param {Function} options.progressCallback - Callback de progreso
|
|
177
|
-
* @param {Array} options.targetImages - Lista de imágenes objetivo
|
|
178
|
-
* @param {number} options.basePercent - Porcentaje base
|
|
179
|
-
* @returns {Promise<Array>} Datos de tracking
|
|
180
|
-
*/
|
|
181
203
|
async compileTrack({ progressCallback, targetImages, basePercent = 0 }) {
|
|
182
204
|
return this._compileTrack(targetImages, (percent) => {
|
|
183
205
|
progressCallback(basePercent + percent * (100 - basePercent) / 100);
|
|
184
206
|
});
|
|
185
207
|
}
|
|
186
|
-
/**
|
|
187
|
-
* Método público para compilar matching (compatibilidad con API anterior)
|
|
188
|
-
*/
|
|
189
208
|
async compileMatch({ progressCallback, targetImages, basePercent = 0 }) {
|
|
190
209
|
return this._compileMatch(targetImages, (percent) => {
|
|
191
210
|
progressCallback(basePercent + percent * (50 - basePercent) / 100);
|
|
192
211
|
});
|
|
193
212
|
}
|
|
194
|
-
/**
|
|
195
|
-
* Exporta datos compilados en formato binario columnar optimizado
|
|
196
|
-
*/
|
|
197
213
|
exportData() {
|
|
198
214
|
if (!this.data) {
|
|
199
215
|
throw new Error("No hay datos compilados para exportar");
|
|
200
216
|
}
|
|
201
217
|
const dataList = this.data.map((item) => {
|
|
202
|
-
// Optimizamos MatchingData convirtiéndolo a formato columnar
|
|
203
218
|
const matchingData = item.matchingData.map((kf) => this._packKeyframe(kf));
|
|
204
|
-
// Optimizamos TrackingData (Zero-copy layout)
|
|
205
219
|
const trackingData = item.trackingData.map((td) => {
|
|
206
220
|
const count = td.points.length;
|
|
207
221
|
const px = new Float32Array(count);
|
|
@@ -247,17 +261,20 @@ export class OfflineCompiler {
|
|
|
247
261
|
const x = new Float32Array(count);
|
|
248
262
|
const y = new Float32Array(count);
|
|
249
263
|
const angle = new Float32Array(count);
|
|
264
|
+
const scale = new Float32Array(count);
|
|
250
265
|
const descriptors = new Uint8Array(count * 84); // 84 bytes per point (FREAK)
|
|
251
266
|
for (let i = 0; i < count; i++) {
|
|
252
267
|
x[i] = points[i].x;
|
|
253
268
|
y[i] = points[i].y;
|
|
254
269
|
angle[i] = points[i].angle;
|
|
270
|
+
scale[i] = points[i].scale;
|
|
255
271
|
descriptors.set(points[i].descriptors, i * 84);
|
|
256
272
|
}
|
|
257
273
|
return {
|
|
258
274
|
x,
|
|
259
275
|
y,
|
|
260
276
|
a: angle,
|
|
277
|
+
s: scale,
|
|
261
278
|
d: descriptors,
|
|
262
279
|
t: this._compactTree(tree.rootNode),
|
|
263
280
|
};
|
|
@@ -268,18 +285,34 @@ export class OfflineCompiler {
|
|
|
268
285
|
}
|
|
269
286
|
return [0, node.centerPointIndex || 0, node.children.map((c) => this._compactTree(c))];
|
|
270
287
|
}
|
|
271
|
-
/**
|
|
272
|
-
* Importa datos - Mantiene el formato columnar para máximo rendimiento (Zero-copy)
|
|
273
|
-
*/
|
|
274
288
|
importData(buffer) {
|
|
275
289
|
const content = msgpack.decode(new Uint8Array(buffer));
|
|
276
290
|
if (!content.v || content.v !== CURRENT_VERSION) {
|
|
277
291
|
console.error("Incompatible .mind version. Required: " + CURRENT_VERSION);
|
|
278
292
|
return [];
|
|
279
293
|
}
|
|
280
|
-
//
|
|
281
|
-
|
|
282
|
-
|
|
294
|
+
// Restore Float32Arrays from Uint8Arrays returned by msgpack
|
|
295
|
+
const dataList = content.dataList;
|
|
296
|
+
for (let i = 0; i < dataList.length; i++) {
|
|
297
|
+
const item = dataList[i];
|
|
298
|
+
for (const kf of item.matchingData) {
|
|
299
|
+
for (const col of [kf.max, kf.min]) {
|
|
300
|
+
if (col.x instanceof Uint8Array) {
|
|
301
|
+
col.x = new Float32Array(col.x.buffer.slice(col.x.byteOffset, col.x.byteOffset + col.x.byteLength));
|
|
302
|
+
}
|
|
303
|
+
if (col.y instanceof Uint8Array) {
|
|
304
|
+
col.y = new Float32Array(col.y.buffer.slice(col.y.byteOffset, col.y.byteOffset + col.y.byteLength));
|
|
305
|
+
}
|
|
306
|
+
if (col.a instanceof Uint8Array) {
|
|
307
|
+
col.a = new Float32Array(col.a.buffer.slice(col.a.byteOffset, col.a.byteOffset + col.a.byteLength));
|
|
308
|
+
}
|
|
309
|
+
if (col.s instanceof Uint8Array) {
|
|
310
|
+
col.s = new Float32Array(col.s.buffer.slice(col.s.byteOffset, col.s.byteOffset + col.s.byteLength));
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
this.data = dataList;
|
|
283
316
|
return this.data;
|
|
284
317
|
}
|
|
285
318
|
_unpackKeyframe(kf) {
|
|
@@ -301,6 +334,7 @@ export class OfflineCompiler {
|
|
|
301
334
|
x: col.x[i],
|
|
302
335
|
y: col.y[i],
|
|
303
336
|
angle: col.a[i],
|
|
337
|
+
scale: col.s ? col.s[i] : 1.0,
|
|
304
338
|
descriptors: col.d.slice(i * 84, (i + 1) * 84),
|
|
305
339
|
});
|
|
306
340
|
}
|
|
@@ -321,9 +355,6 @@ export class OfflineCompiler {
|
|
|
321
355
|
children: node[2].map((c) => this._expandTree(c)),
|
|
322
356
|
};
|
|
323
357
|
}
|
|
324
|
-
/**
|
|
325
|
-
* Destruye el pool de workers
|
|
326
|
-
*/
|
|
327
358
|
async destroy() {
|
|
328
359
|
if (this.workerPool) {
|
|
329
360
|
await this.workerPool.destroy();
|
package/dist/compiler/three.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { Matrix4, Vector3, Quaternion, Scene, WebGLRenderer, PerspectiveCamera, Group, sRGBEncoding, } from "three";
|
|
2
|
-
import * as tf from "@tensorflow/tfjs";
|
|
3
|
-
//import { CSS3DRenderer } from '../libs/CSS3DRenderer.js';
|
|
4
2
|
import { CSS3DRenderer } from "three/addons/renderers/CSS3DRenderer.js";
|
|
5
3
|
import { Controller } from "./controller.js";
|
|
6
4
|
import { UI } from "../ui/ui.js";
|
|
@@ -304,5 +302,3 @@ if (!window.MINDAR.IMAGE) {
|
|
|
304
302
|
window.MINDAR.IMAGE = {};
|
|
305
303
|
}
|
|
306
304
|
window.MINDAR.IMAGE.MindARThree = MindARThree;
|
|
307
|
-
//window.MINDAR.IMAGE.THREE = THREE;
|
|
308
|
-
window.MINDAR.IMAGE.tf = tf;
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
export class Tracker {
|
|
2
|
-
constructor(markerDimensions: any, trackingDataList: any, projectionTransform: any, debugMode?: boolean);
|
|
2
|
+
constructor(markerDimensions: any, trackingDataList: any, projectionTransform: any, inputWidth: any, inputHeight: any, debugMode?: boolean);
|
|
3
3
|
markerDimensions: any;
|
|
4
4
|
trackingDataList: any;
|
|
5
5
|
projectionTransform: any;
|
|
6
|
+
inputWidth: any;
|
|
7
|
+
inputHeight: any;
|
|
6
8
|
debugMode: boolean;
|
|
7
9
|
trackingKeyframeList: any[];
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
prebuiltData: {
|
|
11
|
+
px: Float32Array<any>;
|
|
12
|
+
py: Float32Array<any>;
|
|
13
|
+
data: Uint8Array<any>;
|
|
14
|
+
width: any;
|
|
15
|
+
height: any;
|
|
16
|
+
scale: any;
|
|
17
|
+
projectedImage: Float32Array<ArrayBuffer>;
|
|
18
|
+
}[];
|
|
19
|
+
templateBuffer: Float32Array<ArrayBuffer>;
|
|
20
|
+
dummyRun(inputData: any): void;
|
|
21
|
+
track(inputData: any, lastModelViewTransform: any, targetIndex: any): {
|
|
14
22
|
worldCoords: {
|
|
15
23
|
x: number;
|
|
16
24
|
y: number;
|
|
@@ -22,9 +30,15 @@ export class Tracker {
|
|
|
22
30
|
}[];
|
|
23
31
|
debugExtra: {};
|
|
24
32
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Pure JS implementation of NCC matching
|
|
35
|
+
*/
|
|
36
|
+
_computeMatching(prebuilt: any, projectedImage: any): {
|
|
37
|
+
matchingPoints: number[][];
|
|
38
|
+
sim: Float32Array<any>;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Pure JS implementation of Bilinear Warping
|
|
42
|
+
*/
|
|
43
|
+
_computeProjection(M: any, inputData: any, prebuilt: any): void;
|
|
30
44
|
}
|