@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.
Files changed (125) hide show
  1. package/dist/compiler/controller.d.ts +15 -22
  2. package/dist/compiler/controller.js +73 -92
  3. package/dist/compiler/detector/crop-detector.d.ts +20 -51
  4. package/dist/compiler/detector/crop-detector.js +21 -15
  5. package/dist/compiler/input-loader.d.ts +15 -17
  6. package/dist/compiler/input-loader.js +58 -76
  7. package/dist/compiler/matching/hamming-distance.js +4 -4
  8. package/dist/compiler/matching/matcher.js +2 -2
  9. package/dist/compiler/matching/matching.d.ts +2 -16
  10. package/dist/compiler/matching/matching.js +72 -60
  11. package/dist/compiler/offline-compiler.d.ts +14 -65
  12. package/dist/compiler/offline-compiler.js +86 -55
  13. package/dist/compiler/three.js +0 -4
  14. package/dist/compiler/tracker/tracker.d.ts +26 -12
  15. package/dist/compiler/tracker/tracker.js +158 -259
  16. package/dist/compiler/utils/worker-pool.d.ts +2 -1
  17. package/dist/compiler/utils/worker-pool.js +4 -8
  18. package/package.json +1 -1
  19. package/src/compiler/controller.js +71 -93
  20. package/src/compiler/detector/crop-detector.js +26 -15
  21. package/src/compiler/input-loader.js +62 -88
  22. package/src/compiler/matching/hamming-distance.js +4 -4
  23. package/src/compiler/matching/hough.js +1 -1
  24. package/src/compiler/matching/matcher.js +2 -2
  25. package/src/compiler/matching/matching.js +80 -72
  26. package/src/compiler/offline-compiler.js +92 -58
  27. package/src/compiler/three.js +0 -4
  28. package/src/compiler/tracker/tracker.js +183 -283
  29. package/src/compiler/utils/worker-pool.js +4 -8
  30. package/dist/compiler/compiler-base.d.ts +0 -8
  31. package/dist/compiler/compiler-base.js +0 -179
  32. package/dist/compiler/compiler.d.ts +0 -9
  33. package/dist/compiler/compiler.js +0 -24
  34. package/dist/compiler/compiler.worker.d.ts +0 -1
  35. package/dist/compiler/compiler.worker.js +0 -28
  36. package/dist/compiler/detector/detector.d.ts +0 -97
  37. package/dist/compiler/detector/detector.js +0 -1042
  38. package/dist/compiler/detector/kernels/cpu/binomialFilter.d.ts +0 -6
  39. package/dist/compiler/detector/kernels/cpu/binomialFilter.js +0 -50
  40. package/dist/compiler/detector/kernels/cpu/buildExtremas.d.ts +0 -6
  41. package/dist/compiler/detector/kernels/cpu/buildExtremas.js +0 -89
  42. package/dist/compiler/detector/kernels/cpu/computeExtremaAngles.d.ts +0 -7
  43. package/dist/compiler/detector/kernels/cpu/computeExtremaAngles.js +0 -79
  44. package/dist/compiler/detector/kernels/cpu/computeExtremaFreak.d.ts +0 -6
  45. package/dist/compiler/detector/kernels/cpu/computeExtremaFreak.js +0 -68
  46. package/dist/compiler/detector/kernels/cpu/computeFreakDescriptors.d.ts +0 -6
  47. package/dist/compiler/detector/kernels/cpu/computeFreakDescriptors.js +0 -57
  48. package/dist/compiler/detector/kernels/cpu/computeLocalization.d.ts +0 -6
  49. package/dist/compiler/detector/kernels/cpu/computeLocalization.js +0 -50
  50. package/dist/compiler/detector/kernels/cpu/computeOrientationHistograms.d.ts +0 -6
  51. package/dist/compiler/detector/kernels/cpu/computeOrientationHistograms.js +0 -100
  52. package/dist/compiler/detector/kernels/cpu/downsampleBilinear.d.ts +0 -6
  53. package/dist/compiler/detector/kernels/cpu/downsampleBilinear.js +0 -29
  54. package/dist/compiler/detector/kernels/cpu/extremaReduction.d.ts +0 -6
  55. package/dist/compiler/detector/kernels/cpu/extremaReduction.js +0 -50
  56. package/dist/compiler/detector/kernels/cpu/fakeShader.d.ts +0 -20
  57. package/dist/compiler/detector/kernels/cpu/fakeShader.js +0 -80
  58. package/dist/compiler/detector/kernels/cpu/index.d.ts +0 -1
  59. package/dist/compiler/detector/kernels/cpu/index.js +0 -25
  60. package/dist/compiler/detector/kernels/cpu/prune.d.ts +0 -7
  61. package/dist/compiler/detector/kernels/cpu/prune.js +0 -62
  62. package/dist/compiler/detector/kernels/cpu/smoothHistograms.d.ts +0 -6
  63. package/dist/compiler/detector/kernels/cpu/smoothHistograms.js +0 -47
  64. package/dist/compiler/detector/kernels/cpu/upsampleBilinear.d.ts +0 -6
  65. package/dist/compiler/detector/kernels/cpu/upsampleBilinear.js +0 -43
  66. package/dist/compiler/detector/kernels/index.d.ts +0 -1
  67. package/dist/compiler/detector/kernels/index.js +0 -2
  68. package/dist/compiler/detector/kernels/webgl/binomialFilter.d.ts +0 -6
  69. package/dist/compiler/detector/kernels/webgl/binomialFilter.js +0 -67
  70. package/dist/compiler/detector/kernels/webgl/buildExtremas.d.ts +0 -6
  71. package/dist/compiler/detector/kernels/webgl/buildExtremas.js +0 -101
  72. package/dist/compiler/detector/kernels/webgl/computeExtremaAngles.d.ts +0 -6
  73. package/dist/compiler/detector/kernels/webgl/computeExtremaAngles.js +0 -78
  74. package/dist/compiler/detector/kernels/webgl/computeExtremaFreak.d.ts +0 -6
  75. package/dist/compiler/detector/kernels/webgl/computeExtremaFreak.js +0 -86
  76. package/dist/compiler/detector/kernels/webgl/computeFreakDescriptors.d.ts +0 -6
  77. package/dist/compiler/detector/kernels/webgl/computeFreakDescriptors.js +0 -52
  78. package/dist/compiler/detector/kernels/webgl/computeLocalization.d.ts +0 -6
  79. package/dist/compiler/detector/kernels/webgl/computeLocalization.js +0 -58
  80. package/dist/compiler/detector/kernels/webgl/computeOrientationHistograms.d.ts +0 -6
  81. package/dist/compiler/detector/kernels/webgl/computeOrientationHistograms.js +0 -116
  82. package/dist/compiler/detector/kernels/webgl/downsampleBilinear.d.ts +0 -6
  83. package/dist/compiler/detector/kernels/webgl/downsampleBilinear.js +0 -46
  84. package/dist/compiler/detector/kernels/webgl/extremaReduction.d.ts +0 -6
  85. package/dist/compiler/detector/kernels/webgl/extremaReduction.js +0 -48
  86. package/dist/compiler/detector/kernels/webgl/index.d.ts +0 -1
  87. package/dist/compiler/detector/kernels/webgl/index.js +0 -25
  88. package/dist/compiler/detector/kernels/webgl/smoothHistograms.d.ts +0 -6
  89. package/dist/compiler/detector/kernels/webgl/smoothHistograms.js +0 -49
  90. package/dist/compiler/detector/kernels/webgl/upsampleBilinear.d.ts +0 -6
  91. package/dist/compiler/detector/kernels/webgl/upsampleBilinear.js +0 -56
  92. package/dist/compiler/tensorflow-setup.d.ts +0 -6
  93. package/dist/compiler/tensorflow-setup.js +0 -99
  94. package/src/compiler/compiler-base.js +0 -210
  95. package/src/compiler/compiler.js +0 -25
  96. package/src/compiler/compiler.worker.js +0 -30
  97. package/src/compiler/detector/detector.js +0 -1119
  98. package/src/compiler/detector/kernels/cpu/binomialFilter.js +0 -58
  99. package/src/compiler/detector/kernels/cpu/buildExtremas.js +0 -108
  100. package/src/compiler/detector/kernels/cpu/computeExtremaAngles.js +0 -91
  101. package/src/compiler/detector/kernels/cpu/computeExtremaFreak.js +0 -92
  102. package/src/compiler/detector/kernels/cpu/computeFreakDescriptors.js +0 -68
  103. package/src/compiler/detector/kernels/cpu/computeLocalization.js +0 -67
  104. package/src/compiler/detector/kernels/cpu/computeOrientationHistograms.js +0 -124
  105. package/src/compiler/detector/kernels/cpu/downsampleBilinear.js +0 -33
  106. package/src/compiler/detector/kernels/cpu/extremaReduction.js +0 -53
  107. package/src/compiler/detector/kernels/cpu/fakeShader.js +0 -88
  108. package/src/compiler/detector/kernels/cpu/index.js +0 -26
  109. package/src/compiler/detector/kernels/cpu/prune.js +0 -78
  110. package/src/compiler/detector/kernels/cpu/smoothHistograms.js +0 -57
  111. package/src/compiler/detector/kernels/cpu/upsampleBilinear.js +0 -51
  112. package/src/compiler/detector/kernels/index.js +0 -2
  113. package/src/compiler/detector/kernels/webgl/binomialFilter.js +0 -72
  114. package/src/compiler/detector/kernels/webgl/buildExtremas.js +0 -109
  115. package/src/compiler/detector/kernels/webgl/computeExtremaAngles.js +0 -82
  116. package/src/compiler/detector/kernels/webgl/computeExtremaFreak.js +0 -105
  117. package/src/compiler/detector/kernels/webgl/computeFreakDescriptors.js +0 -56
  118. package/src/compiler/detector/kernels/webgl/computeLocalization.js +0 -70
  119. package/src/compiler/detector/kernels/webgl/computeOrientationHistograms.js +0 -129
  120. package/src/compiler/detector/kernels/webgl/downsampleBilinear.js +0 -50
  121. package/src/compiler/detector/kernels/webgl/extremaReduction.js +0 -50
  122. package/src/compiler/detector/kernels/webgl/index.js +0 -26
  123. package/src/compiler/detector/kernels/webgl/smoothHistograms.js +0 -53
  124. package/src/compiler/detector/kernels/webgl/upsampleBilinear.js +0 -62
  125. 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
- const [os, path, url, workerModule] = await Promise.all([
45
- import("os"),
46
- import("path"),
47
- import("url"),
48
- import("./utils/worker-pool.js")
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 workerModule.WorkerPool(workerPath, numWorkers);
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
- // Fase 1: Matching (50%)
97
- console.time("⏱️ Fase Matching");
98
- const matchingDataList = await this._compileMatch(targetImages, (percent) => {
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
- console.timeEnd("⏱️ Fase Matching");
102
- // Fase 2: Tracking (50%)
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
- console.timeEnd("⏱️ Fase Tracking");
108
- // Compilar resultado
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
- // Ya no de-columnarizamos aquí. Los motores (Tracker/Matcher)
281
- // ahora están optimizados para leer directamente de los buffers.
282
- this.data = content.dataList;
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();
@@ -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
- featurePointsListT: any[];
9
- imagePixelsListT: any[];
10
- imagePropertiesListT: any[];
11
- kernelCaches: {};
12
- dummyRun(inputT: any): void;
13
- track(inputImageT: any, lastModelViewTransform: any, targetIndex: any): {
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
- _computeMatching(featurePointsT: any, imagePixelsT: any, imagePropertiesT: any, projectedImageT: any): any;
26
- _computeProjection(modelViewProjectionTransformT: any, inputImageT: any, targetIndex: any): any;
27
- _buildAdjustedModelViewTransform(modelViewProjectionTransform: any): any;
28
- _prebuild(trackingFrame: any, maxCount: any): any;
29
- _compileAndRun(program: any, inputs: any): any;
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
  }