using System; using System.Collections.Generic; using UnityEngine; namespace Speckle.ConnectorUnity.Models { [Serializable] public class SpeckleObjectHierarchy { public List layers; public SpeckleObjectHierarchy() => layers = new List(); public void Add(SpeckleLayer layer) { layers ??= new List(); layers.Add(layer); } public List GetObjects() => GetObjects(layers); public List GetObjects(List objs) { var res = new List(); foreach (var layer in objs) { if (layer.Data.Valid()) res.AddRange(layer.Data); if (!layer.Layers.Valid()) continue; var kids = GetObjects(layer.Layers); if (kids.Valid()) res.AddRange(kids); } return res; } } }