X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgame%2Fentity.h;h=c28cbe5075b94567709ba562f33698097e959e29;hb=c809f54b802727926bae40e9fe67d0e3c94fd2c0;hp=7c7ee89fe85cf2c117fccd7f259540dafe3b93b6;hpb=5ef7c7a9e1e6681ce43fae217e0c3a1b846e6874;p=libs%2Fgame.git diff --git a/source/game/entity.h b/source/game/entity.h index 7c7ee89..c28cbe5 100644 --- a/source/game/entity.h +++ b/source/game/entity.h @@ -2,11 +2,14 @@ #define MSP_GAME_ENTITY_H_ #include "handle.h" +#include "owned.h" namespace Msp::Game { class Component; class Stage; +class Transform; +struct TransformValues; class hierarchy_error: public std::logic_error { @@ -16,13 +19,18 @@ public: class Entity { +public: + enum TransformTag { NO_TRANSFORM }; + private: Handle parent; std::vector> components; std::vector> children; + Owned transform; public: - Entity(Handle); + Entity(Handle, TransformTag); + Entity(Handle, const TransformValues &); virtual ~Entity(); void add_component(Handle); @@ -33,7 +41,9 @@ public: Handle get_parent() const { return parent; } Handle get_root(); + const std::vector> &get_children() const { return children; } Stage &get_stage(); + Handle get_transform() const { return transform; } };