#pragma once #include #include #include "SimpleShader.h" #include "Transform.h" #include "Camera.h" #include "Lights.h" class Material { public: Material( DirectX::XMFLOAT3 _tint, float _roughness, std::shared_ptr _vertexShader, std::shared_ptr _pixelShader); ~Material(); void Activate( Transform* _transform, std::shared_ptr _camera, DirectX::XMFLOAT3 _ambient, std::vector _lights); DirectX::XMFLOAT3 GetTint(); float GetRoughness(); std::shared_ptr GetVertexShader(); std::shared_ptr GetPixelShader(); void SetTint(DirectX::XMFLOAT3 _tint); void SetRoughness(float _roughness); void SetVertexShader(std::shared_ptr _vertexShader); void SetPixelShader(std::shared_ptr _pixelShader); private: DirectX::XMFLOAT3 tint; float roughness; std::shared_ptr vertexShader; std::shared_ptr pixelShader; };