// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using Microsoft.MixedReality.Toolkit.Utilities; using UnityEngine; namespace Microsoft.MixedReality.Toolkit.SpatialAwareness { public interface IMixedRealitySpatialAwarenessObserver : IMixedRealityDataProvider, IMixedRealityEventSource { /// /// Indicates the developer's intended startup behavior. /// AutoStartBehavior StartupBehavior { get; set; } /// /// Get or sets the default Unity Physics Layer on which to set the spatial object. /// int DefaultPhysicsLayer { get; } /// /// Is the observer running (actively accumulating spatial data)? /// bool IsRunning { get; } /// /// Should the observer remain stationary in the scene? /// /// /// Set IsStationaryObserver to false to move the volume with the user. /// If set to true, the origin will be 0,0,0 or the last known location. /// bool IsStationaryObserver { get; set; } /// /// Gets or sets the type of volume the observer should operate in. /// VolumeType ObserverVolumeType { get; set; } /// /// Gets or sets the extents (1/2 size) of the volume, in meters per axis, from which individual observations will be made. /// /// /// When used when is set to . /// The X value of the extents will be used as the radius. /// Vector3 ObservationExtents { get; set; } /// /// Gets or sets the orientation of the volume in world space. /// /// /// This is only used when is set to /// Quaternion ObserverRotation { get; set; } /// /// Gets or sets the origin, in world space, of the observer. /// /// /// Moving the observer origin allows the spatial awareness system to locate and discard meshes as the user /// navigates the environment. /// Vector3 ObserverOrigin { get; set; } /// /// Gets or sets the frequency, in seconds, at which the spatial observer should update. /// float UpdateInterval { get; set; } /// /// Start | resume the observer. /// void Resume(); /// /// Stop | pause the observer /// void Suspend(); /// /// Clears the observer's collection of observations. /// /// /// If the observer is currently running, calling ClearObservations will suspend it. /// void ClearObservations(); } }