#pragma once #include "Graphics.h" #include class Bindable; class Drawable { public: Drawable() = default; Drawable( const Drawable& ) = delete; virtual DirectX::XMMATRIX GetTransformXM() const noexcept = 0; void Draw( Graphics& gfx ) const noexcept(!IS_DEBUG); virtual void Update( float dt ) noexcept = 0; void AddBind( std::unique_ptr bind ) noexcept(!IS_DEBUG); void AddIndexBuffer( std::unique_ptr ibuf ) noexcept; virtual ~Drawable() = default; private: const IndexBuffer* pIndexBuffer = nullptr; std::vector> binds; };