public PatchMapper <T> Then(PatchMapper <T> then) { var mappings = new Dictionary <T, T>(); foreach (T item in Enum.GetValues(typeof(T))) { mappings.Add(item, then.Map(Map(item))); } return(new PatchMapper <T>(mappings)); }
private static FingerprintMapper <Patches> CreateMirrorMapper() { var fingerprintIndexes = new int[4, 4]; fingerprintIndexes[0, 0] = 0; fingerprintIndexes[0, 1] = 1; fingerprintIndexes[0, 2] = 1; fingerprintIndexes[0, 3] = 0; fingerprintIndexes[1, 0] = 2; fingerprintIndexes[1, 1] = 3; fingerprintIndexes[1, 2] = 3; fingerprintIndexes[1, 3] = 2; fingerprintIndexes[2, 0] = 2; fingerprintIndexes[2, 1] = 3; fingerprintIndexes[2, 2] = 3; fingerprintIndexes[2, 3] = 2; fingerprintIndexes[3, 0] = 0; fingerprintIndexes[3, 1] = 1; fingerprintIndexes[3, 2] = 1; fingerprintIndexes[3, 3] = 0; var patchMappers = new PatchMapper <Patches> [4, 4]; patchMappers[0, 0] = PatchMapper <Patches> .IdentityMapper; patchMappers[0, 1] = PatchMapper <Patches> .IdentityMapper; patchMappers[0, 2] = PatchMapper <Patches> .IdentityMapper; patchMappers[0, 3] = PatchMapper <Patches> .IdentityMapper; patchMappers[1, 0] = PatchMapper <Patches> .IdentityMapper; patchMappers[1, 1] = PatchMapper <Patches> .IdentityMapper; patchMappers[1, 2] = PatchMapper <Patches> .IdentityMapper; patchMappers[1, 3] = PatchMapper <Patches> .IdentityMapper; patchMappers[2, 0] = PatchMapper <Patches> .IdentityMapper; patchMappers[2, 1] = PatchMapper <Patches> .IdentityMapper; patchMappers[2, 2] = PatchMapper <Patches> .IdentityMapper; patchMappers[2, 3] = PatchMapper <Patches> .IdentityMapper; patchMappers[3, 0] = PatchMapper <Patches> .IdentityMapper; patchMappers[3, 1] = PatchMapper <Patches> .IdentityMapper; patchMappers[3, 2] = PatchMapper <Patches> .IdentityMapper; patchMappers[3, 3] = PatchMapper <Patches> .IdentityMapper; return(new FingerprintMapper <Patches>(fingerprintIndexes, patchMappers)); }
public FingerprintMapper(int[,] fingerprintIndexes, PatchMapper <T>[,] patchMappers) { m_fingerprintIndexes = fingerprintIndexes; m_patchMapppers = patchMappers; }