neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
i_component_data.hpp File Reference

Go to the source code of this file.

Classes

struct  neolib::ecs::i_component_data
 
struct  neolib::ecs::i_component_data::meta
 
struct  neolib::ecs::i_component_data::meta::invalid_field_index
 

Namespaces

namespace  neolib
 
namespace  neolib::ecs
 

Typedefs

template<class _Ty >
using neolib::ecs::ecs_data_type_t = std::remove_cv_t< std::remove_reference_t< _Ty > >
 

Enumerations

enum class  neolib::ecs::component_data_field_type : uint32_t {
  neolib::ecs::Invalid = 0x00000000 , neolib::ecs::Bool = 0x00000001 , neolib::ecs::Int8 = 0x00000002 , neolib::ecs::Uint8 = 0x00000003 ,
  neolib::ecs::Int16 = 0x00000004 , neolib::ecs::Uint16 = 0x00000005 , neolib::ecs::Int32 = 0x00000006 , neolib::ecs::Uint32 = 0x00000007 ,
  neolib::ecs::Int64 = 0x00000008 , neolib::ecs::Uint64 = 0x00000009 , neolib::ecs::Float32 = 0x0000000A , neolib::ecs::Float64 = 0x0000000B ,
  neolib::ecs::Scalar = Float64 , neolib::ecs::BasicVec2 = 0x00000100 , neolib::ecs::BasicVec3 = 0x00000200 , neolib::ecs::BasicVec4 = 0x00000300 ,
  neolib::ecs::Vec2 = BasicVec2 | Float64 , neolib::ecs::Vec3 = BasicVec3 | Float64 , neolib::ecs::Vec4 = BasicVec4 | Float64 , neolib::ecs::Vec2f = BasicVec2 | Float32 ,
  neolib::ecs::Vec3f = BasicVec3 | Float32 , neolib::ecs::Vec4f = BasicVec4 | Float32 , neolib::ecs::Vec2i32 = BasicVec2 | Int32 , neolib::ecs::Vec3i32 = BasicVec3 | Int32 ,
  neolib::ecs::Vec4i32 = BasicVec4 | Int32 , neolib::ecs::Vec2u32 = BasicVec2 | Uint32 , neolib::ecs::Vec3u32 = BasicVec3 | Uint32 , neolib::ecs::Vec4u32 = BasicVec4 | Uint32 ,
  neolib::ecs::Vec2i64 = BasicVec2 | Int64 , neolib::ecs::Vec3i64 = BasicVec3 | Int64 , neolib::ecs::Vec4i64 = BasicVec4 | Int64 , neolib::ecs::Vec2u64 = BasicVec2 | Uint64 ,
  neolib::ecs::Vec3u64 = BasicVec3 | Uint64 , neolib::ecs::Vec4u64 = BasicVec4 | Uint64 , neolib::ecs::Triangle = Vec3u32 , neolib::ecs::Face = Triangle ,
  neolib::ecs::BasicMat22 = 0x00000400 , neolib::ecs::BasicMat33 = 0x00000500 , neolib::ecs::BasicMat44 = 0x00000600 , neolib::ecs::Mat22 = BasicMat22 | Float64 ,
  neolib::ecs::Mat33 = BasicMat33 | Float64 , neolib::ecs::Mat44 = BasicMat44 | Float64 , neolib::ecs::Aabb = 0x00001000 , neolib::ecs::Aabb2d = 0x00002000 ,
  neolib::ecs::String = 0x00010000 , neolib::ecs::Enum = 0x000B0000 , neolib::ecs::Uuid = 0x000C0000 , neolib::ecs::Id = 0x000D0000 ,
  neolib::ecs::SmallId = 0x000E0000 , neolib::ecs::ComponentData = 0x000F0000 , neolib::ecs::Optional = 0x01000000 , neolib::ecs::Array = 0x02000000 ,
  neolib::ecs::Shared = 0x04000000 , neolib::ecs::Cache = 0x40000000 , neolib::ecs::Internal = 0x80000000
}
 

Functions

constexpr component_data_field_type neolib::ecs::operator| (component_data_field_type aLhs, component_data_field_type aRhs)
 
constexpr component_data_field_type neolib::ecs::operator& (component_data_field_type aLhs, component_data_field_type aRhs)
 
constexpr component_data_field_typeneolib::ecs::operator|= (component_data_field_type &aLhs, component_data_field_type aRhs)
 
constexpr component_data_field_typeneolib::ecs::operator&= (component_data_field_type &aLhs, component_data_field_type aRhs)