Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
 public FingerprintMapper(int[,] fingerprintIndexes, PatchMapper <T>[,] patchMappers)
 {
     m_fingerprintIndexes = fingerprintIndexes;
     m_patchMapppers      = patchMappers;
 }