WLT+ASA: A támogató szoftverek áttekintése
IBinder
- a SpacePins és az Azure Spatial Anchors kötése
A IBinder
felület a középpontban van, amelyet itt a SpacePinBinder osztály valósít meg. A SpacePinBinder egy Unity Monobehaviour, és konfigurálható a Unity felügyelője vagy szkriptből.
Mindegyik IBinder
neve el van nevezve, így egyetlen IBindingOracle
képes több IBinder
s kötéseinek kezelésére.
IPublisher
- térbeli horgonyok olvasása és írása a felhőbe
A IPublisher
felület kezeli a térbeli horgonyok felhőben való közzétételét, majd lekérését későbbi munkamenetekben vagy más eszközökön. IPublisher
itt implementálva van a PublisherASA osztály. Az aktuális fizikai térben lévő pózadatok rögzítése és lekérése az Azure Spatial Anchors használatával történik.
A térbeli horgony közzétételekor a felhőhorgony azonosítója lesz lekért. Ez az azonosító használható későbbi munkamenetekben vagy más eszközökön a felhőhorgony aktuális koordinátarendszerbeli pózának lekéréséhez, valamint a vele tárolt tulajdonságokhoz. A rendszer mindig hozzáad egy tulajdonságot, amely azonosítja a felhőhorgony társított SpacePinjét.
Megjegyzendő, hogy a IPublisher
PublisherASA nem tud semmit a SpacePinsről. IPublisher
nem tudja és nem is érdekli, hogy mi történik a felhőbeli horgonyadatokkal. Egyszerűsített, várható felületet biztosít a felhőhorgonyok közzétételéhez és lekéréséhez.
Olvasás és keresés
Ha egy felhőhorgony azonosítója ismert, előfordulhat, hogy a felhőhorgonyt az azonosítója kéri le. Ez a módszer a leg robusztusabb módja a felhőhorgony lekérésének. A metódus az Olvasás.
Vannak azonban olyan érdekes forgatókönyvek, amelyekben a felhőhorgonyok azonosítóit egy adott területen nem ismeri az eszköz, de ha lekérhetők a felhőhorgonyok, a térbeli adataik és tulajdonságaik kombinálva elegendő információt biztosítanak ahhoz, hogy hasznossá tegyék őket.
A Keresés megkeresi az eszköz körüli területet a felhőhorgonyok kereséséhez, és visszaadja azokat, amelyeket azonosítani tudott. Ezt a folyamatot durva áthelyezésnek nevezzük.
IBindingOracle – felhőalapú horgonyazonosítók megosztása
Az IBindingOracle interfész lehetővé teszi a kötések megőrzését és megosztását a SpacePins és bizonyos felhőhorgonyok között. Pontosabban megőrzi a szóköz-pin-ID/cloud-anchor-ID párokat, valamint a IBinder
neve.
Az oracle felülete rendkívül egyszerű. Adott egy IBinder
, akkor vagy tedd a IBinder
's kötések, vagy lehet get őket. Helyezze el őket, és kérje le őket. A tárolási és lekérési mechanizmus az IBindingOracle interfészt megvalósító konkrét osztály megvalósítására marad.
Ez a minta a lehető legegyszerűbb IBindingOracle-t implementálja a SpacePinBinderFile osztály formájában. A Put fájlban a IBinder
kötéseket egy szövegfájlba írja. Beolvasáskor beolvassa őket a szövegfájlból (ha van ilyen), és beolvassa őket a IBinder
.
ILocalPeg – a fizikai térben lévő pozíciót jelző blob
Az ILocalPeg interfész egy eszköz helyi horgonyának absztrakciója. Egy tökéletesebb világban, a szükséges ILocalPegs lenne belsőleg kezeli a IPublisher
. Az eszköz helyi horgonyai azonban sokkal jobban működnek, amikor létrejönnek, miközben az eszköz a horgony pózának közelében van. Az IPublisher
egyetlen, aki tudja, hol kell elhelyezni az eszköz helyi horgonyait, amikor szükség van rájuk, és nem az optimális létrehozásukkor.
A SpacePinASA tudja, mikor a legjobb alkalom a helyi horgony létrehozására. Amikor a SpacePin kezelése véget ér, és a pózkészlete véget ér, a SpacePinASA megkéri, IPublisher
hogy hozzon létre egy átlátszatlan helyi csapot a kívánt pózban. A SpacePinBinder ezután lekéri az ILocalPeg-et a SpacePinASA-ról, és átadja a IPublisher
felhőbeli térbeli horgony létrehozásához használandónak.