static public IEnumerable <Triangle2> RecursiveSplitSpiralAlongEdgeByArea(this Triangle2 item, float p, float dp, float min_area, int max_recursions) { if (item.GetArea() > min_area && max_recursions >= 1) { return(item.SplitAlongEdgeByPercent(p) .Convert(t => t.RecursiveSplitSpiralAlongEdgeByArea(p + dp, dp, min_area, max_recursions - 1)) .Flatten()); } return(item.WrapAsEnumerable()); }
static public IEnumerable <Triangle2> RecursiveFantizeAtCenterByArea(this Triangle2 item, float min_area, int max_recursions) { if (item.GetArea() > min_area && max_recursions >= 1) { return(item.FantizeAtCenter() .Convert(t => t.RecursiveFantizeAtCenterByArea(min_area, max_recursions - 1)) .Flatten()); } return(item.WrapAsEnumerable()); }