Dela via


WLT+ASA: Översikt över programvara som stöder

IBinder – binda SpacePins till Azure Spatial Anchors

Gränssnittet IBinder finns i mitten, som implementeras här av klassen SpacePinBinder. SpacePinBinder är en Unity Monobehaviour och kan konfigureras antingen från Unitys inspector eller från skript.

Var och IBinder en heter så att en enda IBindingOracle kan hantera bindningar för flera IBinders.

IPublisher - läsa och skriva rumsliga fästpunkter i molnet

Gränssnittet IPublisher hanterar publicering av spatiala fästpunkter i molnet och hämtar dem sedan i senare sessioner eller på andra enheter. IPublisherimplementeras här med klassen PublisherASA. Posedata i det aktuella fysiska utrymmet samlas in och hämtas med Hjälp av Azure Spatial Anchors.

När en spatial fästpunkt publiceras hämtas ett molnankar-ID. Det här ID:t kan användas i senare sessioner eller på andra enheter för att hämta molnankarets pose i det aktuella koordinatsystemet, tillsammans med eventuella egenskaper som lagras med det. Systemet lägger alltid till en egenskap som identifierar molnankarets associerade SpacePin.

Det bör noteras att IPublisher, och PublisherASA, inte vet något om SpacePins. IPublisher vet inte eller bryr sig om vad som ska göras med molnankardata. Det ger ett förenklat väntande gränssnitt för publicering och hämtning av molnankare.

Läs jämfört med Sök

Om molnankarets ID är känt kan molnankaret hämtas med dess ID. Den här metoden är det mest robusta sättet att hämta en molnankare. Metoden är Läs.

Det finns dock intressanta scenarier där ID:n för molnankare inom ett område inte är kända av en enhet, men om de molnankare kan hämtas skulle deras spatiala data och egenskaper kombineras för att ge tillräckligt med information för att göra dem användbara.

Hitta sökningar i området runt en enhet efter molnankare och returnerar alla som den kunde identifiera. Den här processen kallas för grov omlokalisering.

IBindingOracle – dela molnankar-ID:er

IBindingOracle-gränssnittet finns ett sätt att bevara och dela bindningar mellan SpacePins och specifika molnankare. Mer specifikt bevaras space-pin-ID/cloud-anchor-ID-par, tillsammans med namnet på IBinder.

Oraklets gränssnitt är extremt enkelt. IBinderMed en kan den antingen placeraIBinderbindningar eller hämta dem. Placera lagrar dem och Hämta hämtar dem. Mekanismen för lagring och hämtning lämnas till implementeringen av den konkreta klassen som implementerar IBindingOracle-gränssnittet.

Det här exemplet implementerar möjligen enklast möjliga IBindingOracle i form av klassen SpacePinBinderFile. På Put skriver den IBinderbindningarna till en textfil. På Hämta läser den dem från textfilen (om den är tillgänglig) och matar in dem i IBinder.

ILocalPeg – blob som markerar en position i fysiskt utrymme

ILocalPeg-gränssnittet är en abstraktion av ett lokalt fästpunkt för enheten. I en mer perfekt värld skulle de nödvändiga ILocalPegs hanteras internt av IPublisher. Enhetens lokala fästpunkter fungerar dock mycket bättre när de skapas medan enheten ligger i närheten av fästpunktens pose. Den IPublisher enda vet var enhetens lokala fästpunkter ska placeras när de behövs, inte vid den optimala tidpunkten för att skapa dem.

SpacePinASA vet när den bästa tiden för att skapa sin lokala fästpunkt är. När manipuleringen av SpacePin slutar och dess poseuppsättning begär IPublisher SpacePinASA att skapa en ogenomskinlig lokal peg vid önskad pose. SpacePinBinder hämtar sedan ILocalPeg från SpacePinASA och skickar den till den IPublisher som ska användas för att skapa ett rumsligt molnankare.

Se även