Sdílet prostřednictvím


Synchronizace souřadnicového systému s holografickou vzdálené komunikace a rozhraním API Windows Mixed Reality

S rozhraním API Windows Mixed Reality je souřadnicový systém uživatele zabalen do spatialStationaryFrameOfReference.

Tip

Jednoduchý příklad najdete ve vzdálených ukázkách a ukázkách přehrávače v úložišti Holographic Remoting samples github. Zrušením komentáře #define ENABLE_USER_COORDINATE_SYSTEM_SAMPLE v souborech SampleRemoteApp.h a SamplePlayerMain.h povolte vzorový kód.

Nastavení a aktualizace uživatelského souřadnicového systému v aplikaci Player

Pokud chcete nastavit a aktualizovat systém souřadnic uživatele, zavolejte UpdateUserSpatialFrameOfReference na kontext hráče a předejte do něj SpatialCoordinateSystem . SpatialCoordinateSystem může být například SpatialStationaryFrameOfReference, SpatialLocatorAttachedFrameOfReference nebo SpatialAnchor.

// In the Player app:

// Create a stationary frame of reference
winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference spatialFrameOfReference = nullptr;
winrt::Windows::Perception::Spatial::SpatialLocator spatialLocator = winrt::Windows::Perception::Spatial::SpatialLocator::GetDefault();
if (spatialLocator != nullptr)
{
    spatialFrameOfReference = spatialLocator.CreateStationaryFrameOfReferenceAtCurrentLocation(float3(0.0f, 0.0f, 0.0f), quaternion(0, 0, 0, 1), 0.0);
}

...

// Update the user coordinate system with the coordinate system of the spatial frame of reference
try
{
    SpatialCoordinateSystem userCoordinateSystem = spatialFrameOfReference.CoordinateSystem();
    m_playerContext.UpdateUserSpatialFrameOfReference(userCoordinateSystem);
}
catch (...)
{
}

Poznámka

U ukázky SpatialStationaryFrameOfReference se musí volat v pravidelném intervalu, UpdateUserSpatialFrameOfReference aby se zabránilo posunu po ztrátě sledování zařízení, i když se nezměnil systém souřadnic uživatele!

Získání souřadnicového systému uživatele ve vzdálené aplikaci

Pokud chcete získat přístup k systému souřadnic uživatele, zavolejte GetUserSpatialFrameOfReference ve vzdáleném kontextu. GetUserSpatialFrameOfReference vrátí SpatialStationaryFrameOfReference, který představuje souřadnicový systém uživatele.

// In the Remote app:
winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference spatialUserFrameOfReference = m_remoteContext.GetUserSpatialFrameOfReference();

Viz také