#pragma once #include #include #include class Entity { protected: Vector3 position{0, 0, 0}; Vector3 rotation{0, 0, 0}; Vector3 velocity{0, 0, 0}; uint32_t id{0}; bool active{true}; public: Entity() = default; Entity(const Vector3& pos, uint32_t entityId = 0); virtual ~Entity() = default; virtual void update(float deltaTime); virtual void render(); void setPosition(const Vector3& pos) { position = pos; } void setRotation(const Vector3& rot) { rotation = rot; } void setVelocity(const Vector3& vel) { velocity = vel; } void setId(uint32_t entityId) { id = entityId; } void setActive(bool isActive) { active = isActive; } Vector3 getPosition() const { return position; } Vector3 getRotation() const { return rotation; } Vector3 getVelocity() const { return velocity; } uint32_t getId() const { return id; } bool isActive() const { return active; } void move(const Vector3& delta); void rotate(const Vector3& delta); };