Example #1
0
        /// <summary>`source` size must be dividable by `N`</summary>
        public static Model create(ref Map source, int N, Vec2i outputSize)
        {
            if (outputSize.x % N != 0 || outputSize.y % N != 0)
            {
                throw new System.Exception($"output size {outputSize} must be dividable with N={N}");
            }

            var gridSize = outputSize / N;
            var patterns = RuleData.extractEveryChunk(ref source, N, PatternUtil.variations);
            var rule     = AdjacencyModel.buildRule(patterns, ref source);

            return(new Model(gridSize, patterns, rule));
        }