|
- #pragma once
-
- // TODO debug!!!
- #include <cxxabi.h>
-
- template<typename T>
- struct type_helper
- {
- static inline std::string name()
- {
- int status;
- auto name = abi::__cxa_demangle(typeid(T).name(), 0, 0, & status);
- return std::string(name ? name : typeid(T).name());
- }
- };
- // TODO debug end
-
- #include <boost/hana.hpp>
- #include <boost/hana/ext/std/tuple.hpp>
-
- #define ecs_define_namespace_beg(parent, name) \
- parent { \
- namespace name
-
- #define ecs_define_namespace_end(parent) \
- } \
- parent
-
- #define beg_namespace_ecs namespace ecs
- #define end_namespace_ecs
-
- #define beg_namespace_ecs_context ecs_define_namespace_beg(beg_namespace_ecs, context)
- #define end_namespace_ecs_context ecs_define_namespace_end(end_namespace_ecs)
-
- #define beg_namespace_ecs_core ecs_define_namespace_beg(beg_namespace_ecs, core)
- #define end_namespace_ecs_core ecs_define_namespace_end(end_namespace_ecs)
-
- #define beg_namespace_ecs_core_component ecs_define_namespace_beg(beg_namespace_ecs_core, component)
- #define end_namespace_ecs_core_component ecs_define_namespace_end(end_namespace_ecs_core)
-
- #define beg_namespace_ecs_core_component_storage ecs_define_namespace_beg(beg_namespace_ecs_core_component, storage)
- #define end_namespace_ecs_core_component_storage ecs_define_namespace_end(end_namespace_ecs_core_component)
-
- #define beg_namespace_ecs_core_entity ecs_define_namespace_beg(beg_namespace_ecs_core, entity)
- #define end_namespace_ecs_core_entity ecs_define_namespace_end(end_namespace_ecs_core)
-
- #define beg_namespace_ecs_core_entity_storage ecs_define_namespace_beg(beg_namespace_ecs_core_entity, storage)
- #define end_namespace_ecs_core_entity_storage ecs_define_namespace_end(end_namespace_ecs_core_entity)
-
- #define beg_namespace_ecs_core_mp ecs_define_namespace_beg(beg_namespace_ecs_core, mp)
- #define end_namespace_ecs_core_mp ecs_define_namespace_end(end_namespace_ecs_core)
-
- #define beg_namespace_ecs_core_mp_list ecs_define_namespace_beg(beg_namespace_ecs_core_mp, list)
- #define end_namespace_ecs_core_mp_list ecs_define_namespace_end(end_namespace_ecs_core_mp)
-
- #define beg_namespace_ecs_core_mp_option_map ecs_define_namespace_beg(beg_namespace_ecs_core_mp, option_map)
- #define end_namespace_ecs_core_mp_option_map ecs_define_namespace_end(end_namespace_ecs_core_mp)
-
- #define beg_namespace_ecs_core_mp_tag ecs_define_namespace_beg(beg_namespace_ecs_core_mp, tag)
- #define end_namespace_ecs_core_mp_tag ecs_define_namespace_end(end_namespace_ecs_core_mp)
-
- #define beg_namespace_ecs_core_system ecs_define_namespace_beg(beg_namespace_ecs_core, system)
- #define end_namespace_ecs_core_system ecs_define_namespace_end(end_namespace_ecs_core)
-
- #define beg_namespace_ecs_core_parallelism ecs_define_namespace_beg(beg_namespace_ecs_core_system, parallelism)
- #define end_namespace_ecs_core_parallelism ecs_define_namespace_end(end_namespace_ecs_core_system)
-
- #define beg_namespace_ecs_core_system_scheduler ecs_define_namespace_beg(beg_namespace_ecs_core_system, scheduler)
- #define end_namespace_ecs_core_system_scheduler ecs_define_namespace_end(end_namespace_ecs_core_system)
-
- #define beg_namespace_ecs_core_system_storage ecs_define_namespace_beg(beg_namespace_ecs_core_system, storage)
- #define end_namespace_ecs_core_system_storage ecs_define_namespace_end(end_namespace_ecs_core_system)
-
- #define beg_namespace_ecs_core_utils ecs_define_namespace_beg(beg_namespace_ecs_core, utils)
- #define end_namespace_ecs_core_utils ecs_define_namespace_end(end_namespace_ecs_core)
-
- #define beg_namespace_ecs_settings ecs_define_namespace_beg(beg_namespace_ecs, settings)
- #define end_namespace_ecs_settings ecs_define_namespace_end(end_namespace_ecs)
-
- #define beg_namespace_ecs_settings_entity_storage ecs_define_namespace_beg(beg_namespace_ecs_settings, entity_storage)
- #define end_namespace_ecs_settings_entity_storage ecs_define_namespace_end(end_namespace_ecs_settings)
-
- #define beg_namespace_ecs_settings_refresh_parallelism ecs_define_namespace_beg(beg_namespace_ecs_settings, refresh_parallelism)
- #define end_namespace_ecs_settings_refresh_parallelism ecs_define_namespace_end(end_namespace_ecs_settings)
-
- #define beg_namespace_ecs_settings_scheduler ecs_define_namespace_beg(beg_namespace_ecs_settings, scheduler)
- #define end_namespace_ecs_settings_scheduler ecs_define_namespace_end(end_namespace_ecs_settings)
-
- #define beg_namespace_ecs_settings_system_storage ecs_define_namespace_beg(beg_namespace_ecs_settings, system_storage)
- #define end_namespace_ecs_settings_system_storage ecs_define_namespace_end(end_namespace_ecs_settings)
-
- #define beg_namespace_ecs_signature ecs_define_namespace_beg(beg_namespace_ecs, signature)
- #define end_namespace_ecs_signature ecs_define_namespace_end(end_namespace_ecs)
-
- #define beg_namespace_ecs_signature_component ecs_define_namespace_beg(beg_namespace_ecs_signature, component)
- #define end_namespace_ecs_signature_component ecs_define_namespace_end(end_namespace_ecs_signature)
-
- #define beg_namespace_ecs_signature_component_storage ecs_define_namespace_beg(beg_namespace_ecs_signature_component, storage)
- #define end_namespace_ecs_signature_component_storage ecs_define_namespace_end(end_namespace_ecs_signature_component)
-
- #define beg_namespace_ecs_signature_system ecs_define_namespace_beg(beg_namespace_ecs_signature, system)
- #define end_namespace_ecs_signature_system ecs_define_namespace_end(end_namespace_ecs_signature)
-
- #define beg_namespace_ecs_signature_system_output ecs_define_namespace_beg(beg_namespace_ecs_signature_system, output)
- #define end_namespace_ecs_signature_system_output ecs_define_namespace_end(end_namespace_ecs_signature_system)
-
- #define beg_namespace_ecs_signature_system_parallelism ecs_define_namespace_beg(beg_namespace_ecs_signature_system, parallelism)
- #define end_namespace_ecs_signature_system_parallelism ecs_define_namespace_end(end_namespace_ecs_signature_system)
-
- #define beg_namespace_ecs_signature_list ecs_define_namespace_beg(beg_namespace_ecs, signature_list)
- #define end_namespace_ecs_signature_list ecs_define_namespace_end(end_namespace_ecs)
-
- #define beg_namespace_ecs_signature_list_component ecs_define_namespace_beg(beg_namespace_ecs_signature_list, component)
- #define end_namespace_ecs_signature_list_component ecs_define_namespace_end(end_namespace_ecs_signature_list)
-
- #define beg_namespace_ecs_signature_list_system ecs_define_namespace_beg(beg_namespace_ecs_signature_list, system)
- #define end_namespace_ecs_signature_list_system ecs_define_namespace_end(end_namespace_ecs_signature_list)
-
- #define beg_namespace_ecs_system_execution_adapter ecs_define_namespace_beg(beg_namespace_ecs, system_execution_adapter)
- #define end_namespace_ecs_system_execution_adapter ecs_define_namespace_end(end_namespace_ecs)
-
- #define beg_namespace_ecs_tag ecs_define_namespace_beg(beg_namespace_ecs, tag)
- #define end_namespace_ecs_tag ecs_define_namespace_end(end_namespace_ecs)
-
- #define beg_namespace_ecs_tag_component ecs_define_namespace_beg(beg_namespace_ecs_tag, component)
- #define end_namespace_ecs_tag_component ecs_define_namespace_end(end_namespace_ecs_tag)
-
- #define beg_namespace_ecs_tag_system ecs_define_namespace_beg(beg_namespace_ecs_tag, system)
- #define end_namespace_ecs_tag_system ecs_define_namespace_end(end_namespace_ecs_tag)
-
- namespace ecs
- {
-
- namespace hana = ::boost::hana;
-
- }
|