WLT+ASA: Přehled podpůrného softwaru
IBinder
– vytvoření vazby SpacePins k Azure Spatial Anchors
Rozhraní IBinder
je ve středu, implementované zde třídou SpacePinBinder. SpacePinBinder je Unity Monobehaviour a může být nakonfigurovaný buď z inspektoru Unity, nebo ze skriptu.
Každý IBinder
má název, takže jeden IBindingOracle
může spravovat vazby pro více IBinder
s.
IPublisher
- čtení a psaní prostorových ukotvení do cloudu
Rozhraní IPublisher
zpracovává publikování prostorových ukotvení do cloudu a jejich následné načítání v pozdějších relacích nebo na jiných zařízeních. IPublisher
je zde implementována s PublisherASA třídy. Zobrazení dat v aktuálním fyzickém prostoru se zachytí a načte pomocí Azure Spatial Anchors.
Při publikování prostorové kotvy se získá ID cloudového ukotvení. Toto ID se může použít v pozdějších relacích nebo na jiných zařízeních k načtení pozice cloudové kotvy v aktuálním souřadnicovém systému spolu se všemi vlastnostmi uloženými s ním. Systém vždy přidá vlastnost identifikující přidružený SpacePin cloudové ukotvení.
Je třeba poznamenat, že IPublisher
, a VydavatelASA, neví nic o SpacePins. IPublisher
neví ani nezajímá, co se bude provádět s daty ukotvení cloudu. Poskytuje zjednodušené očekávané rozhraní pro publikování a načítání cloudových ukotvení.
Čtení a hledání
Pokud je ID cloudového ukotvení známé, může být cloudové ukotvení načteno jeho ID. Tato metoda představuje nejo robustnější způsob, jak načíst cloudové ukotvení. Metoda je Read.
Existují však zajímavé scénáře, ve kterých id cloudových ukotvení v rámci oblasti nejsou zařízením známa, ale pokud by se mohly načíst cloudové kotvy, jejich prostorová data a vlastnosti by se zkombinovaly, aby poskytovaly dostatek informací, aby byly užitečné.
Vyhledá oblast kolem zařízení pro cloudové kotvy a vrátí všechny, které bylo možné identifikovat. Tento proces se označuje jako hrubé přemístění.
IBindingOracle – sdílení ID ukotvení cloudu
Rozhraní IBindingOracle poskytuje způsob uchování a sdílení vazeb mezi SpacePins a konkrétními cloudovými ukotvením. Konkrétně se zachová dvojice space-pin-ID/cloud-anchor-ID spolu s názvem IBinder
.
Rozhraní orákulumu je velmi jednoduché. IBinder
Může buď vložitIBinder
vazby, nebo je může získat. Uložte je a získejte je. Mechanismus ukládání a načítání je ponechán na implementaci konkrétní třídy implementující IBindingOracle rozhraní.
Tato ukázka implementuje pravděpodobně nejjednodušší možné IBindingOracle, ve formě SpacePinBinderFile třídy. Při vložení zapíše IBinder
vazby do textového souboru. Při získání je přečte z textového souboru (pokud je k dispozici) a načte je do IBinder
souboru .
ILocalPeg – objekt blob označující pozici ve fyzickém prostoru
ILocalPeg rozhraní je abstrakce místního ukotvení zařízení. V dokonalejším světě by požadované ILocalPegs byly interně spravovány IPublisher
. Místní ukotvení zařízení ale při vytváření funguje mnohem lépe, když je zařízení v blízkosti pozice ukotvení. Jediné IPublisher
ví, kde by místní kotvy zařízení měly být umístěny, když jsou potřeba, a ne v optimální době jejich vytváření.
SpacePinASA ví, kdy je nejlepší čas vytvořit místní ukotvení. Při manipulaci s SpacePin končí a jeho pozice nastavena, SpacePinASA požádá IPublisher
o vytvoření neprůspěšného místního kolíku v požadovaném stavu. SpacePinBinder pak vytáhne ILocalPeg z SpacePinASA a předá ho k IPublisher
použití při vytváření cloudové prostorové kotvy.