using System.Collections.Generic; using System.Linq; using UnityEngine; namespace Speckle.ConnectorUnity.Models { public class SpeckleLayer : MonoBehaviour { [SerializeField] Transform _parent; [SerializeField] List _data; [SerializeField] List _layers; /// /// Active parent for all layer objects /// public Transform Parent { get => _parent; } /// /// Converted object data within layer /// public List Data { get => _data.Valid() ? _data : new List(); } /// /// Layer Name /// public string LayerName { get => name; set => name = value; } /// /// Nested Layers /// public List Layers { get => _layers.Valid() ? _layers : new List(); } /// /// Set parent for all objects in a layer /// /// public void SetObjectParent(Transform t) { if (t == null) return; _parent = t; if (Data.Any()) Data.ForEach(x => x.transform.SetParent(_parent)); } public void Add(SpeckleLayer layer) { _layers ??= new List(); _layers.Add(layer); } public void Add(GameObject @object) { _data ??= new List(); _data.Add(@object); } } }