WLT+ASA: Panoramica del software di supporto

IBinder - associazione di Puntine spazi ad Ancoraggi nello spazio di Azure

L'interfaccia IBinder si trova al centro, implementata qui dalla classe SpacePinBinder. SpacePinBinder è un monobehaviour di Unity e può essere configurato dallo script Inspector di Unity.

Ognuno IBinder di essi è denominato, quindi un singolo IBindingOracle può gestire le associazioni per più IBinders.

IPublisher - lettura e scrittura di ancoraggi nello spazio nel cloud

L'interfaccia IPublisher gestisce la pubblicazione di ancoraggi nello spazio nel cloud e quindi recuperarli in sessioni successive o in altri dispositivi. IPublisher viene implementato qui con la classe PublisherASA. I dati pose nello spazio fisico corrente vengono acquisiti e recuperati usando Ancoraggi nello spazio di Azure.

Quando viene pubblicato un ancoraggio nello spazio, viene ottenuto un ID di ancoraggio cloud. Questo ID può essere usato nelle sessioni successive o in altri dispositivi per recuperare la posizione dell'ancoraggio cloud nel sistema di coordinate corrente, insieme a tutte le proprietà archiviate con esso. Il sistema aggiunge sempre una proprietà che identifica l'elemento SpacePin associato all'ancoraggio cloud.

Si noti che , IPublishere publisherASA, non sanno nulla di SpacePins. IPublisher non sa o importa cosa verrà fatto con i dati di ancoraggio cloud. Fornisce un'interfaccia awaitable semplificata per la pubblicazione e il recupero di ancoraggi cloud.

Lettura e ricerca

Se l'ID di un ancoraggio cloud è noto, l'ancoraggio cloud può essere recuperato dal relativo ID. Questo metodo è il modo più affidabile per recuperare un ancoraggio cloud. Il metodo è Read.

Esistono tuttavia scenari interessanti in cui gli ID per gli ancoraggi cloud all'interno di un'area non sono noti da un dispositivo, ma se potrebbero essere recuperati ancoraggi cloud, i dati spaziali e le proprietà si combinano per fornire informazioni sufficienti per renderli utili.

Trova cerca nell'area intorno a un dispositivo ancoraggi cloud e restituisce qualsiasi elemento che sia stato in grado di identificare. Questo processo è noto come rilocazione grossolana.

IBindingOracle - Condivisione degli ID di ancoraggio cloud

L'interfaccia IBindingOracle consente di rendere persistenti e condividere associazioni tra SpacePins e ancoraggi cloud specifici. In particolare, rende persistenti le coppie space-pin-ID/cloud-anchor-ID, insieme al nome dell'oggetto IBinder.

L'interfaccia dell'oracolo è estremamente semplice. Dato un IBinderoggetto , può inserire iIBinderbinding o recuperarli . Inserire le archivia e Recupera le archivia. Il meccanismo di archiviazione e recupero viene lasciato all'implementazione della classe concreta che implementa l'interfaccia IBindingOracle.

Questo esempio implementa probabilmente il più semplice possibile IBindingOracle, sotto forma di classe SpacePinBinderFile. In Put scrive le IBinderassociazioni di in un file di testo. In Get le legge dal file di testo (se disponibile) e le inserisce in IBinder.

ILocalPeg - BLOB che contrassegna una posizione nello spazio fisico

L'interfaccia ILocalPeg è un'astrazione di un ancoraggio locale del dispositivo. In un mondo più perfetto, i ILocalPegs necessari sarebbero gestiti internamente da IPublisher. Tuttavia, gli ancoraggi locali del dispositivo funzionano molto meglio quando viene creato mentre il dispositivo si trova nelle vicinanze della posizione dell'ancoraggio. L'unico IPublisher elemento sa dove devono essere posizionati gli ancoraggi locali del dispositivo quando sono necessari, non al momento ottimale di crearli.

SpacePinASA sa quando è il momento migliore per creare l'ancoraggio locale. Quando la manipolazione di SpacePin termina e il suo set di pose, SpacePinASA richiede IPublisher a di creare un peg locale opaco alla posizione desiderata. SpacePinBinder esegue quindi il pull di ILocalPeg da SpacePinASA e lo passa all'oggetto IPublisher da usare per creare un ancoraggio nello spazio cloud.

Vedi anche