Sha256: 375c65c551ca6450bcc137beeb2d6d75d5d4f47eb12110623b6203f5bddc7902

Contents?: true

Size: 668 Bytes

Versions: 6

Compression:

Stored size: 668 Bytes

Contents

package org.sunflow.core.filter;

import org.sunflow.core.Filter;

public class LanczosFilter implements Filter {

    @Override
    public float getSize() {
        return 4.0f;
    }

    @Override
    public float get(float x, float y) {
        return sinc1d(x * 0.5f) * sinc1d(y * 0.5f);
    }

    private float sinc1d(float x) {
        x = Math.abs(x);
        if (x < 1e-5f) {
            return 1;
        }
        if (x > 1.0f) {
            return 0;
        }
        x *= Math.PI;
        float sinc = (float) Math.sin(3 * x) / (3 * x);
        float lanczos = (float) Math.sin(x) / x;
        return sinc * lanczos;
    }
}

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
joonsrenderer-1.3.1-java src/main/java/org/sunflow/core/filter/LanczosFilter.java
joonsrenderer-1.2.0-java src/main/java/org/sunflow/core/filter/LanczosFilter.java
joonsrenderer-1.1.3-java src/main/java/org/sunflow/core/filter/LanczosFilter.java
joonsrenderer-1.1.2-java src/main/java/org/sunflow/core/filter/LanczosFilter.java
joonsrenderer-1.1.1-java src/main/java/org/sunflow/core/filter/LanczosFilter.java
joonsrenderer-1.1-java src/main/java/org/sunflow/core/filter/LanczosFilter.java