/// <summary> /// Get all the displacements that are sewable with this one. /// </summary> /// <param name="fromList">Optional list to search. If not specified, the entire map will be searched.</param> /// <returns>A list of sewable displacements.</returns> public IEnumerable <Displacement> GetSewableDisplacements(IEnumerable <Displacement> fromList = null) { if (fromList == null) { fromList = MapObject.GetRoot(Parent) .Find(HasSewableDisplacement).OfType <Solid>() .SelectMany(x => x.Faces).OfType <Displacement>(); } return(fromList.Where(IsSewableTo)); }