Exemplo n.º 1
0
    public static System.Func <float, float, float> ChooseFunc(Defines.GeneratorLayer layerParams)
    {
        var scale    = layerParams.scale;
        var offset   = layerParams.offset;
        var funcType = layerParams.function;

        switch (funcType)
        {
        case GeneratingFunctionType2d.Sines:
            return((x, y) => GeneratorMethods2d.Sines(
                       (x + offset.x) / scale, (y + offset.y) / scale));

        case GeneratingFunctionType2d.DiagLines:
            return((x, y) => GeneratorMethods2d.DiagonalLines(
                       (x + offset.x), (y + offset.y), scale));

        case GeneratingFunctionType2d.Perlin:
            return((x, y) => GeneratorMethods2d.BasicPerlin(
                       (x + offset.x) / scale, (y + offset.y) / scale));

        case GeneratingFunctionType2d.Squares:
            return((x, y) => GeneratorMethods2d.Squares(
                       (x + offset.x) / scale, (y + offset.y) / scale));

        default:
            return((x, y) => 1 / ((x + offset.x) / scale + (y + offset.y) / scale));
        }
    }