// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.Collections.Generic; using UnityEngine; namespace Microsoft.MixedReality.Toolkit.SpatialAwareness { /// /// The interface for defining an which provides mesh data. /// public interface IMixedRealitySpatialAwarenessMeshObserver : IMixedRealitySpatialAwarenessObserver { /// /// Gets or sets a value indicating how the mesh subsystem is to display surface meshes within the application. /// /// /// Applications that wish to process the Meshes should set this value to None. /// SpatialAwarenessMeshDisplayOptions DisplayOption { get; set; } /// /// Gets or sets the level of detail, as a MixedRealitySpatialAwarenessMeshLevelOfDetail value, for the returned spatial mesh. /// Setting this value to Custom, implies that the developer is specifying a custom value for MeshTrianglesPerCubicMeter. /// /// /// Specifying any other value will cause to be overwritten. /// SpatialAwarenessMeshLevelOfDetail LevelOfDetail { get; set; } /// /// Gets the collection of s being managed by the observer. /// IReadOnlyDictionary Meshes { get; } /// /// Get or sets the desired Unity Physics Layer on which to set the spatial mesh. /// /// /// If not explicitly set, it is recommended that implementations return . /// int MeshPhysicsLayer { get; set; } /// /// Gets the bit mask that corresponds to the value specified in . /// int MeshPhysicsLayerMask { get; } /// /// Indicates whether or not mesh normals should be recalculated by the observer. /// bool RecalculateNormals { get; set; } /// /// Gets or sets the level of detail, in triangles per cubic meter, for the returned spatial mesh. /// /// /// When specifying a other than Custom, this value will be automatically overwritten with system default values. /// int TrianglesPerCubicMeter { get; set; } /// /// Gets or sets the Material to be used when spatial Meshes should occlude other objects. /// Material OcclusionMaterial { get; set; } /// /// Gets or sets the Material to be used when displaying Meshes. /// Material VisibleMaterial { get; set; } } }