// // With appending in this case, we choose the given segment to be the base. // public new static List <FigSynthProblem> AppendShape(Figure outerShape, List <Segment> segments) { List <FigSynthProblem> composed = new List <FigSynthProblem>(); // // Construct the triangles. // foreach (Segment seg in segments) { List <Triangle> tris; IsoscelesTriangle.MakeIsoscelesTriangles(seg, seg.Length, out tris); foreach (Triangle t in tris) { FigSynthProblem prob = Figure.MakeAdditionProblem(outerShape, t); if (prob != null) { composed.Add(prob); } } } return(FigSynthProblem.RemoveSymmetric(composed)); }