package eu.jonahbauer.raytracing.render.texture;

import eu.jonahbauer.raytracing.math.Vec3;
import eu.jonahbauer.raytracing.scene.HitResult;
import org.jetbrains.annotations.NotNull;

public interface Texture {
    default @NotNull Color get(@NotNull HitResult hit) {
        return get(hit.u(), hit.v(), hit.position());
    }

    @NotNull Color get(double u, double v, @NotNull Vec3 p);

    default boolean isUVRequired() {
        return true;
    }
}
