#pragma once class DiffuseOpacityMaterial final : public Material { public: DiffuseOpacityMaterial(); ~DiffuseOpacityMaterial() override = default; DiffuseOpacityMaterial(const DiffuseOpacityMaterial& other) = delete; DiffuseOpacityMaterial(DiffuseOpacityMaterial&& other) noexcept = delete; DiffuseOpacityMaterial& operator=(const DiffuseOpacityMaterial& other) = delete; DiffuseOpacityMaterial& operator=(DiffuseOpacityMaterial&& other) noexcept = delete; void SetDiffuseTexture(const std::wstring& assetFile); void SetOpacityTexture(const std::wstring& assetFile); TextureData* GetOpacityTexture() override; void SetIgnoreLightDirection(bool ignoreLightDir) { SetVariable_Scalar(L"gIgnoreLightDirection", ignoreLightDir); } protected: void InitializeEffectVariables() override; void OnUpdateModelVariables(const SceneContext&, const ModelComponent*) const override; private: TextureData* m_pDiffuseTexture{}; TextureData* m_pOpacityTexture{}; };