$#include "Component.h" /// Base class for components. Components can be created to scene nodes. class Component : public Serializable { public: /// Set enabled/disabled state. void SetEnabled(bool enable); /// Remove from the scene node. If no other shared pointer references exist, causes immediate deletion. void Remove(); /// Return ID. unsigned GetID() const { return id_; } /// Return scene node. Node* GetNode() const { return node_; } /// Return the scene the node belongs to. Scene* GetScene() const; /// Return whether is enabled. bool IsEnabled() const { return enabled_; } /// Return whether is effectively enabled (node is also enabled.) bool IsEnabledEffective() const; /// Return component in the same scene node by type. If there are several, returns the first. Component* GetComponent(ShortStringHash type) const; };