Esempio n. 1
0
 /// <summary>
 /// Find all possible mappings that would keep this configuration symmetric if all objects
 /// were remapping according to them. If the configuration is not symmetric, then there will
 /// not be any result. For more information see <see cref="LooseObjectHolder.GetSymmetricMappings"/>.
 /// </summary>
 /// <returns>The numerable of all possible mappings keeping the symmetry.</returns>
 public IEnumerable <IReadOnlyDictionary <ConfigurationObject, ConfigurationObject> > GetSymmetryMappings()
 // Take all symmetric mappings
 => LooseObjectsHolder.GetSymmetricMappings()
 // Remap the constructed objects as well
 .Select(mappedLooseObjects => (mappedLooseObjects, mappedConstructedObjects: ConstructedObjects
Esempio n. 2
0
 /// <summary>
 /// Determines if the configuration is fully symmetric, i.e. <see cref="LooseObjectHolder.GetSymmetricMappings"/>
 /// produces only mappings that keeps this configuration the same.
 /// </summary>
 /// <returns>true, if the configuration is fully symmetric; false otherwise.</returns>
 public bool IsFullySymmetric() => GetSymmetryMappings().Count() == LooseObjectsHolder.GetSymmetricMappings().Count();