// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using UnityEngine; namespace Microsoft.MixedReality.Toolkit.SpatialAwareness { public partial class SpatialAwarenessPlanarObject : BaseSpatialAwarenessObject { /// /// The BoxCollider associated with this plane's GameObject. /// public BoxCollider Collider { get; set; } private SpatialAwarenessSurfaceTypes planeType = SpatialAwarenessSurfaceTypes.Unknown; /// /// The type of surface (ex: wall) represented by this object. /// public SpatialAwarenessSurfaceTypes SurfaceType { get => planeType; private set => planeType = value; } /// /// Constructor. /// private SpatialAwarenessPlanarObject() : base() { } /// /// Creates a . /// /// /// SpatialAwarenessPlanarObject containing the fields that describe the plane. /// public static SpatialAwarenessPlanarObject CreateSpatialObject( Vector3 center, Vector3 size, Quaternion rotation, int layer, string name, int planeId, SpatialAwarenessSurfaceTypes surfaceType = SpatialAwarenessSurfaceTypes.Unknown) { SpatialAwarenessPlanarObject newPlane = new SpatialAwarenessPlanarObject(); newPlane.Id = planeId; newPlane.SurfaceType = surfaceType; GameObject planeObject = GameObject.CreatePrimitive(PrimitiveType.Cube); planeObject.transform.position = center; planeObject.transform.rotation = rotation; planeObject.transform.localScale = size; planeObject.name = name; planeObject.layer = layer; newPlane.GameObject = planeObject; newPlane.Filter = newPlane.GameObject.GetComponent(); newPlane.Renderer = newPlane.GameObject.GetComponent(); newPlane.Renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; newPlane.Collider = newPlane.GameObject.GetComponent(); return newPlane; } } }