7 namespace ComponentModel
15 template<
typename ComponentType>
18 static_assert(std::is_base_of<Component, ComponentType>::value,
"<ComponentType> not derived from Component");
44 :
owner(std::move(source.owner))
62 owner = std::move(rhs.owner);
66 ComponentType *
get()
const
68 return owner->getComponent<ComponentType>();
A shared_pointer type pointer to a component in an entity.
Definition: ComponentPtr.h:17
constexpr ComponentPtr(std::nullptr_t)
Construct empty instance.
Definition: ComponentPtr.h:49
std::shared_ptr< Entity > getEntity() const
Get the owning entity.
Definition: ComponentPtr.h:91
ComponentPtr(std::shared_ptr< Entity > &&owner) noexcept
Initializes a component pointer for component in the given entity.
Definition: ComponentPtr.h:31
void reset()
Reset to empty.
Definition: ComponentPtr.h:85
ComponentType * get() const
Definition: ComponentPtr.h:66
ComponentType value_type
Definition: ComponentPtr.h:20
ComponentPtr(const std::shared_ptr< Entity > &owner)
Initializes a component pointer for component in the given entity.
Definition: ComponentPtr.h:25
constexpr bool operator==(const ComponentPtr< ComponentType > &other) const
Comparison operator. If the entity of both objects are equal the objects are considered equal.
Definition: ComponentPtr.h:82
ComponentPtr< ComponentType > & operator=(const ComponentPtr< ComponentType > &rhs)
Definition: ComponentPtr.h:54
ComponentType * operator->() const
Definition: ComponentPtr.h:71
ComponentPtr(const ComponentPtr< ComponentType > &source)
Initializes a component pointer as a copy constructor.
Definition: ComponentPtr.h:37
ComponentPtr(ComponentPtr< ComponentType > &&source) noexcept
Initializes a component pointer using RValue constructor.
Definition: ComponentPtr.h:43
ComponentPtr< ComponentType > & operator=(ComponentPtr< ComponentType > &&rhs) noexcept
Definition: ComponentPtr.h:60
std::shared_ptr< Entity > owner
Definition: ComponentPtr.h:94
Main Cogs namespace.
Definition: MortonCode.h:5