// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using Microsoft.MixedReality.Toolkit.Utilities;
using System;
using UnityEngine;
namespace Microsoft.MixedReality.Toolkit.SpatialAwareness
{
[Serializable]
public struct MixedRealitySpatialObserverConfiguration : IMixedRealityServiceConfiguration
{
[SerializeField]
[Implements(typeof(IMixedRealitySpatialAwarenessObserver), TypeGrouping.ByNamespaceFlat)]
private SystemType componentType;
///
public SystemType ComponentType => componentType;
[SerializeField]
private string componentName;
///
public string ComponentName => componentName;
[SerializeField]
private uint priority;
///
public uint Priority => priority;
[SerializeField]
[EnumFlags]
private SupportedPlatforms runtimePlatform;
///
public SupportedPlatforms RuntimePlatform => runtimePlatform;
[SerializeField]
private BaseSpatialAwarenessObserverProfile observerProfile;
///
public BaseMixedRealityProfile Profile => observerProfile;
///
/// Spatial Observer specific configuration profile.
///
public BaseSpatialAwarenessObserverProfile ObserverProfile => observerProfile;
///
/// Constructor.
///
/// The of the observer.
/// The friendly name of the observer.
/// The load priority of the observer.
/// The runtime platform(s) supported by the observer.
/// The configuration profile for the observer.
public MixedRealitySpatialObserverConfiguration(
SystemType componentType,
string componentName,
uint priority,
SupportedPlatforms runtimePlatform,
BaseSpatialAwarenessObserverProfile configurationProfile)
{
this.componentType = componentType;
this.componentName = componentName;
this.priority = priority;
this.runtimePlatform = runtimePlatform;
this.observerProfile = configurationProfile;
}
}
}