MiniTrackAR
Clase principal del tracker de Image Tracking.
Constructor
const tracker = new MiniTrackAR({
licenseKey: 'YOUR_LICENSE_KEY', // Obligatorio
useFlannMatcher: false, // Opcional - usar FLANN en vez de BFMatcher
cameraConstraints: { ... } // Opcional - constraints de cámara custom
})| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
licenseKey | string | Sí | Tu license key de Monolook |
useFlannMatcher | boolean | No | Usar FLANN matcher (default: false) |
cameraConstraints | object | No | MediaTrackConstraints para la cámara |
Métodos
Inicialización
async init()
Inicializa el módulo WASM y valida la licencia contra el servidor de Monolook.
await tracker.init()Errores posibles:
"Monolook license key required""License validation failed: License expired""License validation failed: Domain not allowed""Build version 0001PR is not authorized"
Gestión de targets
async addTarget(id, imageElement)
Añade una imagen como target de tracking.
const img = new Image()
img.src = './marker.jpg'
await new Promise(r => { img.onload = r })
await tracker.addTarget('miMarker', img)| Parámetro | Tipo | Descripción |
|---|---|---|
id | string | Identificador único del target |
imageElement | HTMLImageElement | Imagen del marker |
removeTarget(id)
Elimina un target y libera sus datos.
tracker.removeTarget('miMarker')clearTargets()
Elimina todos los targets.
tracker.clearTargets()setActiveTargets(targetIds)
Establece qué targets están activos para detección. Los targets inactivos permanecen en memoria pero no se buscan. Ver Selective Tracking.
tracker.setActiveTargets(['marker1', 'marker3'])| Parámetro | Tipo | Descripción |
|---|---|---|
targetIds | string[] | IDs de targets a activar |
Estado
isTracking(id)
Comprueba si un target específico está siendo trackeado.
if (tracker.isTracking('miMarker')) {
// El marker es visible
}getTrackedTargets()
Devuelve la lista de IDs de targets actualmente trackeados.
const activos = tracker.getTrackedTargets()
// ['marker1', 'marker3']Control
async start()
Activa la cámara y comienza el tracking.
await tracker.start()stop()
Detiene el tracking.
tracker.stop()setMatcherType(useFlann)
Cambia entre BFMatcher y FLANN en runtime.
tracker.setMatcherType(true) // Usar FLANN
tracker.setMatcherType(false) // Usar BFMatcherdestroy()
Detiene el tracking, libera todos los recursos y limpia el WASM.
tracker.destroy()Eventos
on(event, callback)
Suscribe a un evento. Devuelve una función para desuscribirse.
const unsub = tracker.on('found', (id) => {
console.log('Encontrado:', id)
})
// Desuscribirse
unsub()off(event, callback)
Desuscribe de un evento.
tracker.off('found', miHandler)Eventos disponibles
| Evento | Callback | Descripción |
|---|---|---|
'found' | (id: string) | Marker detectado |
'lost' | (id: string) | Marker perdido |
'pose' | (pose: object) | Actualización de pose |
'frame' | () | Cada frame |
'error' | (error) | Error |
Objeto pose
tracker.on('pose', (pose) => {
pose.position // { x, y, z }
pose.forward // Vector dirección
pose.up // Vector arriba
pose.rotationMatrix // Matriz de rotación
})