#
Localizer
The Localizer component configures and manages LocalizationMethods.
#
Interface
public interface ILocalizer
{
ILocalizationMethod[] AvailableLocalizationMethods { get; }
Task<ILocalizerConfigurationResult> ConfigureLocalizer(ILocalizerConfiguration configuration);
Task<ILocalizationResults> Localize(ICameraData cameraData);
Task StopAndCleanUp();
}
#
ConfigureLocalization
Implementations of this method are expected to set up the Localizer.
Implementations receive ILocalizationConfiguration which includes a Dictionary mapping XRMaps to their associated ILocalizationMethods.
The implementation should return a simple result describing success.
public interface ILocalizationConfiguration
{
Dictionary<ILocalizationMethod, XRMap[]> LocalizationMethodXRMapMapping { get; }
}
public interface ILocalizationConfigurationResult
{
public bool Success { get; }
}
The SDK will call this in the beginning of runtime, after PlatformSupport has been configured.
#
Localize
Implementations of this method return a collection of localization results:
public interface ILocalizationResults
{
ILocalizationResult[] results { get; }
}
ILocalizationResult is declared together with ILocalizationMethod.
ImmersalSession calls this after getting data from PlatformSupport update as part of it's pipeline cycle.
#
StopAndCleanUp
Implementations of this method are expected to stop any running processes tied to the Localizer in a graceful manner. The Localizer should take care of removing any event subscriptions and cancel any asynchronous tasks etc. The Localizer should be ready for a new call to ConfigureLocalization some time after this method has run.
This is called by the SDK when a full reset is requested.
#
Implementation
The SDK comes with a ready to use implementation of a Localizer with the following features:
- Management and configuration of ILocalizationMethods
- Parallel localization with each configured ILocalizationMethod.
- Events based on localization results