/*************************************/ public bool SetDataTree <T>(int index, IEnumerable <IEnumerable <T> > data) { IGH_Param root; if (PrincipalParameterIndex != -1) { root = Inputs[PrincipalParameterIndex]; } else { root = Inputs.FindAll(p => p.Access == GH_ParamAccess.tree).FirstOrDefault() ?? Inputs.First(); } return(GH_Accessor.SetDataTree(index, BH.Engine.Grasshopper.Create.DataTree(data.ToList(), GH_Accessor.Iteration, root.VolatileData.Paths))); }
/*************************************/ public List <T> GetDataList <T>(int index) { if (GH_Accessor == null) { return(new List <T>()); } IGH_TypeHint hint = null; Param_Variable scriptParam = Inputs[index] as Param_Variable; if (scriptParam != null) { hint = scriptParam.SelectedHint; } List <IGH_Goo> goo = new List <IGH_Goo>(); GH_Accessor.GetDataList <IGH_Goo>(index, goo); return(goo.Select(x => Helpers.IFromGoo <T>(x, hint)).ToList()); }
/*************************************/ /**** Input Getter Methods ****/ /*************************************/ public T GetDataItem <T>(int index) { if (GH_Accessor == null) { return(default(T)); } IGH_Goo goo = null; GH_Accessor.GetData(index, ref goo); IGH_TypeHint hint = null; Param_Variable scriptParam = Inputs[index] as Param_Variable; if (scriptParam != null) { hint = scriptParam.SelectedHint; } return(Helpers.IFromGoo <T>(goo, hint)); }
/*************************************/ /**** Private Methods ****/ /*************************************/ private List <List <T> > ConvertDataTree <T, TG>(GH_Structure <TG> structure, int index, List <List <T> > result) where TG : IGH_Goo { GH_Accessor.GetDataTree(index, out structure); result = structure.Branches.Select(x => x.Select(y => Helpers.IFromGoo <T>(y)).ToList()).ToList(); return(result); }
/*************************************/ public bool SetDataList <T>(int index, IEnumerable <T> data) { return(GH_Accessor.SetDataList(index, (IEnumerable <T>)data)); }
/*************************************/ /**** Output Setter Methods ****/ /*************************************/ public bool SetDataItem <T>(int index, T data) { return(GH_Accessor.SetData(index, data)); }