#pragma once #include "Mesh.h" #include "Transform.h" #include "Material.h" #include <memory> class Entity { public: Entity( std::shared_ptr<Material> _material, std::shared_ptr<Mesh> _mesh); void Draw(std::shared_ptr<Camera> _camera, DirectX::XMFLOAT3 _ambient, std::vector<Light> _lights); Transform* GetTransform(); std::shared_ptr<Mesh> GetMesh(); std::shared_ptr<Material> GetMaterial(); void SetMaterial(std::shared_ptr<Material> _material); private: Transform transform; std::shared_ptr<Mesh> mesh; std::shared_ptr<Material> material; };