Skip to content

MiniTrackAR

Clase principal del tracker de Image Tracking.

Constructor

javascript
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ámetroTipoRequeridoDescripción
licenseKeystringTu license key de Monolook
useFlannMatcherbooleanNoUsar FLANN matcher (default: false)
cameraConstraintsobjectNoMediaTrackConstraints para la cámara

Métodos

Inicialización

async init()

Inicializa el módulo WASM y valida la licencia contra el servidor de Monolook.

javascript
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.

javascript
const img = new Image()
img.src = './marker.jpg'
await new Promise(r => { img.onload = r })
await tracker.addTarget('miMarker', img)
ParámetroTipoDescripción
idstringIdentificador único del target
imageElementHTMLImageElementImagen del marker

removeTarget(id)

Elimina un target y libera sus datos.

javascript
tracker.removeTarget('miMarker')

clearTargets()

Elimina todos los targets.

javascript
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.

javascript
tracker.setActiveTargets(['marker1', 'marker3'])
ParámetroTipoDescripción
targetIdsstring[]IDs de targets a activar

Estado

isTracking(id)

Comprueba si un target específico está siendo trackeado.

javascript
if (tracker.isTracking('miMarker')) {
  // El marker es visible
}

getTrackedTargets()

Devuelve la lista de IDs de targets actualmente trackeados.

javascript
const activos = tracker.getTrackedTargets()
// ['marker1', 'marker3']

Control

async start()

Activa la cámara y comienza el tracking.

javascript
await tracker.start()

stop()

Detiene el tracking.

javascript
tracker.stop()

setMatcherType(useFlann)

Cambia entre BFMatcher y FLANN en runtime.

javascript
tracker.setMatcherType(true)  // Usar FLANN
tracker.setMatcherType(false) // Usar BFMatcher

destroy()

Detiene el tracking, libera todos los recursos y limpia el WASM.

javascript
tracker.destroy()

Eventos

on(event, callback)

Suscribe a un evento. Devuelve una función para desuscribirse.

javascript
const unsub = tracker.on('found', (id) => {
  console.log('Encontrado:', id)
})

// Desuscribirse
unsub()

off(event, callback)

Desuscribe de un evento.

javascript
tracker.off('found', miHandler)

Eventos disponibles

EventoCallbackDescripció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

javascript
tracker.on('pose', (pose) => {
  pose.position       // { x, y, z }
  pose.forward         // Vector dirección
  pose.up              // Vector arriba
  pose.rotationMatrix  // Matriz de rotación
})