#pragma once class DiffuseMaterial final : public Material { public: DiffuseMaterial(); ~DiffuseMaterial() override = default; DiffuseMaterial(const DiffuseMaterial& other) = delete; DiffuseMaterial(DiffuseMaterial&& other) noexcept = delete; DiffuseMaterial& operator=(const DiffuseMaterial& other) = delete; DiffuseMaterial& operator=(DiffuseMaterial&& other) noexcept = delete; void SetDiffuseTexture(const std::wstring& assetFile); protected: void InitializeEffectVariables() override; void OnUpdateModelVariables(const SceneContext&, const ModelComponent*) const override; private: TextureData* m_pDiffuseTexture{}; };