public void CalculateStrengthening() { // // Can a quadrilateral be strenghtened? Quad -> trapezoid, Quad -> Parallelogram?, etc. // foreach (Quadrilateral quad in quadrilaterals) { strengthened.AddRange(Quadrilateral.CanBeStrengthened(quad)); } // // Can a triangle be strenghtened? Scalene -> Isosceles -> Equilateral? // foreach (Triangle t in triangles) { strengthened.AddRange(Triangle.CanBeStrengthened(t)); } // // Can an inMiddle relationship be classified as a Midpoint? // foreach (InMiddle im in inMiddles) { Strengthened s = im.CanBeStrengthened(); if (s != null) { strengthened.Add(s); } } // // Right Angles // foreach (Angle angle in angles) { if (Utilities.CompareValues(angle.measure, 90)) { strengthened.Add(new Strengthened(angle, new RightAngle(angle))); } } // // Dumping the Strengthening // if (Utilities.DEBUG) { System.Diagnostics.Debug.WriteLine("Precomputed Strengthening"); foreach (ConcreteAST.Strengthened s in strengthened) { System.Diagnostics.Debug.WriteLine(s.ToString()); } } }