From 401b1db1a0aaadc645ec01cb8e0df2257d6cdbc9 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Wed, 30 Oct 2019 00:07:19 +0100 Subject: [PATCH] API reference v3.2.0 --- README_8md_source.html | 4 +- actor_8hpp_source.html | 10 +- algorithm_8hpp_source.html | 2 +- annotated.html | 154 +-- autotoc_md0.html | 2 +- autotoc_md48.html | 126 -- autotoc_md49.html => autotoc_md50.html | 26 +- autotoc_md56.html | 116 -- autotoc_md57.html => autotoc_md59.html | 25 +- autotoc_md63.html | 122 -- autotoc_md64.html | 121 -- autotoc_md65.html | 84 -- autotoc_md67.html | 197 +-- autotoc_md68.html | 164 +-- autotoc_md71.html | 251 ++++ autotoc_md77.html | 133 -- autotoc_md8.html | 106 +- autotoc_md78.html => autotoc_md81.html | 12 +- autotoc_md82.html | 123 -- autotoc_md83.html | 123 -- autotoc_md86.html | 124 +- autotoc_md85.html => autotoc_md89.html | 39 +- cache_8hpp_source.html | 37 +- ..._1_1basic__continuous__loader-members.html | 2 +- classentt_1_1basic__continuous__loader.html | 20 +- classentt_1_1basic__group.html | 4 +- ..._t_3_01Get_00_01Other_8_8_8_01_4_01_4.html | 961 -------------- ...1Get_0b1abda5dc7d1ded50c881833d0ec6d4.html | 101 -- ...1Get_1aada3a14110654dc27700c17c9c2396.html | 84 +- ...1Get_54ca6466fcd0506388705164ba2d896f.html | 884 ------------- ...1Get_86b01ab83965ad65f5c8dea9ea3cb0b2.html | 104 -- ...et__t_3_01Get_8_8_8_01_4_01_4-members.html | 29 +- ...4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html | 78 +- ...1Get_9e8a2286698e49212830f433eb636a65.html | 27 +- ...entt_1_1basic__hashed__string-members.html | 2 +- classentt_1_1basic__hashed__string.html | 2 +- classentt_1_1basic__observer-members.html | 2 +- classentt_1_1basic__observer.html | 22 +- classentt_1_1basic__prototype-members.html | 107 -- classentt_1_1basic__registry-members.html | 83 +- classentt_1_1basic__registry.html | 462 ++++--- ...sentt_1_1basic__runtime__view-members.html | 2 +- classentt_1_1basic__runtime__view.html | 16 +- classentt_1_1basic__snapshot-members.html | 2 +- classentt_1_1basic__snapshot.html | 6 +- ...tt_1_1basic__snapshot__loader-members.html | 2 +- classentt_1_1basic__snapshot__loader.html | 12 +- classentt_1_1basic__storage-members.html | 87 +- classentt_1_1basic__storage.html | 128 +- ...E__ETO46f42ccdf26de3578eb8ad448af3bf58.map | 3 + ...E__ETO46f42ccdf26de3578eb8ad448af3bf58.md5 | 1 + ...E__ETO46f42ccdf26de3578eb8ad448af3bf58.png | Bin 0 -> 8777 bytes ..._ENABLE__ETO_07Type_08_4_01_4-members.html | 115 ++ ..._01ENTT__ENABLE__ETO_07Type_08_4_01_4.html | 282 ++-- ...BLE__ETO_07Type_08_4_01_4__coll__graph.map | 3 + ...BLE__ETO_07Type_08_4_01_4__coll__graph.md5 | 1 + ...BLE__ETO_07Type_08_4_01_4__coll__graph.png | Bin 0 -> 8777 bytes ...empty_03c43bf21b9ff29af7916eca6f32bd45.map | 3 - ...empty_03c43bf21b9ff29af7916eca6f32bd45.md5 | 1 - ...empty_03c43bf21b9ff29af7916eca6f32bd45.png | Bin 7071 -> 0 bytes ...mpty_55389e5d919856c74679502c484f479d.html | 114 -- ...empty_ac9255c8c588438ee2413ba78575c478.map | 3 - ...empty_ac9255c8c588438ee2413ba78575c478.md5 | 1 - ...empty_ac9255c8c588438ee2413ba78575c478.png | Bin 7071 -> 0 bytes classentt_1_1basic__storage__coll__graph.png | Bin 6501 -> 6543 bytes ...entt_1_1basic__storage__inherit__graph.png | Bin 9016 -> 9068 bytes classentt_1_1basic__view-members.html | 100 -- classentt_1_1basic__view.html | 752 +---------- ..._01Entity_00_01Component_01_4-members.html | 98 -- ...1_4_00_01Component_8_8_8_01_4-members.html | 99 ++ ..._8_8_8_01_4_00_01Component_8_8_8_01_4.html | 793 +++++++++++ ...de__t_3_4_00_01Component_01_4-members.html | 98 ++ ..._01exclude__t_3_4_00_01Component_01_4.html | 247 ++-- classentt_1_1connection-members.html | 2 +- classentt_1_1connection.html | 10 +- classentt_1_1connection__inherit__graph.png | Bin 3674 -> 3660 bytes classentt_1_1default__storage-members.html | 127 -- classentt_1_1default__storage.html | 1154 ----------------- ...__empt4dc96ab5410a272f95b104e8656e9c34.map | 3 - ...__empt4dc96ab5410a272f95b104e8656e9c34.md5 | 1 - ...__empt4dc96ab5410a272f95b104e8656e9c34.png | Bin 7839 -> 0 bytes ..._emptc8f1012d1b55fc8f6a716a0092de110f.html | 114 -- ...__emptd5cc8eda4b0752e289f5df62c03872a0.map | 3 - ...__emptd5cc8eda4b0752e289f5df62c03872a0.md5 | 1 - ...__emptd5cc8eda4b0752e289f5df62c03872a0.png | Bin 7839 -> 0 bytes ...1is__empty__v_3_01Type_01_4_01_4_01_4.html | 511 -------- ...sentt_1_1default__storage__coll__graph.map | 3 - ...sentt_1_1default__storage__coll__graph.md5 | 1 - ...sentt_1_1default__storage__coll__graph.png | Bin 6456 -> 0 bytes ...tt_1_1default__storage__inherit__graph.map | 3 - ...tt_1_1default__storage__inherit__graph.md5 | 1 - ...tt_1_1default__storage__inherit__graph.png | Bin 6456 -> 0 bytes classentt_1_1delegate.html | 2 +- ...ate_3_01Ret_07Args_8_8_8_08_4-members.html | 10 +- ...1_1delegate_3_01Ret_07Args_8_8_8_08_4.html | 142 +- classentt_1_1dispatcher-members.html | 19 +- classentt_1_1dispatcher.html | 60 +- classentt_1_1emitter-members.html | 2 +- classentt_1_1emitter.html | 2 +- ...tt_1_1extended__meta__factory-members.html | 96 ++ classentt_1_1extended__meta__factory.html | 329 +++++ ..._1extended__meta__factory__coll__graph.map | 3 + ..._1extended__meta__factory__coll__graph.md5 | 1 + ..._1extended__meta__factory__coll__graph.png | Bin 0 -> 6724 bytes ...xtended__meta__factory__inherit__graph.map | 3 + ...xtended__meta__factory__inherit__graph.md5 | 1 + ...xtended__meta__factory__inherit__graph.png | Bin 0 -> 6724 bytes classentt_1_1family-members.html | 2 +- classentt_1_1family.html | 2 +- classentt_1_1handle-members.html | 92 ++ ...e__handle.html => classentt_1_1handle.html | 140 +- classentt_1_1identifier-members.html | 2 +- classentt_1_1identifier.html | 4 +- ...s.html => classentt_1_1loader-members.html | 10 +- ...e__loader.html => classentt_1_1loader.html | 26 +- classentt_1_1meta__any-members.html | 33 +- classentt_1_1meta__any.html | 131 +- classentt_1_1meta__ctor-members.html | 92 -- classentt_1_1meta__data-members.html | 96 -- classentt_1_1meta__factory-members.html | 26 +- classentt_1_1meta__factory.html | 406 +++--- ...sentt_1_1meta__factory__inherit__graph.map | 3 + ...sentt_1_1meta__factory__inherit__graph.md5 | 1 + ...sentt_1_1meta__factory__inherit__graph.png | Bin 0 -> 5824 bytes classentt_1_1meta__func-members.html | 96 -- classentt_1_1meta__handle-members.html | 89 ++ ...dle.html => classentt_1_1meta__handle.html | 137 +- classentt_1_1meta__type-members.html | 36 +- classentt_1_1meta__type.html | 248 ++-- classentt_1_1process-members.html | 2 +- classentt_1_1process.html | 2 +- classentt_1_1radix__sort.html | 179 --- classentt_1_1resource__cache-members.html | 96 -- classentt_1_1resource__handle-members.html | 92 -- classentt_1_1resource__loader-members.html | 82 -- classentt_1_1scheduler-members.html | 4 +- classentt_1_1scheduler.html | 14 +- classentt_1_1sigh.html | 4 +- ...igh_3_01Ret_07Args_8_8_8_08_4-members.html | 4 +- ...ntt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html | 26 +- classentt_1_1sink.html | 4 +- ...ink_3_01Ret_07Args_8_8_8_08_4-members.html | 23 +- ...ntt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html | 480 ++++++- classentt_1_1sparse__set-members.html | 59 +- classentt_1_1sparse__set.html | 139 +- classentt_1_1sparse__set__inherit__graph.map | 12 +- classentt_1_1sparse__set__inherit__graph.md5 | 2 +- classentt_1_1sparse__set__inherit__graph.png | Bin 28402 -> 29445 bytes classes.html | 78 +- component_8hpp_source.html | 82 -- config_8h_source.html | 4 +- core_2utility_8hpp_source.html | 8 +- core_8md_source.html | 2 +- default__storage_8hpp_source.html | 131 -- delegate_8hpp_source.html | 26 +- dir_66e9674e8206a335795995fa32a03c91.html | 2 +- dir_68267d1309a1af8e8297ef4c3efbcdba.html | 2 +- dir_721f6154dba3c88bcdead5f446bce319.html | 2 +- dir_7929ab29d3f740cf727ccbd263321562.html | 2 +- dir_85dbee8884f1b3a817fa7eff8dff73ec.html | 2 +- dir_a53318306f6ac0f7fe657839abd543ab.html | 2 +- dir_b64489a1e8130d5ebf6d86d282f500f0.html | 2 +- dir_c5715f7ee899854a669b87bbaa642de0.html | 2 +- dir_de8f4e6ba3f54a2a21309f742e93a373.html | 2 +- dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html | 2 +- dispatcher_8hpp_source.html | 26 +- emitter_8hpp_source.html | 5 +- entity_2fwd_8hpp_source.html | 20 +- entity_2utility_8hpp_source.html | 4 +- entity_8hpp_source.html | 2 +- entity_8md_source.html | 4 +- entt_8hpp_source.html | 2 +- factory_8hpp_source.html | 57 +- family_8hpp_source.html | 4 +- faq_8md_source.html | 4 +- files.html | 2 +- functions.html | 11 +- functions_0x7e.html | 2 +- functions_b.html | 32 +- functions_c.html | 51 +- functions_d.html | 22 +- functions_e.html | 41 +- functions_f.html | 11 +- functions_func.html | 11 +- functions_func_0x7e.html | 2 +- functions_func_b.html | 25 +- functions_func_c.html | 44 +- functions_func_d.html | 22 +- functions_func_e.html | 34 +- functions_func_f.html | 11 +- functions_func_g.html | 19 +- functions_func_h.html | 5 +- functions_func_i.html | 24 +- functions_func_k.html | 4 +- functions_func_l.html | 11 +- functions_func_m.html | 23 +- functions_func_o.html | 62 +- functions_func_p.html | 29 +- functions_func_r.html | 27 +- functions_func_s.html | 33 +- functions_func_t.html | 14 +- functions_func_u.html | 7 +- functions_func_v.html | 6 +- functions_func_w.html | 4 +- ...t__t-members.html => functions_func_y.html | 25 +- functions_g.html | 19 +- functions_h.html | 5 +- functions_i.html | 39 +- functions_k.html | 4 +- functions_l.html | 11 +- functions_m.html | 35 +- functions_o.html | 64 +- functions_p.html | 29 +- functions_r.html | 33 +- functions_rela.html | 32 +- functions_s.html | 56 +- functions_t.html | 14 +- functions_type.html | 53 +- functions_u.html | 7 +- functions_v.html | 6 +- functions_vars.html | 2 +- functions_w.html | 4 +- ...ype__list-members.html => functions_y.html | 25 +- fwd_8hpp_source.html | 2 +- graph_legend.html | 2 +- graph_legend.png | Bin 21382 -> 20458 bytes group_8hpp_source.html | 92 +- handle_8hpp_source.html | 14 +- hashed__string_8hpp_source.html | 2 +- helper_8hpp_source.html | 18 +- hierarchy.html | 194 +-- ident_8hpp_source.html | 4 +- index.html | 89 +- inherit_graph_0.png | Bin 1249 -> 1258 bytes inherit_graph_1.png | Bin 3287 -> 3289 bytes inherit_graph_10.map | 2 +- inherit_graph_10.md5 | 2 +- inherit_graph_10.png | Bin 4742 -> 4427 bytes inherit_graph_11.map | 2 +- inherit_graph_11.md5 | 2 +- inherit_graph_11.png | Bin 5737 -> 5471 bytes inherit_graph_12.png | Bin 2374 -> 2369 bytes inherit_graph_13.png | Bin 3171 -> 3130 bytes inherit_graph_14.png | Bin 2965 -> 2967 bytes inherit_graph_15.map | 2 +- inherit_graph_15.md5 | 2 +- inherit_graph_15.png | Bin 3041 -> 2746 bytes inherit_graph_16.map | 2 +- inherit_graph_16.md5 | 2 +- inherit_graph_16.png | Bin 2735 -> 2775 bytes inherit_graph_17.map | 2 +- inherit_graph_17.md5 | 2 +- inherit_graph_17.png | Bin 2763 -> 3003 bytes inherit_graph_18.map | 2 +- inherit_graph_18.md5 | 2 +- inherit_graph_18.png | Bin 2971 -> 2778 bytes inherit_graph_19.map | 2 +- inherit_graph_19.md5 | 2 +- inherit_graph_19.png | Bin 2770 -> 3215 bytes inherit_graph_2.png | Bin 1203 -> 1208 bytes inherit_graph_20.map | 2 +- inherit_graph_20.md5 | 2 +- inherit_graph_20.png | Bin 3216 -> 4800 bytes inherit_graph_21.map | 2 +- inherit_graph_21.md5 | 2 +- inherit_graph_21.png | Bin 3367 -> 3941 bytes inherit_graph_22.map | 2 +- inherit_graph_22.md5 | 2 +- inherit_graph_22.png | Bin 3367 -> 2101 bytes inherit_graph_23.map | 2 +- inherit_graph_23.md5 | 2 +- inherit_graph_23.png | Bin 2232 -> 2131 bytes inherit_graph_24.map | 3 +- inherit_graph_24.md5 | 2 +- inherit_graph_24.png | Bin 2334 -> 1856 bytes inherit_graph_25.map | 2 +- inherit_graph_25.md5 | 2 +- inherit_graph_25.png | Bin 2728 -> 1687 bytes inherit_graph_26.map | 2 +- inherit_graph_26.md5 | 2 +- inherit_graph_26.png | Bin 2198 -> 2232 bytes inherit_graph_27.map | 3 +- inherit_graph_27.md5 | 2 +- inherit_graph_27.png | Bin 2537 -> 2325 bytes inherit_graph_28.map | 2 +- inherit_graph_28.md5 | 2 +- inherit_graph_28.png | Bin 1959 -> 2729 bytes inherit_graph_29.map | 2 +- inherit_graph_29.md5 | 2 +- inherit_graph_29.png | Bin 1760 -> 2182 bytes inherit_graph_3.png | Bin 2808 -> 2796 bytes inherit_graph_30.map | 2 +- inherit_graph_30.md5 | 2 +- inherit_graph_30.png | Bin 4280 -> 2553 bytes inherit_graph_31.map | 2 +- inherit_graph_31.md5 | 2 +- inherit_graph_31.png | Bin 2332 -> 1910 bytes inherit_graph_32.map | 2 +- inherit_graph_32.md5 | 2 +- inherit_graph_32.png | Bin 2455 -> 1749 bytes inherit_graph_33.map | 2 +- inherit_graph_33.md5 | 2 +- inherit_graph_33.png | Bin 2422 -> 4274 bytes inherit_graph_34.map | 2 +- inherit_graph_34.md5 | 2 +- inherit_graph_34.png | Bin 2188 -> 2325 bytes inherit_graph_35.map | 2 +- inherit_graph_35.md5 | 2 +- inherit_graph_35.png | Bin 1613 -> 2487 bytes inherit_graph_36.map | 2 +- inherit_graph_36.md5 | 2 +- inherit_graph_36.png | Bin 1989 -> 2426 bytes inherit_graph_37.map | 2 +- inherit_graph_37.md5 | 2 +- inherit_graph_37.png | Bin 1102 -> 2173 bytes inherit_graph_38.map | 2 +- inherit_graph_38.md5 | 2 +- inherit_graph_38.png | Bin 1311 -> 1623 bytes inherit_graph_39.map | 2 +- inherit_graph_39.md5 | 2 +- inherit_graph_39.png | Bin 5513 -> 2284 bytes inherit_graph_4.png | Bin 1762 -> 1773 bytes inherit_graph_40.map | 2 +- inherit_graph_40.md5 | 2 +- inherit_graph_40.png | Bin 3730 -> 1993 bytes inherit_graph_41.map | 2 +- inherit_graph_41.md5 | 2 +- inherit_graph_41.png | Bin 1665 -> 1104 bytes inherit_graph_42.map | 2 +- inherit_graph_42.md5 | 2 +- inherit_graph_42.png | Bin 1318 -> 1315 bytes inherit_graph_43.map | 3 +- inherit_graph_43.md5 | 2 +- inherit_graph_43.png | Bin 1568 -> 12245 bytes inherit_graph_44.map | 3 +- inherit_graph_44.md5 | 2 +- inherit_graph_44.png | Bin 1687 -> 7799 bytes inherit_graph_45.map | 2 +- inherit_graph_45.md5 | 2 +- inherit_graph_45.png | Bin 1495 -> 2595 bytes inherit_graph_46.map | 2 +- inherit_graph_46.md5 | 2 +- inherit_graph_46.png | Bin 1311 -> 1618 bytes inherit_graph_47.map | 2 +- inherit_graph_47.md5 | 2 +- inherit_graph_47.png | Bin 1507 -> 1280 bytes inherit_graph_48.map | 2 +- inherit_graph_48.md5 | 2 +- inherit_graph_48.png | Bin 2757 -> 1574 bytes inherit_graph_49.map | 2 +- inherit_graph_49.md5 | 2 +- inherit_graph_49.png | Bin 1417 -> 1642 bytes inherit_graph_5.png | Bin 2578 -> 2572 bytes inherit_graph_50.map | 2 +- inherit_graph_50.md5 | 2 +- inherit_graph_50.png | Bin 1402 -> 1449 bytes inherit_graph_51.map | 2 +- inherit_graph_51.md5 | 2 +- inherit_graph_51.png | Bin 1483 -> 1369 bytes inherit_graph_52.map | 2 +- inherit_graph_52.md5 | 2 +- inherit_graph_52.png | Bin 1482 -> 1307 bytes inherit_graph_53.map | 2 +- inherit_graph_53.md5 | 2 +- inherit_graph_53.png | Bin 2996 -> 1491 bytes inherit_graph_54.map | 4 +- inherit_graph_54.md5 | 2 +- inherit_graph_54.png | Bin 3708 -> 4529 bytes inherit_graph_55.map | 2 +- inherit_graph_55.md5 | 2 +- inherit_graph_55.png | Bin 2433 -> 1391 bytes inherit_graph_56.map | 2 +- inherit_graph_56.md5 | 2 +- inherit_graph_56.png | Bin 2788 -> 1392 bytes inherit_graph_57.map | 3 +- inherit_graph_57.md5 | 2 +- inherit_graph_57.png | Bin 9517 -> 1480 bytes inherit_graph_58.map | 2 +- inherit_graph_58.md5 | 2 +- inherit_graph_58.png | Bin 2383 -> 1474 bytes inherit_graph_59.map | 2 +- inherit_graph_59.md5 | 2 +- inherit_graph_59.png | Bin 2847 -> 3003 bytes inherit_graph_6.map | 2 +- inherit_graph_6.md5 | 2 +- inherit_graph_6.png | Bin 5359 -> 5212 bytes inherit_graph_60.map | 3 +- inherit_graph_60.md5 | 2 +- inherit_graph_60.png | Bin 2860 -> 3710 bytes inherit_graph_61.map | 2 +- inherit_graph_61.md5 | 2 +- inherit_graph_61.png | Bin 2681 -> 2432 bytes inherit_graph_62.map | 2 +- inherit_graph_62.md5 | 2 +- inherit_graph_62.png | Bin 2205 -> 2793 bytes inherit_graph_63.map | 4 +- inherit_graph_63.md5 | 2 +- inherit_graph_63.png | Bin 2858 -> 10448 bytes inherit_graph_64.map | 2 +- inherit_graph_64.md5 | 2 +- inherit_graph_64.png | Bin 2453 -> 2393 bytes inherit_graph_65.map | 2 +- inherit_graph_65.md5 | 2 +- inherit_graph_65.png | Bin 2139 -> 2188 bytes inherit_graph_66.map | 2 +- inherit_graph_66.md5 | 2 +- inherit_graph_66.png | Bin 4354 -> 2855 bytes inherit_graph_67.map | 2 +- inherit_graph_67.md5 | 2 +- inherit_graph_67.png | Bin 4978 -> 2461 bytes inherit_graph_68.map | 2 +- inherit_graph_68.md5 | 2 +- inherit_graph_68.png | Bin 3394 -> 2144 bytes inherit_graph_69.map | 2 +- inherit_graph_69.md5 | 2 +- inherit_graph_69.png | Bin 2505 -> 4294 bytes inherit_graph_7.png | Bin 2172 -> 2162 bytes inherit_graph_70.map | 2 +- inherit_graph_70.md5 | 2 +- inherit_graph_70.png | Bin 2015 -> 5010 bytes inherit_graph_71.map | 8 +- inherit_graph_71.md5 | 2 +- inherit_graph_71.png | Bin 24595 -> 3474 bytes inherit_graph_72.map | 4 +- inherit_graph_72.md5 | 2 +- inherit_graph_72.png | Bin 7301 -> 2533 bytes inherit_graph_73.map | 2 +- inherit_graph_73.md5 | 2 +- inherit_graph_73.png | Bin 1358 -> 2034 bytes inherit_graph_74.map | 10 +- inherit_graph_74.md5 | 2 +- inherit_graph_74.png | Bin 7419 -> 30684 bytes inherit_graph_75.map | 4 +- inherit_graph_75.md5 | 2 +- inherit_graph_75.png | Bin 1690 -> 7295 bytes inherit_graph_76.map | 2 +- inherit_graph_76.md5 | 2 +- inherit_graph_76.png | Bin 2852 -> 1365 bytes inherit_graph_77.map | 4 +- inherit_graph_77.md5 | 2 +- inherit_graph_77.png | Bin 3526 -> 7446 bytes inherit_graph_78.map | 2 +- inherit_graph_78.md5 | 2 +- inherit_graph_78.png | Bin 2110 -> 1706 bytes inherit_graph_79.map | 2 +- inherit_graph_79.md5 | 2 +- inherit_graph_79.png | Bin 2012 -> 2849 bytes inherit_graph_8.png | Bin 2070 -> 2067 bytes inherit_graph_80.map | 2 +- inherit_graph_80.md5 | 2 +- inherit_graph_80.png | Bin 3966 -> 3523 bytes inherit_graph_81.map | 2 +- inherit_graph_81.md5 | 2 +- inherit_graph_81.png | Bin 2557 -> 2106 bytes inherit_graph_82.map | 2 +- inherit_graph_82.md5 | 2 +- inherit_graph_82.png | Bin 3352 -> 2012 bytes inherit_graph_83.map | 2 +- inherit_graph_83.md5 | 2 +- inherit_graph_83.png | Bin 2481 -> 3990 bytes inherit_graph_84.map | 2 +- inherit_graph_84.md5 | 2 +- inherit_graph_84.png | Bin 2583 -> 2538 bytes inherit_graph_85.map | 2 +- inherit_graph_85.md5 | 2 +- inherit_graph_85.png | Bin 2583 -> 3371 bytes inherit_graph_86.map | 3 + inherit_graph_86.md5 | 1 + inherit_graph_86.png | Bin 0 -> 2454 bytes inherit_graph_87.map | 3 + inherit_graph_87.md5 | 1 + inherit_graph_87.png | Bin 0 -> 2591 bytes inherit_graph_88.map | 3 + inherit_graph_88.md5 | 1 + inherit_graph_88.png | Bin 0 -> 2566 bytes inherit_graph_9.png | Bin 3069 -> 3056 bytes inherits.html | 268 ++-- lib_8md_source.html | 4 +- links_8md_source.html | 4 +- loader_8hpp_source.html | 6 +- locator_8hpp_source.html | 2 +- locator_8md_source.html | 2 +- menudata.js | 4 +- meta_8hpp_source.html | 242 ++-- meta_8md_source.html | 4 +- monostate_8hpp_source.html | 2 +- namespaceentt.html | 641 ++++----- namespacemembers.html | 39 +- namespacemembers_func.html | 19 +- namespacemembers_type.html | 5 +- namespacemembers_vars.html | 11 +- namespaces.html | 2 +- observer_8hpp_source.html | 55 +- pages.html | 18 +- policy_8hpp_source.html | 2 +- process_8hpp_source.html | 4 +- process_8md_source.html | 2 +- prototype_8hpp_source.html | 107 -- registry_8hpp_source.html | 150 ++- resource_2fwd_8hpp_source.html | 6 +- resource_8md_source.html | 4 +- runtime__view_8hpp_source.html | 31 +- scheduler_8hpp_source.html | 6 +- search/all_0.js | 3 +- search/all_1.js | 22 +- search/all_10.js | 15 +- search/all_11.js | 4 +- search/all_12.js | 1 - search/all_13.js | 4 +- search/all_14.js | 2 +- search/all_15.js | 9 +- search/{related_5.html => all_16.html} | 2 +- search/all_16.js | 11 + search/all_2.js | 40 +- search/all_3.js | 10 +- search/all_4.js | 12 +- search/all_5.js | 6 +- search/all_6.js | 4 +- search/all_7.js | 2 +- search/all_8.js | 17 +- search/all_9.js | 2 +- search/all_a.js | 6 +- search/all_b.js | 24 +- search/all_c.js | 1 + search/all_d.js | 24 +- search/all_e.js | 9 +- search/all_f.js | 22 +- search/classes_1.js | 12 +- search/{typedefs_f.html => classes_10.html} | 2 +- search/classes_10.js | 14 + search/{variables_9.html => classes_11.html} | 2 +- search/classes_11.js | 4 + search/classes_2.js | 3 + search/classes_4.js | 3 +- search/classes_7.js | 6 +- search/classes_8.js | 20 +- search/classes_9.js | 4 +- search/classes_a.js | 17 +- search/classes_b.js | 7 +- search/classes_c.js | 17 +- search/classes_d.js | 14 +- search/classes_e.js | 12 +- search/classes_f.html | 26 + search/classes_f.js | 19 + search/functions_0.js | 3 +- search/functions_1.js | 8 +- search/functions_10.js | 4 +- search/functions_11.js | 1 - search/functions_12.js | 4 +- search/functions_13.js | 2 +- search/functions_14.js | 9 +- search/functions_15.html | 26 + search/functions_15.js | 11 + search/functions_2.js | 23 +- search/functions_3.js | 10 +- search/functions_4.js | 8 +- search/functions_5.js | 4 +- search/functions_6.js | 4 +- search/functions_7.js | 2 +- search/functions_8.js | 10 +- search/functions_9.js | 2 +- search/functions_a.js | 4 +- search/functions_b.js | 22 +- search/functions_c.js | 22 +- search/functions_d.js | 6 +- search/functions_e.js | 16 +- search/functions_f.js | 13 +- search/pages_0.js | 10 +- search/pages_1.js | 2 +- search/pages_2.js | 2 +- search/pages_3.js | 2 +- search/related_0.js | 2 +- search/related_1.js | 2 +- search/related_2.js | 2 +- search/related_3.js | 4 +- search/related_4.js | 4 +- search/related_5.js | 6 - search/searchdata.js | 10 +- search/typedefs_1.js | 3 +- search/typedefs_3.js | 2 +- search/typedefs_7.js | 3 +- search/typedefs_a.js | 2 +- search/typedefs_b.js | 6 +- search/typedefs_c.js | 10 +- search/typedefs_d.js | 9 +- search/typedefs_e.js | 7 +- search/typedefs_f.js | 6 - search/variables_1.js | 1 + search/variables_4.js | 1 + search/variables_6.js | 1 + search/variables_9.js | 4 - sigh_8hpp_source.html | 65 +- signal_2fwd_8hpp_source.html | 10 +- signal_8md_source.html | 4 +- snapshot_8hpp_source.html | 38 +- sparse__set_8hpp_source.html | 13 +- storage_8hpp_source.html | 33 +- structentt_1_1as__alias__t.html | 2 +- structentt_1_1as__group-members.html | 2 +- structentt_1_1as__group.html | 8 +- structentt_1_1as__is__t.html | 2 +- structentt_1_1as__view-members.html | 4 +- structentt_1_1as__view.html | 21 +- structentt_1_1as__void__t.html | 2 +- structentt_1_1basic__actor-members.html | 2 +- structentt_1_1basic__actor.html | 10 +- structentt_1_1basic__collector.html | 2 +- ..._00_09508ef5b097d7d4aaf1134c3405dcde2.html | 84 -- ...list_2946084b83498520c73ff3a9eb022209.html | 85 ++ ...list_98a79514dcad34a82f321f0796064ffb.html | 78 +- ...tentt_1_1basic__collector_3_4-members.html | 2 +- structentt_1_1basic__collector_3_4.html | 2 +- structentt_1_1cache-members.html | 97 ++ ...ce__cache.html => structentt_1_1cache.html | 230 ++-- ...otype.html => structentt_1_1choice__t.html | 31 +- ...=> structentt_1_1choice__t_3_010_01_4.html | 22 +- structentt_1_1component__pool-members.html | 82 -- ..._3_01130838667b45333af41dd7561e0a1f2e.html | 82 -- ..._3_01e03fc68d5c02991538c5f48d3a39ea17.html | 98 -- structentt_1_1connect__arg__t.html | 2 +- ...entt_1_1emitter_1_1connection-members.html | 2 +- structentt_1_1emitter_1_1connection.html | 6 +- ..._1_1emitter_1_1connection__coll__graph.png | Bin 5843 -> 5857 bytes ...1emitter_1_1connection__inherit__graph.png | Bin 5843 -> 5857 bytes structentt_1_1entt__traits.html | 2 +- ...its_3_01std_1_1uint16__t_01_4-members.html | 2 +- ...ntt__traits_3_01std_1_1uint16__t_01_4.html | 2 +- ...its_3_01std_1_1uint32__t_01_4-members.html | 2 +- ...ntt__traits_3_01std_1_1uint32__t_01_4.html | 2 +- ...its_3_01std_1_1uint64__t_01_4-members.html | 2 +- ...ntt__traits_3_01std_1_1uint64__t_01_4.html | 2 +- structentt_1_1exclude__t.html | 2 +- structentt_1_1exclude__t__coll__graph.png | Bin 4377 -> 4373 bytes structentt_1_1exclude__t__inherit__graph.png | Bin 4377 -> 4373 bytes structentt_1_1get__t.html | 2 +- structentt_1_1get__t__coll__graph.png | Bin 4030 -> 4019 bytes structentt_1_1get__t__inherit__graph.png | Bin 4030 -> 4019 bytes structentt_1_1identity-members.html | 2 +- structentt_1_1identity.html | 2 +- structentt_1_1insertion__sort-members.html | 2 +- structentt_1_1insertion__sort.html | 2 +- ...tructentt_1_1is__equality__comparable.html | 51 +- ...declva1cb524e6c54df82cda82d1a4dfba6abe.map | 2 + ...declva1cb524e6c54df82cda82d1a4dfba6abe.md5 | 1 + ...declva1cb524e6c54df82cda82d1a4dfba6abe.png | Bin 0 -> 7118 bytes ...eclva22225425f92ebe2943dca66f125cfda1.html | 113 ++ ...declvabfe6c5f774b5178f5435086b847a8374.map | 2 + ...declvabfe6c5f774b5178f5435086b847a8374.md5 | 1 + ...declvabfe6c5f774b5178f5435086b847a8374.png | Bin 0 -> 7118 bytes ...1is__equality__comparable__coll__graph.map | 2 + ...1is__equality__comparable__coll__graph.md5 | 1 + ...1is__equality__comparable__coll__graph.png | Bin 0 -> 5960 bytes ...__equality__comparable__inherit__graph.map | 2 + ...__equality__comparable__inherit__graph.md5 | 1 + ...__equality__comparable__inherit__graph.png | Bin 0 -> 5960 bytes structentt_1_1is__named__type.html | 30 +- ...std_1_0c6058b8ba47cc9c6693d18c8fb48d92.md5 | 2 +- ...std_1_0c6058b8ba47cc9c6693d18c8fb48d92.png | Bin 6832 -> 6242 bytes ...td_1_268fa5a871b2de95e24d77c0786df19e.html | 8 +- ...std_1_9aa8d80f3ceacce258d85ba16cdb7265.md5 | 2 +- ...std_1_9aa8d80f3ceacce258d85ba16cdb7265.png | Bin 6832 -> 6242 bytes ...ctentt_1_1is__named__type__coll__graph.map | 2 +- ...ctentt_1_1is__named__type__coll__graph.md5 | 2 +- ...ctentt_1_1is__named__type__coll__graph.png | Bin 4988 -> 4883 bytes ...ntt_1_1is__named__type__inherit__graph.map | 2 +- ...ntt_1_1is__named__type__inherit__graph.md5 | 2 +- ...ntt_1_1is__named__type__inherit__graph.png | Bin 4988 -> 4883 bytes structentt_1_1matcher.html | 2 +- ...l => structentt_1_1meta__base-members.html | 19 +- ...base.html => structentt_1_1meta__base.html | 110 +- ...l => structentt_1_1meta__conv-members.html | 19 +- ...conv.html => structentt_1_1meta__conv.html | 110 +- ...l => structentt_1_1meta__ctor-members.html | 27 +- ...ctor.html => structentt_1_1meta__ctor.html | 145 ++- ...ml => structentt_1_1meta__ctx-members.html | 10 +- structentt_1_1meta__ctx.html | 137 ++ structentt_1_1meta__data-members.html | 95 ++ ...data.html => structentt_1_1meta__data.html | 179 +-- ...l => structentt_1_1meta__dtor-members.html | 17 +- ...dtor.html => structentt_1_1meta__dtor.html | 102 +- structentt_1_1meta__func-members.html | 95 ++ ...func.html => structentt_1_1meta__func.html | 169 +-- ...l => structentt_1_1meta__prop-members.html | 17 +- ...prop.html => structentt_1_1meta__prop.html | 95 +- structentt_1_1monostate-members.html | 2 +- structentt_1_1monostate.html | 2 +- structentt_1_1named__type__traits.html | 4 +- ...d__type__traits_3_01const_01Type_01_4.html | 4 +- ...its_3_01const_01Type_01_4__coll__graph.png | Bin 5918 -> 5935 bytes ..._3_01const_01Type_01_4__inherit__graph.png | Bin 5918 -> 5935 bytes structentt_1_1overloaded.html | 38 +- structentt_1_1overloaded__coll__graph.map | 2 +- structentt_1_1overloaded__coll__graph.md5 | 2 +- structentt_1_1overloaded__coll__graph.png | Bin 3956 -> 3642 bytes structentt_1_1overloaded__inherit__graph.map | 2 +- structentt_1_1overloaded__inherit__graph.md5 | 2 +- structentt_1_1overloaded__inherit__graph.png | Bin 3956 -> 3642 bytes structentt_1_1process__adaptor-members.html | 2 +- structentt_1_1process__adaptor.html | 2 +- ...tentt_1_1process__adaptor__coll__graph.png | Bin 9118 -> 9123 bytes ...tt_1_1process__adaptor__inherit__graph.png | Bin 9118 -> 9123 bytes structentt_1_1radix__sort-members.html | 2 +- structentt_1_1radix__sort.html | 2 +- structentt_1_1scoped__connection-members.html | 2 +- structentt_1_1scoped__connection.html | 10 +- ...ntt_1_1scoped__connection__coll__graph.png | Bin 3773 -> 3761 bytes ..._1_1scoped__connection__inherit__graph.png | Bin 3773 -> 3761 bytes structentt_1_1service__locator-members.html | 2 +- structentt_1_1service__locator.html | 2 +- structentt_1_1std__sort-members.html | 2 +- structentt_1_1std__sort.html | 2 +- structentt_1_1storage-members.html | 87 +- structentt_1_1storage.html | 26 +- structentt_1_1storage__coll__graph.png | Bin 8732 -> 8802 bytes structentt_1_1storage__inherit__graph.png | Bin 8732 -> 8802 bytes structentt_1_1type__list.html | 4 +- structentt_1_1type__list__cat.html | 4 +- ...Other_8_8_8_01_4_00_01List_8_8_8_01_4.html | 4 +- ...8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html | 2 +- ...list_3_01Type_8_8_8_01_4_01_4-members.html | 2 +- ...01type__list_3_01Type_8_8_8_01_4_01_4.html | 4 +- ...ctentt_1_1type__list__cat_3_4-members.html | 2 +- structentt_1_1type__list__cat_3_4.html | 4 +- structentt_1_1type__list__size.html | 4 +- ...01type__list_3_01Type_8_8_8_01_4_01_4.html | 8 +- ..._3_01Type_8_8_8_01_4_01_4__coll__graph.png | Bin 7203 -> 7200 bytes ...01Type_8_8_8_01_4_01_4__inherit__graph.png | Bin 7203 -> 7200 bytes structentt_1_1type__list__unique.html | 4 +- ...pe_00_01Other_8_8_8_01_4_01_4-members.html | 2 +- ...t_3_01Type_00_01Other_8_8_8_01_4_01_4.html | 4 +- ...nique_3_01type__list_3_4_01_4-members.html | 2 +- ..._list__unique_3_01type__list_3_4_01_4.html | 4 +- structentt_1_1y__combinator-members.html | 84 ++ structentt_1_1y__combinator.html | 251 ++++ tabs.css | 2 +- type__traits_8hpp_source.html | 35 +- version_8h_source.html | 4 +- view_8hpp_source.html | 84 +- 738 files changed, 8958 insertions(+), 12695 deletions(-) delete mode 100644 autotoc_md48.html rename autotoc_md49.html => autotoc_md50.html (83%) delete mode 100644 autotoc_md56.html rename autotoc_md57.html => autotoc_md59.html (84%) delete mode 100644 autotoc_md63.html delete mode 100644 autotoc_md64.html delete mode 100644 autotoc_md65.html create mode 100644 autotoc_md71.html delete mode 100644 autotoc_md77.html rename autotoc_md78.html => autotoc_md81.html (97%) delete mode 100644 autotoc_md82.html delete mode 100644 autotoc_md83.html rename autotoc_md85.html => autotoc_md89.html (77%) delete mode 100644 classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_00_01Other_8_8_8_01_4_01_4.html delete mode 100644 classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_0b1abda5dc7d1ded50c881833d0ec6d4.html delete mode 100644 classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_54ca6466fcd0506388705164ba2d896f.html delete mode 100644 classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_86b01ab83965ad65f5c8dea9ea3cb0b2.html delete mode 100644 classentt_1_1basic__prototype-members.html create mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO46f42ccdf26de3578eb8ad448af3bf58.map create mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO46f42ccdf26de3578eb8ad448af3bf58.md5 create mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO46f42ccdf26de3578eb8ad448af3bf58.png create mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4-members.html rename classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty__v_3_01Type_01_4_01_4_01_4.html => classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4.html (79%) create mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4__coll__graph.map create mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4__coll__graph.md5 create mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01ENTT__ENABLE__ETO_07Type_08_4_01_4__coll__graph.png delete mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty_03c43bf21b9ff29af7916eca6f32bd45.map delete mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty_03c43bf21b9ff29af7916eca6f32bd45.md5 delete mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty_03c43bf21b9ff29af7916eca6f32bd45.png delete mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty_55389e5d919856c74679502c484f479d.html delete mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty_ac9255c8c588438ee2413ba78575c478.map delete mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty_ac9255c8c588438ee2413ba78575c478.md5 delete mode 100644 classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty_ac9255c8c588438ee2413ba78575c478.png delete mode 100644 classentt_1_1basic__view-members.html delete mode 100644 classentt_1_1basic__view_3_01Entity_00_01Component_01_4-members.html create mode 100644 classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html create mode 100644 classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html create mode 100644 classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html rename classentt_1_1basic__view_3_01Entity_00_01Component_01_4.html => classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html (55%) delete mode 100644 classentt_1_1default__storage-members.html delete mode 100644 classentt_1_1default__storage.html delete mode 100644 classentt_1_1default__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empt4dc96ab5410a272f95b104e8656e9c34.map delete mode 100644 classentt_1_1default__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empt4dc96ab5410a272f95b104e8656e9c34.md5 delete mode 100644 classentt_1_1default__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empt4dc96ab5410a272f95b104e8656e9c34.png delete mode 100644 classentt_1_1default__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__emptc8f1012d1b55fc8f6a716a0092de110f.html delete mode 100644 classentt_1_1default__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__emptd5cc8eda4b0752e289f5df62c03872a0.map delete mode 100644 classentt_1_1default__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__emptd5cc8eda4b0752e289f5df62c03872a0.md5 delete mode 100644 classentt_1_1default__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__emptd5cc8eda4b0752e289f5df62c03872a0.png delete mode 100644 classentt_1_1default__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__empty__v_3_01Type_01_4_01_4_01_4.html delete mode 100644 classentt_1_1default__storage__coll__graph.map delete mode 100644 classentt_1_1default__storage__coll__graph.md5 delete mode 100644 classentt_1_1default__storage__coll__graph.png delete mode 100644 classentt_1_1default__storage__inherit__graph.map delete mode 100644 classentt_1_1default__storage__inherit__graph.md5 delete mode 100644 classentt_1_1default__storage__inherit__graph.png create mode 100644 classentt_1_1extended__meta__factory-members.html create mode 100644 classentt_1_1extended__meta__factory.html create mode 100644 classentt_1_1extended__meta__factory__coll__graph.map create mode 100644 classentt_1_1extended__meta__factory__coll__graph.md5 create mode 100644 classentt_1_1extended__meta__factory__coll__graph.png create mode 100644 classentt_1_1extended__meta__factory__inherit__graph.map create mode 100644 classentt_1_1extended__meta__factory__inherit__graph.md5 create mode 100644 classentt_1_1extended__meta__factory__inherit__graph.png create mode 100644 classentt_1_1handle-members.html rename classentt_1_1resource__handle.html => classentt_1_1handle.html (67%) rename classentt_1_1radix__sort-members.html => classentt_1_1loader-members.html (81%) rename classentt_1_1resource__loader.html => classentt_1_1loader.html (72%) delete mode 100644 classentt_1_1meta__ctor-members.html delete mode 100644 classentt_1_1meta__data-members.html create mode 100644 classentt_1_1meta__factory__inherit__graph.map create mode 100644 classentt_1_1meta__factory__inherit__graph.md5 create mode 100644 classentt_1_1meta__factory__inherit__graph.png delete mode 100644 classentt_1_1meta__func-members.html create mode 100644 classentt_1_1meta__handle-members.html rename structentt_1_1meta__handle.html => classentt_1_1meta__handle.html (68%) delete mode 100644 classentt_1_1radix__sort.html delete mode 100644 classentt_1_1resource__cache-members.html delete mode 100644 classentt_1_1resource__handle-members.html delete mode 100644 classentt_1_1resource__loader-members.html delete mode 100644 component_8hpp_source.html delete mode 100644 default__storage_8hpp_source.html rename structentt_1_1get__t-members.html => functions_func_y.html (71%) rename structentt_1_1type__list-members.html => functions_y.html (71%) create mode 100644 inherit_graph_86.map create mode 100644 inherit_graph_86.md5 create mode 100644 inherit_graph_86.png create mode 100644 inherit_graph_87.map create mode 100644 inherit_graph_87.md5 create mode 100644 inherit_graph_87.png create mode 100644 inherit_graph_88.map create mode 100644 inherit_graph_88.md5 create mode 100644 inherit_graph_88.png delete mode 100644 prototype_8hpp_source.html rename search/{related_5.html => all_16.html} (94%) create mode 100644 search/all_16.js rename search/{typedefs_f.html => classes_10.html} (94%) create mode 100644 search/classes_10.js rename search/{variables_9.html => classes_11.html} (93%) create mode 100644 search/classes_11.js create mode 100644 search/classes_f.html create mode 100644 search/classes_f.js create mode 100644 search/functions_15.html create mode 100644 search/functions_15.js delete mode 100644 search/related_5.js delete mode 100644 search/typedefs_f.js delete mode 100644 search/variables_9.js delete mode 100644 structentt_1_1basic__collector_3_01matcher_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_09508ef5b097d7d4aaf1134c3405dcde2.html create mode 100644 structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_2946084b83498520c73ff3a9eb022209.html rename structentt_1_1basic__collector_3_01matcher_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_0f5f4fb3c1586eeb5723872d0d0e4f427.html => structentt_1_1basic__collector_3_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_01type__list_98a79514dcad34a82f321f0796064ffb.html (64%) create mode 100644 structentt_1_1cache-members.html rename classentt_1_1resource__cache.html => structentt_1_1cache.html (57%) rename classentt_1_1basic__prototype.html => structentt_1_1choice__t.html (67%) rename structentt_1_1component__traits.html => structentt_1_1choice__t_3_010_01_4.html (75%) delete mode 100644 structentt_1_1component__pool-members.html delete mode 100644 structentt_1_1component__pool_3_01Type_00_01std_1_1void__t_3_01typename_01component__traits_3_01130838667b45333af41dd7561e0a1f2e.html delete mode 100644 structentt_1_1component__pool_3_01Type_00_01std_1_1void__t_3_01typename_01component__traits_3_01e03fc68d5c02991538c5f48d3a39ea17.html rename structentt_1_1component__pool.html => structentt_1_1is__equality__comparable.html (52%) create mode 100644 structentt_1_1is__equality__comparable_3_01Type_00_01std_1_1void__t_3_01decltype_07std_1_1declva1cb524e6c54df82cda82d1a4dfba6abe.map create mode 100644 structentt_1_1is__equality__comparable_3_01Type_00_01std_1_1void__t_3_01decltype_07std_1_1declva1cb524e6c54df82cda82d1a4dfba6abe.md5 create mode 100644 structentt_1_1is__equality__comparable_3_01Type_00_01std_1_1void__t_3_01decltype_07std_1_1declva1cb524e6c54df82cda82d1a4dfba6abe.png create mode 100644 structentt_1_1is__equality__comparable_3_01Type_00_01std_1_1void__t_3_01decltype_07std_1_1declva22225425f92ebe2943dca66f125cfda1.html create mode 100644 structentt_1_1is__equality__comparable_3_01Type_00_01std_1_1void__t_3_01decltype_07std_1_1declvabfe6c5f774b5178f5435086b847a8374.map create mode 100644 structentt_1_1is__equality__comparable_3_01Type_00_01std_1_1void__t_3_01decltype_07std_1_1declvabfe6c5f774b5178f5435086b847a8374.md5 create mode 100644 structentt_1_1is__equality__comparable_3_01Type_00_01std_1_1void__t_3_01decltype_07std_1_1declvabfe6c5f774b5178f5435086b847a8374.png create mode 100644 structentt_1_1is__equality__comparable__coll__graph.map create mode 100644 structentt_1_1is__equality__comparable__coll__graph.md5 create mode 100644 structentt_1_1is__equality__comparable__coll__graph.png create mode 100644 structentt_1_1is__equality__comparable__inherit__graph.map create mode 100644 structentt_1_1is__equality__comparable__inherit__graph.md5 create mode 100644 structentt_1_1is__equality__comparable__inherit__graph.png rename classentt_1_1meta__base-members.html => structentt_1_1meta__base-members.html (56%) rename classentt_1_1meta__base.html => structentt_1_1meta__base.html (70%) rename classentt_1_1meta__conv-members.html => structentt_1_1meta__conv-members.html (56%) rename classentt_1_1meta__conv.html => structentt_1_1meta__conv.html (71%) rename structentt_1_1meta__handle-members.html => structentt_1_1meta__ctor-members.html (54%) rename classentt_1_1meta__ctor.html => structentt_1_1meta__ctor.html (70%) rename structentt_1_1exclude__t-members.html => structentt_1_1meta__ctx-members.html (82%) create mode 100644 structentt_1_1meta__ctx.html create mode 100644 structentt_1_1meta__data-members.html rename classentt_1_1meta__data.html => structentt_1_1meta__data.html (75%) rename classentt_1_1meta__dtor-members.html => structentt_1_1meta__dtor-members.html (58%) rename classentt_1_1meta__dtor.html => structentt_1_1meta__dtor.html (69%) create mode 100644 structentt_1_1meta__func-members.html rename classentt_1_1meta__func.html => structentt_1_1meta__func.html (74%) rename classentt_1_1meta__prop-members.html => structentt_1_1meta__prop-members.html (58%) rename classentt_1_1meta__prop.html => structentt_1_1meta__prop.html (71%) create mode 100644 structentt_1_1y__combinator-members.html create mode 100644 structentt_1_1y__combinator.html diff --git a/README_8md_source.html b/README_8md_source.html index 869e2abf8..d7d5065c1 100644 --- a/README_8md_source.html +++ b/README_8md_source.html @@ -22,7 +22,7 @@
EnTT -  3.1.1 +  3.2.0
@@ -63,7 +63,7 @@ $(function() {
README.md
-
1 ![EnTT: Gaming meets modern C++](https://user-images.githubusercontent.com/1812216/42513718-ee6e98d0-8457-11e8-9baf-8d83f61a3097.png)
2 
3 <!--
4 @cond TURN_OFF_DOXYGEN
5 -->
6 [![GitHub version](https://badge.fury.io/gh/skypjack%2Fentt.svg)](http://badge.fury.io/gh/skypjack%2Fentt)
7 [![LoC](https://tokei.rs/b1/github/skypjack/entt)](https://github.com/skypjack/entt)
8 [![Build Status](https://travis-ci.org/skypjack/entt.svg?branch=master)](https://travis-ci.org/skypjack/entt)
9 [![Build status](https://ci.appveyor.com/api/projects/status/rvhaabjmghg715ck?svg=true)](https://ci.appveyor.com/project/skypjack/entt)
10 [![Coverage Status](https://coveralls.io/repos/github/skypjack/entt/badge.svg?branch=master)](https://coveralls.io/github/skypjack/entt?branch=master)
11 [![Gitter chat](https://badges.gitter.im/skypjack/entt.png)](https://gitter.im/skypjack/entt)
12 [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/skypjack)
13 
14 `EnTT` is a header-only, tiny and easy to use library for game programming and
15 much more written in **modern C++**, mainly known for its innovative
16 **entity-component-system (ECS)** model.<br/>
17 [Among others](https://github.com/skypjack/entt/wiki/EnTT-in-Action), it's used
18 in [**Minecraft**](https://minecraft.net/en-us/attribution/) by Mojang and the
19 [**ArcGIS Runtime SDKs**](https://developers.arcgis.com/arcgis-runtime/) by
20 Esri. Open an issue or submit a PR if you don't see your project in the list!
21 
22 ---
23 
24 Do you want to **keep up with changes** or do you have a **question** that
25 doesn't require you to open an issue?<br/>
26 Join the [gitter channel](https://gitter.im/skypjack/entt) and meet other users
27 like you. The more we are, the better for everyone.
28 
29 Wondering why your **debug build** is so slow on Windows or how to represent a
30 **hierarchy** with components?<br/>
31 Check out the
32 [FAQ](https://github.com/skypjack/entt/wiki/Frequently-Asked-Questions) and the
33 [wiki](https://github.com/skypjack/entt/wiki) if you have these or other doubts,
34 your answers may already be there.
35 
36 If you use `EnTT` and you want to say thanks or support the project, please
37 **consider becoming a patron**:
38 
39 [![Patreon](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/bePatron?c=1772573)
40 
41 [Many thanks](https://skypjack.github.io/patreon/) to those who supported me and
42 still support me today.
43 
44 # Table of Contents
45 
46 * [Introduction](#introduction)
47  * [Code Example](#code-example)
48  * [Motivation](#motivation)
49  * [Performance](#performance)
50 * [Build Instructions](#build-instructions)
51  * [Requirements](#requirements)
52  * [Library](#library)
53  * [Documentation](#documentation)
54  * [Tests](#tests)
55 * [Packaging Tools](#packaging-tools)
56 * [EnTT in Action](#entt-in-action)
57 * [Contributors](#contributors)
58 * [License](#license)
59 * [Support](#support)
60  * [Patreon](#patreon)
61  * [Donation](#donation)
62  * [Hire me](#hire-me)
63 <!--
64 @endcond TURN_OFF_DOXYGEN
65 -->
66 
67 # Introduction
68 
69 The entity-component-system (also known as _ECS_) is an architectural pattern
70 used mostly in game development. For further details:
71 
72 * [Entity Systems Wiki](http://entity-systems.wikidot.com/)
73 * [Evolve Your Hierarchy](http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/)
74 * [ECS on Wikipedia](https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system)
75 
76 This project started off as a pure entity-component system. Over time the
77 codebase has grown as more and more classes and functionalities were added.<br/>
78 Here is a brief, yet incomplete list of what it offers today:
79 
80 * Statically generated integer **identifiers** for types (assigned either at
81  compile-time or at runtime).
82 * A `constexpr` utility for human readable **resource names**.
83 * A minimal **configuration system** built using the monostate pattern.
84 * An incredibly fast **entity-component system** based on sparse sets, with its
85  own _pay for what you use_ policy to adjust performance and memory usage
86  according to the users' requirements.
87 * Views and groups to iterate entities and components and allow different access
88  patterns, from **perfect SoA** to fully random.
89 * A lot of **facilities** built on top of the entity-component system to help
90  the users and avoid reinventing the wheel (dependencies, snapshot, actor
91  class, support for **reactive systems** and so on).
92 * The smallest and most basic implementation of a **service locator** ever seen.
93 * A built-in, non-intrusive and macro-free runtime **reflection system**.
94 * A **cooperative scheduler** for processes of any type.
95 * All that is needed for **resource management** (cache, loaders, handles).
96 * Delegates, **signal handlers** (with built-in support for collectors) and a
97  tiny event dispatcher for immediate and delayed events to integrate in loops.
98 * A general purpose **event emitter** as a CRTP idiom based class template.
99 * And **much more**! Check out the
100  [**wiki**](https://github.com/skypjack/entt/wiki).
101 
102 Consider this list a work in progress as well as the project. The whole API is
103 fully documented in-code for those who are brave enough to read it.
104 
105 Currently, `EnTT` is tested on Linux, Microsoft Windows and OSX. It has proven
106 to work also on both Android and iOS.<br/>
107 Most likely it won't be problematic on other systems as well, but it hasn't been
108 sufficiently tested so far.
109 
110 ## Code Example
111 
112 ```cpp
113 #include <entt/entt.hpp>
114 #include <cstdint>
115 
116 struct position {
117  float x;
118  float y;
119 };
120 
121 struct velocity {
122  float dx;
123  float dy;
124 };
125 
126 void update(entt::registry &registry) {
127  auto view = registry.view<position, velocity>();
128 
129  for(auto entity: view) {
130  // gets only the components that are going to be used ...
131 
132  auto &vel = view.get<velocity>(entity);
133 
134  vel.dx = 0.;
135  vel.dy = 0.;
136 
137  // ...
138  }
139 }
140 
141 void update(std::uint64_t dt, entt::registry &registry) {
142  registry.view<position, velocity>().each([dt](auto &pos, auto &vel) {
143  // gets all the components of the view at once ...
144 
145  pos.x += vel.dx * dt;
146  pos.y += vel.dy * dt;
147 
148  // ...
149  });
150 }
151 
152 int main() {
153  entt::registry registry;
154  std::uint64_t dt = 16;
155 
156  for(auto i = 0; i < 10; ++i) {
157  auto entity = registry.create();
158  registry.assign<position>(entity, i * 1.f, i * 1.f);
159  if(i % 2 == 0) { registry.assign<velocity>(entity, i * .1f, i * .1f); }
160  }
161 
162  update(dt, registry);
163  update(registry);
164 
165  // ...
166 }
167 ```
168 
169 ## Motivation
170 
171 I started developing `EnTT` for the _wrong_ reason: my goal was to design an
172 entity-component system to beat another well known open source solution both in
173 terms of performance and possibly memory usage.<br/>
174 In the end, I did it, but it wasn't very satisfying. Actually it wasn't
175 satisfying at all. The fastest and nothing more, fairly little indeed. When I
176 realized it, I tried hard to keep intact the great performance of `EnTT` and to
177 add all the features I wanted to see in *my own library* at the same time.
178 
179 Nowadays, `EnTT` is finally what I was looking for: still faster than its
180 _competitors_, lower memory usage in the average case, a really good API and an
181 amazing set of features. And even more, of course.
182 
183 ## Performance
184 
185 As it stands right now, `EnTT` is just fast enough for my requirements when
186 compared to my first choice (it was already amazingly fast actually).<br/>
187 Below is a comparison between the two (both of them compiled with GCC 7.3.0 on a
188 Dell XPS 13 from mid 2014):
189 
190 | Benchmark | EntityX (compile-time) | EnTT |
191 |-----------|-------------|-------------|
192 | Create 1M entities | 0.0147s | **0.0046s** |
193 | Destroy 1M entities | 0.0053s | **0.0045s** |
194 | 1M entities, one component | 0.0012s | **1.9e-07s** |
195 | 1M entities, two components | 0.0012s | **3.8e-07s** |
196 | 1M entities, two components<br/>Half of the entities have all the components | 0.0009s | **3.8e-07s** |
197 | 1M entities, two components<br/>One of the entities has all the components | 0.0008s | **1.0e-06s** |
198 | 1M entities, five components | 0.0010s | **7.0e-07s** |
199 | 1M entities, ten components | 0.0011s | **1.2e-06s** |
200 | 1M entities, ten components<br/>Half of the entities have all the components | 0.0010s | **1.2e-06s** |
201 | 1M entities, ten components<br/>One of the entities has all the components | 0.0008s | **1.2e-06s** |
202 | Sort 150k entities, one component<br/>Arrays are in reverse order | - | **0.0036s** |
203 | Sort 150k entities, enforce permutation<br/>Arrays are in reverse order | - | **0.0005s** |
204 | Sort 150k entities, one component<br/>Arrays are almost sorted, std::sort | - | **0.0035s** |
205 | Sort 150k entities, one component<br/>Arrays are almost sorted, insertion sort | - | **0.0007s** |
206 
207 Note: The default version of `EntityX` (`master` branch) wasn't added to the
208 comparison because it's already much slower than its compile-time counterpart.
209 
210 Pretty interesting results, aren't them? In fact, these benchmarks are the ones
211 used by `EntityX` to show _how fast it is_. To be honest, they aren't so good
212 and these results shouldn't be taken too seriously (indeed they are completely
213 unrealistic).<br/>
214 The proposed entity-component system is incredibly fast to iterate entities,
215 this is a fact. The compiler can make a lot of optimizations because of how
216 `EnTT` works, even more when components aren't used at all. This is exactly the
217 case for these benchmarks. On the other hand, if we consider real world cases,
218 `EnTT` is somewhere between a bit and much faster than the other solutions
219 around when users also access the components and not just the entities, although
220 it isn't as fast as reported by these benchmarks.<br/>
221 This is why they are completely wrong and cannot be used to evaluate any of the
222 entity-component-system libraries out there.
223 
224 The choice to use `EnTT` should be based on its carefully designed API, its
225 set of features and the general performance, not because some single benchmark
226 shows it to be the fastest tool available.
227 
228 In the future I'll likely try to get even better performance while still adding
229 new features, mainly for fun.<br/>
230 If you want to contribute and/or have suggestions, feel free to make a PR or
231 open an issue to discuss your idea.
232 
233 # Build Instructions
234 
235 ## Requirements
236 
237 To be able to use `EnTT`, users must provide a full-featured compiler that
238 supports at least C++17.<br/>
239 The requirements below are mandatory to compile the tests and to extract the
240 documentation:
241 
242 * `CMake` version 3.2 or later.
243 * `Doxygen` version 1.8 or later.
244 
245 Alternatively, `Bazel` is also supported as a build system (credits to
246 [zaucy](https://github.com/zaucy) who introduced what's required with
247 [this](https://github.com/skypjack/entt/pull/291) pull request and offered to
248 maintain it).<br/>
249 In the documentation below I'll still refer to `CMake`, this being the official
250 build system of the library.
251 
252 If you are looking for a C++14 version of `EnTT`, check out the git tag `cpp14`.
253 
254 ## Library
255 
256 `EnTT` is a header-only library. This means that including the `entt.hpp` header
257 is enough to include the library as a whole and use it. For those who are
258 interested only in the entity-component system, consider to include the sole
259 `entity/registry.hpp` header instead.<br/>
260 It's a matter of adding the following line to the top of a file:
261 
262 ```cpp
263 #include <entt/entt.hpp>
264 ```
265 
266 Use the line below to include only the entity-component system instead:
267 
268 ```cpp
269 #include <entt/entity/registry.hpp>
270 ```
271 
272 Then pass the proper `-I` argument to the compiler to add the `src` directory to
273 the include paths.
274 
275 ## Documentation
276 
277 The documentation is based on [doxygen](http://www.doxygen.nl/).
278 To build it:
279 
280  $ cd build
281  $ cmake .. -DBUILD_DOCS=ON
282  $ make
283 
284 The API reference will be created in HTML format within the directory
285 `build/docs/html`. To navigate it with your favorite browser:
286 
287  $ cd build
288  $ your_favorite_browser docs/html/index.html
289 
290 <!--
291 @cond TURN_OFF_DOXYGEN
292 -->
293 It's also available [online](https://skypjack.github.io/entt/) for the latest
294 version.<br/>
295 Finally, there exists a [wiki](https://github.com/skypjack/entt/wiki) dedicated
296 to the project where users can find all related documentation pages.
297 <!--
298 @endcond TURN_OFF_DOXYGEN
299 -->
300 
301 ## Tests
302 
303 To compile and run the tests, `EnTT` requires *googletest*.<br/>
304 `cmake` will download and compile the library before compiling anything else.
305 In order to build the tests, set the CMake option `BUILD_TESTING` to `ON`.
306 
307 To build the most basic set of tests:
308 
309 * `$ cd build`
310 * `$ cmake -DBUILD_TESTING=ON ..`
311 * `$ make`
312 * `$ make test`
313 
314 Note that benchmarks are not part of this set.
315 
316 # Packaging Tools
317 
318 `EnTT` is available for some of the most known packaging tools. In particular:
319 
320 * [`Conan`](https://bintray.com/skypjack/conan/entt%3Askypjack/_latestVersion),
321  the C/C++ Package Manager for Developers.
322 * [`Homebrew`](https://github.com/skypjack/homebrew-entt), the missing package
323  manager for macOS.<br/>
324  Available as a homebrew formula. Just type the following to install it:
325  ```
326  brew install skypjack/entt/entt
327  ```
328 * [`vcpkg`](https://github.com/Microsoft/vcpkg/tree/master/ports/entt),
329  Microsoft VC++ Packaging Tool.
330 
331 Consider this list a work in progress and help me to make it longer.
332 
333 <!--
334 @cond TURN_OFF_DOXYGEN
335 -->
336 # EnTT in Action
337 
338 `EnTT` is widely used in private and commercial applications. I cannot even
339 mention most of them because of some signatures I put on some documents time
340 ago. Fortunately, there are also people who took the time to implement open
341 source projects based on `EnTT` and did not hold back when it came to
342 documenting them.
343 
344 [Here](https://github.com/skypjack/entt/wiki/EnTT-in-Action) you can find an
345 incomplete list of games, applications and articles that can be used as a
346 reference.
347 
348 If you know of other resources out there that are about `EnTT`, feel free to
349 open an issue or a PR and I'll be glad to add them to the list.
350 
351 # Contributors
352 
353 `EnTT` was written initially as a faster alternative to other well known and
354 open source entity-component systems. Nowadays this library is moving its first
355 steps. Much more will come in the future and hopefully I'm going to work on it
356 for a long time.<br/>
357 Requests for features, PR, suggestions ad feedback are highly appreciated.
358 
359 If you find you can help me and want to contribute to the project with your
360 experience or you do want to get part of the project for some other reasons,
361 feel free to contact me directly (you can find the mail in the
362 [profile](https://github.com/skypjack)).<br/>
363 I can't promise that each and every contribution will be accepted, but I can
364 assure that I'll do my best to take them all seriously.
365 
366 If you decide to participate, please see the guidelines for
367 [contributing](CONTRIBUTING.md) before to create issues or pull
368 requests.<br/>
369 Take also a look at the
370 [contributors list](https://github.com/skypjack/entt/blob/master/AUTHORS) to
371 know who has participated so far.
372 <!--
373 @endcond TURN_OFF_DOXYGEN
374 -->
375 
376 # License
377 
378 Code and documentation Copyright (c) 2017-2019 Michele Caini.<br/>
379 Logo Copyright (c) 2018-2019 Richard Caseres.
380 
381 Code released under
382 [the MIT license](https://github.com/skypjack/entt/blob/master/LICENSE).
383 Documentation released under
384 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).<br/>
385 Logo released under
386 [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
387 
388 <!--
389 @cond TURN_OFF_DOXYGEN
390 -->
391 # Support
392 
393 ## Patreon
394 
395 Become a [patron](https://www.patreon.com/bePatron?c=1772573) and get access to
396 extra content, help me spend more time on the projects you love and create new
397 ones for you. Your support will help me to continue the work done so far and
398 make it more professional and feature-rich every day.<br/>
399 It takes very little to
400 [become a patron](https://www.patreon.com/bePatron?c=1772573) and thus help the
401 software you use every day. Don't miss the chance.
402 
403 ## Donation
404 
405 Developing and maintaining `EnTT` takes some time and lots of coffee. I'd like
406 to add more and more functionalities in future and turn it in a full-featured
407 solution.<br/>
408 If you want to support this project, you can offer me an espresso. I'm from
409 Italy, we're used to turning the best coffee ever in code. If you find that
410 it's not enough, feel free to support me the way you prefer.<br/>
411 Take a look at the donation button at the top of the page for more details or
412 just click [here](https://www.paypal.me/skypjack).
413 
414 ## Hire me
415 
416 If you start using `EnTT` and need help, if you want a new feature and want me
417 to give it the highest priority, if you have any other reason to contact me:
418 do not hesitate. I'm available for hiring.<br/>
419 Feel free to take a look at my [profile](https://github.com/skypjack) and
420 contact me by mail.
421 <!--
422 @endcond TURN_OFF_DOXYGEN
423 -->
+
1 ![EnTT: Gaming meets modern C++](https://user-images.githubusercontent.com/1812216/42513718-ee6e98d0-8457-11e8-9baf-8d83f61a3097.png)
2 
3 <!--
4 @cond TURN_OFF_DOXYGEN
5 -->
6 [![GitHub version](https://badge.fury.io/gh/skypjack%2Fentt.svg)](https://github.com/skypjack/entt/releases)
7 [![Build Status](https://github.com/skypjack/entt/workflows/build/badge.svg)](https://github.com/skypjack/entt/actions)
8 [![Coverage](https://codecov.io/gh/skypjack/entt/branch/master/graph/badge.svg)](https://codecov.io/gh/skypjack/entt)
9 [![Try online](https://img.shields.io/badge/try-online-brightgreen)](https://godbolt.org/z/v8txVr)
10 [![Gitter chat](https://badges.gitter.im/skypjack/entt.png)](https://gitter.im/skypjack/entt)
11 [![Donate](https://img.shields.io/badge/donate-paypal-blue.svg)](https://www.paypal.me/skypjack)
12 [![Patreon](https://img.shields.io/badge/become-patron-red.svg)](https://www.patreon.com/bePatron?c=1772573)
13 
14 `EnTT` is a header-only, tiny and easy to use library for game programming and
15 much more written in **modern C++**, mainly known for its innovative
16 **entity-component-system (ECS)** model.<br/>
17 [Among others](https://github.com/skypjack/entt/wiki/EnTT-in-Action), it's used
18 in [**Minecraft**](https://minecraft.net/en-us/attribution/) by Mojang and the
19 [**ArcGIS Runtime SDKs**](https://developers.arcgis.com/arcgis-runtime/) by
20 Esri. Open an issue or submit a PR if you don't see your project in the list!
21 
22 ---
23 
24 Do you want to **keep up with changes** or do you have a **question** that
25 doesn't require you to open an issue?<br/>
26 Join the [gitter channel](https://gitter.im/skypjack/entt) and meet other users
27 like you. The more we are, the better for everyone.
28 
29 Wondering why your **debug build** is so slow on Windows or how to represent a
30 **hierarchy** with components?<br/>
31 Check out the
32 [FAQ](https://github.com/skypjack/entt/wiki/Frequently-Asked-Questions) and the
33 [wiki](https://github.com/skypjack/entt/wiki) if you have these or other doubts,
34 your answers may already be there.
35 
36 If you use `EnTT` and you want to say thanks or support the project, please
37 **consider becoming a
38 [sponsor](https://github.com/users/skypjack/sponsorship)**.<br/>
39 You can help me make the difference.
40 [Many thanks](https://skypjack.github.io/sponsorship/) to those who supported me
41 and still support me today.
42 
43 # Table of Contents
44 
45 * [Introduction](#introduction)
46  * [Code Example](#code-example)
47  * [Motivation](#motivation)
48  * [Performance](#performance)
49 * [Build Instructions](#build-instructions)
50  * [Requirements](#requirements)
51  * [Library](#library)
52  * [Documentation](#documentation)
53  * [Tests](#tests)
54 * [Packaging Tools](#packaging-tools)
55 * [EnTT in Action](#entt-in-action)
56 * [Contributors](#contributors)
57 * [License](#license)
58 * [Support](#support)
59 <!--
60 @endcond TURN_OFF_DOXYGEN
61 -->
62 
63 # Introduction
64 
65 The entity-component-system (also known as _ECS_) is an architectural pattern
66 used mostly in game development. For further details:
67 
68 * [Entity Systems Wiki](http://entity-systems.wikidot.com/)
69 * [Evolve Your Hierarchy](http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/)
70 * [ECS on Wikipedia](https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system)
71 
72 This project started off as a pure entity-component system. Over time the
73 codebase has grown as more and more classes and functionalities were added.<br/>
74 Here is a brief, yet incomplete list of what it offers today:
75 
76 * Statically generated integer **identifiers** for types (assigned either at
77  compile-time or at runtime).
78 * A `constexpr` utility for human readable **resource names**.
79 * A minimal **configuration system** built using the monostate pattern.
80 * An incredibly fast **entity-component system** based on sparse sets, with its
81  own _pay for what you use_ policy to adjust performance and memory usage
82  according to the users' requirements.
83 * Views and groups to iterate entities and components and allow different access
84  patterns, from **perfect SoA** to fully random.
85 * A lot of **facilities** built on top of the entity-component system to help
86  the users and avoid reinventing the wheel (dependencies, snapshot, actor
87  class, support for **reactive systems** and so on).
88 * The smallest and most basic implementation of a **service locator** ever seen.
89 * A built-in, non-intrusive and macro-free runtime **reflection system**.
90 * A **cooperative scheduler** for processes of any type.
91 * All that is needed for **resource management** (cache, loaders, handles).
92 * Delegates, **signal handlers** (with built-in support for collectors) and a
93  tiny event dispatcher for immediate and delayed events to integrate in loops.
94 * A general purpose **event emitter** as a CRTP idiom based class template.
95 * And **much more**! Check out the
96  [**wiki**](https://github.com/skypjack/entt/wiki).
97 
98 Consider this list a work in progress as well as the project. The whole API is
99 fully documented in-code for those who are brave enough to read it.
100 
101 Currently, `EnTT` is tested on Linux, Microsoft Windows and OSX. It has proven
102 to work also on both Android and iOS.<br/>
103 Most likely it won't be problematic on other systems as well, but it hasn't been
104 sufficiently tested so far.
105 
106 ## Code Example
107 
108 ```cpp
109 #include <entt/entt.hpp>
110 #include <cstdint>
111 
112 struct position {
113  float x;
114  float y;
115 };
116 
117 struct velocity {
118  float dx;
119  float dy;
120 };
121 
122 void update(entt::registry &registry) {
123  auto view = registry.view<position, velocity>();
124 
125  for(auto entity: view) {
126  // gets only the components that are going to be used ...
127 
128  auto &vel = view.get<velocity>(entity);
129 
130  vel.dx = 0.;
131  vel.dy = 0.;
132 
133  // ...
134  }
135 }
136 
137 void update(std::uint64_t dt, entt::registry &registry) {
138  registry.view<position, velocity>().each([dt](auto &pos, auto &vel) {
139  // gets all the components of the view at once ...
140 
141  pos.x += vel.dx * dt;
142  pos.y += vel.dy * dt;
143 
144  // ...
145  });
146 }
147 
148 int main() {
149  entt::registry registry;
150  std::uint64_t dt = 16;
151 
152  for(auto i = 0; i < 10; ++i) {
153  auto entity = registry.create();
154  registry.assign<position>(entity, i * 1.f, i * 1.f);
155  if(i % 2 == 0) { registry.assign<velocity>(entity, i * .1f, i * .1f); }
156  }
157 
158  update(dt, registry);
159  update(registry);
160 
161  // ...
162 }
163 ```
164 
165 ## Motivation
166 
167 I started developing `EnTT` for the _wrong_ reason: my goal was to design an
168 entity-component system to beat another well known open source solution both in
169 terms of performance and possibly memory usage.<br/>
170 In the end, I did it, but it wasn't very satisfying. Actually it wasn't
171 satisfying at all. The fastest and nothing more, fairly little indeed. When I
172 realized it, I tried hard to keep intact the great performance of `EnTT` and to
173 add all the features I wanted to see in *my own library* at the same time.
174 
175 Nowadays, `EnTT` is finally what I was looking for: still faster than its
176 _competitors_, lower memory usage in the average case, a really good API and an
177 amazing set of features. And even more, of course.
178 
179 ## Performance
180 
181 The proposed entity-component system is incredibly fast to iterate entities and
182 components, this is a fact. Some compilers make a lot of optimizations because
183 of how `EnTT` works, some others aren't that good. In general, if we consider
184 real world cases, `EnTT` is somewhere between a bit and much faster than many of
185 the other solutions around, although I couldn't check them all for obvious
186 reasons.
187 
188 If you are interested, you can compile the `benchmark` test in release mode (to
189 enable compiler optimizations, otherwise it would make little sense) by setting
190 the `BUILD_BENCHMARK` option of `CMake` to `ON`, then evaluate yourself whether
191 you're satisfied with the results or not.
192 
193 Honestly I got tired of updating the README file whenever there is an
194 improvement.<br/>
195 There are already a lot of projects out there that use `EnTT` as a basis for
196 comparison (this should already tell you a lot). Many of these benchmarks are
197 completely wrong, many others are simply incomplete, good at omitting some
198 information and using the wrong function to compare a given feature. Certainly
199 there are also good ones but they age quickly if nobody updates them, especially
200 when the library they are dealing with is actively developed.
201 
202 The choice to use `EnTT` should be based on its carefully designed API, its
203 set of features and the general performance, **not** because some single
204 benchmark shows it to be the fastest tool available.
205 
206 In the future I'll likely try to get even better performance while still adding
207 new features, mainly for fun.<br/>
208 If you want to contribute and/or have suggestions, feel free to make a PR or
209 open an issue to discuss your idea.
210 
211 # Build Instructions
212 
213 ## Requirements
214 
215 To be able to use `EnTT`, users must provide a full-featured compiler that
216 supports at least C++17.<br/>
217 The requirements below are mandatory to compile the tests and to extract the
218 documentation:
219 
220 * `CMake` version 3.2 or later.
221 * `Doxygen` version 1.8 or later.
222 
223 Alternatively, `Bazel` is also supported as a build system (credits to
224 [zaucy](https://github.com/zaucy) who introduced what's required with
225 [this](https://github.com/skypjack/entt/pull/291) pull request and offered to
226 maintain it).<br/>
227 In the documentation below I'll still refer to `CMake`, this being the official
228 build system of the library.
229 
230 If you are looking for a C++14 version of `EnTT`, check out the git tag `cpp14`.
231 
232 ## Library
233 
234 `EnTT` is a header-only library. This means that including the `entt.hpp` header
235 is enough to include the library as a whole and use it. For those who are
236 interested only in the entity-component system, consider to include the sole
237 `entity/registry.hpp` header instead.<br/>
238 It's a matter of adding the following line to the top of a file:
239 
240 ```cpp
241 #include <entt/entt.hpp>
242 ```
243 
244 Use the line below to include only the entity-component system instead:
245 
246 ```cpp
247 #include <entt/entity/registry.hpp>
248 ```
249 
250 Then pass the proper `-I` argument to the compiler to add the `src` directory to
251 the include paths.
252 
253 ## Documentation
254 
255 The documentation is based on [doxygen](http://www.doxygen.nl/).
256 To build it:
257 
258  $ cd build
259  $ cmake .. -DBUILD_DOCS=ON
260  $ make
261 
262 The API reference will be created in HTML format within the directory
263 `build/docs/html`. To navigate it with your favorite browser:
264 
265  $ cd build
266  $ your_favorite_browser docs/html/index.html
267 
268 <!--
269 @cond TURN_OFF_DOXYGEN
270 -->
271 It's also available [online](https://skypjack.github.io/entt/) for the latest
272 version.<br/>
273 Finally, there exists a [wiki](https://github.com/skypjack/entt/wiki) dedicated
274 to the project where users can find all related documentation pages.
275 <!--
276 @endcond TURN_OFF_DOXYGEN
277 -->
278 
279 ## Tests
280 
281 To compile and run the tests, `EnTT` requires *googletest*.<br/>
282 `cmake` will download and compile the library before compiling anything else.
283 In order to build the tests, set the CMake option `BUILD_TESTING` to `ON`.
284 
285 To build the most basic set of tests:
286 
287 * `$ cd build`
288 * `$ cmake -DBUILD_TESTING=ON ..`
289 * `$ make`
290 * `$ make test`
291 
292 Note that benchmarks are not part of this set.
293 
294 # Packaging Tools
295 
296 `EnTT` is available for some of the most known packaging tools. In particular:
297 
298 * [`Conan`](https://bintray.com/skypjack/conan/entt%3Askypjack/_latestVersion),
299  the C/C++ Package Manager for Developers.
300 
301 * [`vcpkg`](https://github.com/Microsoft/vcpkg/tree/master/ports/entt),
302  Microsoft VC++ Packaging Tool.<br/>
303  You can download and install `EnTT` in just a few simple steps:
304 
305  ```
306  $ git clone https://github.com/Microsoft/vcpkg.git
307  $ cd vcpkg
308  $ ./bootstrap-vcpkg.sh
309  $ ./vcpkg integrate install
310  $ vcpkg install entt
311  ```
312 
313  The `EnTT` port in `vcpkg` is kept up to date by Microsoft team members and
314  community contributors.<br/>
315  If the version is out of date, please
316  [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the
317  `vcpkg` repository.
318 
319 * [`Homebrew`](https://github.com/skypjack/homebrew-entt), the missing package
320  manager for macOS.<br/>
321  Available as a homebrew formula. Just type the following to install it:
322 
323  ```
324  brew install skypjack/entt/entt
325  ```
326 
327 Consider this list a work in progress and help me to make it longer.
328 
329 <!--
330 @cond TURN_OFF_DOXYGEN
331 -->
332 # EnTT in Action
333 
334 `EnTT` is widely used in private and commercial applications. I cannot even
335 mention most of them because of some signatures I put on some documents time
336 ago. Fortunately, there are also people who took the time to implement open
337 source projects based on `EnTT` and did not hold back when it came to
338 documenting them.
339 
340 [Here](https://github.com/skypjack/entt/wiki/EnTT-in-Action) you can find an
341 incomplete list of games, applications and articles that can be used as a
342 reference.
343 
344 If you know of other resources out there that are about `EnTT`, feel free to
345 open an issue or a PR and I'll be glad to add them to the list.
346 
347 # Contributors
348 
349 `EnTT` was written initially as a faster alternative to other well known and
350 open source entity-component systems. Nowadays this library is moving its first
351 steps. Much more will come in the future and hopefully I'm going to work on it
352 for a long time.<br/>
353 Requests for features, PR, suggestions ad feedback are highly appreciated.
354 
355 If you find you can help me and want to contribute to the project with your
356 experience or you do want to get part of the project for some other reasons,
357 feel free to contact me directly (you can find the mail in the
358 [profile](https://github.com/skypjack)).<br/>
359 I can't promise that each and every contribution will be accepted, but I can
360 assure that I'll do my best to take them all seriously.
361 
362 If you decide to participate, please see the guidelines for
363 [contributing](CONTRIBUTING.md) before to create issues or pull
364 requests.<br/>
365 Take also a look at the
366 [contributors list](https://github.com/skypjack/entt/blob/master/AUTHORS) to
367 know who has participated so far.
368 <!--
369 @endcond TURN_OFF_DOXYGEN
370 -->
371 
372 # License
373 
374 Code and documentation Copyright (c) 2017-2019 Michele Caini.<br/>
375 Logo Copyright (c) 2018-2019 Richard Caseres.
376 
377 Code released under
378 [the MIT license](https://github.com/skypjack/entt/blob/master/LICENSE).
379 Documentation released under
380 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).<br/>
381 Logo released under
382 [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
383 
384 <!--
385 @cond TURN_OFF_DOXYGEN
386 -->
387 # Support
388 
389 If you want to support this project, you can
390 [offer me](https://github.com/users/skypjack/sponsorship) an espresso.<br/>
391 If you find that it's not enough, feel free to
392 [help me](https://www.paypal.me/skypjack) the way you prefer.
393 <!--
394 @endcond TURN_OFF_DOXYGEN
395 -->