/// <inheritdoc/> public override LineSegmentTheoremObject Remap(IReadOnlyDictionary <ConfigurationObject, ConfigurationObject> mapping, bool flattenObjectsFromPoints = false) { // Map particular objects var mappedPoint1 = Point1.Remap(mapping, flattenObjectsFromPoints); var mappedPoint2 = Point2.Remap(mapping, flattenObjectsFromPoints); // Reconstruct based on the fact whether remapping could be done return(mappedPoint1 != null && mappedPoint2 != null // If yes, do the reconstruction ? new LineSegmentTheoremObject(mappedPoint1, mappedPoint2) // If no, return null : null); }