// // Created by Epagris on 2020. 03. 19.. // #ifndef ENTITY #define ENTITY #include "Geometry.h" #include "IHasDefault.h" #include "const_bufs.h" namespace eg3d { // nagyítás, forgatás, eltolás struct SRTProps : public IHasDefault { XMFLOAT3 scaling; // nagyítás XMFLOAT3 rotation; // forgatás XMFLOAT3 translation; // pozíció SRTProps(); // konstr. void loadDefaults() override; }; class Entity : public Geometry, public IHasDefault { private: ComPtr mConstBufRes; // konstansbuffer erőforrás a videokártyán CB_Entity mConstBuf; // konstansbuffer SRTProps mSRTProps; // STR-tulajdonságok void constructWorldMatrix(); // világ-mátrix újragenerálása // TODO konstansbuffer létrehozása, feltöltése void createConstantBuffer(); // konstansbuffer létrehozása void updateConstantBuffer(); // konstansbuffer frissítése public: Entity(const ComPtr &device); explicit Entity(const Entity& other); // másolókonstruktor void loadDefaults() override; void setEntitySRT(const SRTProps& srtProps); // SRT-tulajdonságok beállítása SRTProps getEntitySRT() const; // SRT-tualjdonságok elkérése void draw(ComPtr commandList) const override; void setColor(float r, float g, float b); // szín beállítása }; } #endif //ENTITY