CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
Entity.hpp File Reference
#include "Forward.hpp"
#include "Action.hpp"
#include "Component.hpp"
#include "EntityID.hpp"
#include "Event.hpp"
#include "CeresEngine/DataTypes.hpp"
#include "CeresEngine/Macros.hpp"
#include "CeresEngine/Foundation/Event.hpp"
#include "CeresEngine/Foundation/Generator.hpp"
#include "CeresEngine/Foundation/Hash.hpp"
#include "CeresEngine/Foundation/String.hpp"
#include "CeresEngine/Foundation/Container/SmallVector.hpp"
#include "CeresEngine/Foundation/Container/Tuple.hpp"
#include <iosfwd>
#include <type_traits>
#include "Component.inl"
#include "Entity.inl"

Go to the source code of this file.

Classes

class  CeresEngine::Entity
 The base entity class. More...
 
struct  CeresEngine::EntityChange
 A structure that encodes a change to an entity field. More...
 
struct  CeresEngine::EntityChangeSet
 
struct  CeresEngine::EntityCreated
 An event that gets dispatched when an entity has been created. More...
 
struct  CeresEngine::EntityDestroyed
 An event that gets dispatched when an entity has been destroyed. More...
 
struct  CeresEngine::EntityParentChanged
 An event that gets dispatched when an entity parent is changed. More...
 
struct  CeresEngine::EntityNameChanged
 An event that gets dispatched when an entity name is changed. More...
 
struct  CeresEngine::ComponentAdded< C >
 An event that gets dispatched when a new component of type C gets added to an entity. More...
 
struct  CeresEngine::ComponentRemoved< C >
 An event that gets dispatched when a component of type C gets removed from an entity. More...
 
struct  CeresEngine::EntityDirty
 An event that gets dispatched whenever the entity is marked as dirty. More...
 
class  CeresEngine::EntityObject< Components >
 A type-safe entity type. More...
 
struct  CeresEngine::EntityObject< Components >::_MaskObject
 A trait that contains the minimum necessary component mask for an entity to be an entity object of this type. More...
 
struct  CeresEngine::EntityObjectTraits< E >
 
struct  CeresEngine::EntityObjectTraits< EntityObject< Components... > >
 
struct  CeresEngine::EntityObjectSet< EOs >
 
struct  CeresEngine::EntityObjectSet<>
 

Namespaces

namespace  CeresEngine
 

Concepts

concept  CeresEngine::CEntityObject
 

Macros

#define CE_ENTITY_OBJECT_HASH(T)    template<> struct std::hash<T> : public std::hash<CeresEngine::Entity> {}
 

Typedefs

template<typename O , typename T = void>
using CeresEngine::ifEntityObject = typename std::enable_if< isEntityObject< O >, T >::type
 If the type E is a entity object (as defined by isEntityObject<S>), this type is aliased to T.
 

Functions

template<CEntityObject E>
constexpr void CeresEngine::checkEntityObject ()
 A trait that checks if the type E is a valid entity object type.
 

Variables

template<typename E >
constexpr bool CeresEngine::isEntityObject
 A trait that checks if the type E is a entity object.
 
template<typename... Es>
constexpr bool CeresEngine::areEntityObjects = (isEntityObject<Es> && ...)
 A trait that checks if the types Es are all entity objects.
 

Macro Definition Documentation

◆ CE_ENTITY_OBJECT_HASH

#define CE_ENTITY_OBJECT_HASH (   T)     template<> struct std::hash<T> : public std::hash<CeresEngine::Entity> {}