use crate::Arena;
use anyhow::Result;
use shared::{
    core::texture::SpectrumType,
    textures::{FloatCheckerboardTexture, SpectrumCheckerboardTexture},
    utils::Transform,
};

use crate::{
    core::texture::{
        CreateFloatTexture, CreateSpectrumTexture, FloatTexture, FloatTextureTrait,
        SpectrumTexture, SpectrumTextureTrait,
    },
    utils::{FileLoc, TextureParameterDictionary},
};

impl CreateFloatTexture for FloatCheckerboardTexture {
    fn create(
        _render_from_texture: Transform,
        _parameters: TextureParameterDictionary,
        _loc: FileLoc,
        _arena: &Arena,
    ) -> Result<FloatTexture> {
        todo!()
    }
}

impl FloatTextureTrait for FloatCheckerboardTexture {
    fn evaluate(&self, _ctx: &shared::core::texture::TextureEvalContext) -> shared::Float {
        todo!()
    }
}

impl CreateSpectrumTexture for SpectrumCheckerboardTexture {
    fn create(
        _render_from_texture: Transform,
        _parameters: TextureParameterDictionary,
        _spectrum_type: SpectrumType,
        _loc: FileLoc,
    ) -> Result<SpectrumTexture> {
        todo!()
    }
}

impl SpectrumTextureTrait for SpectrumCheckerboardTexture {
    fn evaluate(
        &self,
        _ctx: &shared::core::texture::TextureEvalContext,
        _lambda: &shared::spectra::SampledWavelengths,
    ) -> shared::spectra::SampledSpectrum {
        todo!()
    }
}
