12#define COMPONENT_LAYOUT(...) \
13 ComponentLayout GetLayout() const override { return ComponentLayout(GetName(), __VA_ARGS__);}
52 inline virtual std::string
GetName()
const {
53 return "Unknown Component Name";
virtual void RenderWhenSelected()
virtual void RenderInEditor()
virtual Component * Clone()=0
virtual void OnNotify(Event &event)
virtual GameObjectComponentDestructor GetDestructor() const =0
virtual void OnSetPosition()
virtual std::string GetName() const
virtual void CopyFrom(Component *other)=0
virtual ComponentLayout GetLayout() const
virtual void OnSetScale()
virtual std::type_index GetTypeIndex() const =0
virtual const void * GetEditorIconHandle() const
virtual GameObjectComponentFactory GetFactory() const =0
std::function< bool()> RemoveFromGOFunc
virtual void OnSetRotation()
virtual bool RemoveFromGameObject()
void SetActive(bool newState)
virtual ~Component()=default
std::function< Component *(std::weak_ptr< GameObject >)> GameObjectComponentFactory
std::function< Component *(std::weak_ptr< GameObject >)> GameObjectComponentGetter
std::function< void(std::weak_ptr< GameObject >)> GameObjectComponentDestructor