From dbcc605d4eeb51df45e7149ad87973908d96ff6f Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Thu, 29 Aug 2019 16:16:50 +0200 Subject: [PATCH] API reference v3.1.0 --- CONTRIBUTING_8md_source.html | 74 -- README_8md_source.html | 4 +- actor_8hpp_source.html | 41 +- algorithm_8hpp_source.html | 14 +- annotated.html | 155 +-- autotoc_md0.html | 59 +- autotoc_md1.html | 110 -- autotoc_md46.html | 91 -- autotoc_md49.html | 126 ++ autotoc_md50.html | 116 -- autotoc_md57.html | 86 +- autotoc_md64.html | 121 ++ autotoc_md58.html => autotoc_md65.html | 6 +- autotoc_md61.html => autotoc_md68.html | 111 +- autotoc_md69.html => autotoc_md78.html | 10 +- autotoc_md8.html | 259 ++-- autotoc_md74.html => autotoc_md83.html | 10 +- autotoc_md77.html => autotoc_md86.html | 60 +- cache_8hpp_source.html | 30 +- ..._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_54ca6466fcd0506388705164ba2d896f.html | 378 +++--- ...1Get_86b01ab83965ad65f5c8dea9ea3cb0b2.html | 104 ++ ..._8_01_4_00_01Owned_8_8_8_01_4-members.html | 100 -- ...et__t_3_01Get_8_8_8_01_4_01_4-members.html | 102 -- ...y_00_01get__t_3_01Get_8_8_8_01_4_01_4.html | 822 ------------- ...entt_1_1basic__hashed__string-members.html | 94 ++ ...=> classentt_1_1basic__hashed__string.html | 229 ++-- classentt_1_1basic__observer-members.html | 101 ++ classentt_1_1basic__observer.html | 640 ++++++++++ classentt_1_1basic__prototype-members.html | 107 -- classentt_1_1basic__prototype.html | 1045 +---------------- classentt_1_1basic__registry-members.html | 32 +- classentt_1_1basic__registry.html | 765 ++++++++---- ...sentt_1_1basic__runtime__view-members.html | 2 +- classentt_1_1basic__runtime__view.html | 17 +- classentt_1_1basic__snapshot-members.html | 2 +- classentt_1_1basic__snapshot.html | 12 +- ...tt_1_1basic__snapshot__loader-members.html | 2 +- classentt_1_1basic__snapshot__loader.html | 12 +- classentt_1_1basic__storage-members.html | 56 +- classentt_1_1basic__storage.html | 350 ++++-- ...empty_03c43bf21b9ff29af7916eca6f32bd45.png | Bin 7071 -> 6384 bytes ...mpty_55389e5d919856c74679502c484f479d.html | 56 +- ...1is__empty__v_3_01Type_01_4_01_4_01_4.html | 137 ++- ...empty_ac9255c8c588438ee2413ba78575c478.png | Bin 7071 -> 6384 bytes classentt_1_1basic__storage__coll__graph.png | Bin 6501 -> 5839 bytes ...entt_1_1basic__storage__inherit__graph.png | Bin 9016 -> 8127 bytes classentt_1_1basic__view-members.html | 4 +- classentt_1_1basic__view.html | 142 ++- ..._01Entity_00_01Component_01_4-members.html | 13 +- ...__view_3_01Entity_00_01Component_01_4.html | 83 +- ...ml => classentt_1_1connection-members.html | 24 +- classentt_1_1connection.html | 297 +++++ classentt_1_1connection__inherit__graph.map | 3 + classentt_1_1connection__inherit__graph.md5 | 1 + classentt_1_1connection__inherit__graph.png | Bin 0 -> 3320 bytes classentt_1_1delegate.html | 4 +- ...ate_3_01Ret_07Args_8_8_8_08_4-members.html | 6 +- ...1_1delegate_3_01Ret_07Args_8_8_8_08_4.html | 67 +- classentt_1_1dispatcher-members.html | 2 +- classentt_1_1dispatcher.html | 6 +- classentt_1_1emitter-members.html | 2 +- classentt_1_1emitter.html | 2 +- classentt_1_1family-members.html | 2 +- classentt_1_1family.html | 2 +- classentt_1_1hashed__string-members.html | 93 -- classentt_1_1identifier-members.html | 2 +- classentt_1_1identifier.html | 2 +- classentt_1_1meta__any-members.html | 37 +- classentt_1_1meta__any.html | 520 +++++--- classentt_1_1meta__base-members.html | 2 +- classentt_1_1meta__base.html | 14 +- classentt_1_1meta__conv-members.html | 4 +- classentt_1_1meta__conv.html | 26 +- classentt_1_1meta__ctor-members.html | 2 +- classentt_1_1meta__ctor.html | 20 +- classentt_1_1meta__data-members.html | 12 +- classentt_1_1meta__data.html | 110 +- classentt_1_1meta__dtor-members.html | 2 +- classentt_1_1meta__dtor.html | 16 +- classentt_1_1meta__factory-members.html | 17 +- classentt_1_1meta__factory.html | 231 ++-- classentt_1_1meta__func-members.html | 14 +- classentt_1_1meta__func.html | 96 +- classentt_1_1meta__prop-members.html | 2 +- classentt_1_1meta__prop.html | 12 +- classentt_1_1meta__type-members.html | 53 +- classentt_1_1meta__type.html | 244 ++-- classentt_1_1process-members.html | 2 +- classentt_1_1process.html | 2 +- classentt_1_1resource__cache-members.html | 25 +- classentt_1_1resource__cache.html | 102 +- classentt_1_1resource__handle-members.html | 12 +- classentt_1_1resource__handle.html | 177 ++- classentt_1_1resource__loader-members.html | 2 +- classentt_1_1resource__loader.html | 2 +- classentt_1_1scheduler-members.html | 2 +- classentt_1_1scheduler.html | 2 +- ...ntt_1_1sigh.html => classentt_1_1sigh.html | 19 +- ...igh_3_01Ret_07Args_8_8_8_08_4-members.html | 89 ++ ...ntt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html | 345 ++++++ classentt_1_1sink.html | 8 +- ...ink_3_01Ret_07Args_8_8_8_08_4-members.html | 15 +- ...ntt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html | 189 ++- classentt_1_1sparse__set-members.html | 27 +- classentt_1_1sparse__set.html | 301 +++-- classentt_1_1sparse__set__inherit__graph.png | Bin 28402 -> 26421 bytes classes.html | 74 +- config_8h_source.html | 4 +- core_2utility_8hpp_source.html | 82 ++ core_8md_source.html | 4 +- delegate_8hpp_source.html | 32 +- 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 | 11 +- emitter_8hpp_source.html | 8 +- entity_2fwd_8hpp_source.html | 24 +- entity_2utility_8hpp_source.html | 83 ++ entity_8hpp_source.html | 29 +- entity_8md_source.html | 4 +- entt_8hpp_source.html | 4 +- factory_8hpp_source.html | 62 +- family_8hpp_source.html | 6 +- faq_8md_source.html | 4 +- files.html | 20 +- functions.html | 8 +- functions_0x7e.html | 9 +- functions_b.html | 26 +- functions_c.html | 53 +- functions_d.html | 24 +- functions_e.html | 35 +- functions_f.html | 10 +- functions_func.html | 8 +- functions_func_0x7e.html | 9 +- functions_func_b.html | 22 +- functions_func_c.html | 43 +- functions_func_d.html | 24 +- functions_func_e.html | 27 +- functions_func_f.html | 10 +- functions_func_g.html | 18 +- functions_func_h.html | 6 +- functions_func_i.html | 10 +- functions_func_k.html | 2 +- functions_func_l.html | 7 +- functions_func_m.html | 4 +- functions_func_o.html | 48 +- functions_func_p.html | 4 +- functions_func_r.html | 28 +- functions_func_s.html | 40 +- functions_func_t.html | 14 +- functions_func_u.html | 8 +- functions_func_v.html | 4 +- ...tions_func_n.html => functions_func_w.html | 10 +- functions_g.html | 18 +- functions_h.html | 8 +- functions_i.html | 17 +- functions_k.html | 2 +- functions_l.html | 7 +- functions_m.html | 7 +- functions_o.html | 46 +- functions_p.html | 4 +- functions_r.html | 32 +- functions_rela.html | 25 +- functions_s.html | 65 +- functions_t.html | 13 +- functions_type.html | 42 +- functions_u.html | 9 +- functions_v.html | 9 +- functions_vars.html | 5 +- functions_n.html => functions_w.html | 10 +- fwd_8hpp_source.html | 2 +- graph_legend.html | 2 +- graph_legend.png | Bin 21382 -> 20323 bytes group_8hpp_source.html | 106 +- handle_8hpp_source.html | 13 +- hashed__string_8hpp_source.html | 30 +- helper_8hpp_source.html | 30 +- hierarchy.html | 191 +-- ident_8hpp_source.html | 4 +- index.html | 40 +- inherit_graph_0.map | 2 +- inherit_graph_0.md5 | 2 +- inherit_graph_0.png | Bin 3287 -> 1126 bytes inherit_graph_1.map | 2 +- inherit_graph_1.md5 | 2 +- inherit_graph_1.png | Bin 2808 -> 2898 bytes inherit_graph_10.map | 2 +- inherit_graph_10.md5 | 2 +- inherit_graph_10.png | Bin 2770 -> 4327 bytes inherit_graph_11.map | 2 +- inherit_graph_11.md5 | 2 +- inherit_graph_11.png | Bin 3216 -> 5344 bytes inherit_graph_12.map | 2 +- inherit_graph_12.md5 | 2 +- inherit_graph_12.png | Bin 3367 -> 2182 bytes inherit_graph_13.map | 2 +- inherit_graph_13.md5 | 2 +- inherit_graph_13.png | Bin 3367 -> 3067 bytes inherit_graph_14.map | 2 +- inherit_graph_14.md5 | 2 +- inherit_graph_14.png | Bin 2232 -> 2629 bytes inherit_graph_15.map | 2 +- inherit_graph_15.md5 | 2 +- inherit_graph_15.png | Bin 2728 -> 2724 bytes inherit_graph_16.map | 2 +- inherit_graph_16.md5 | 2 +- inherit_graph_16.png | Bin 2198 -> 2377 bytes inherit_graph_17.map | 2 +- inherit_graph_17.md5 | 2 +- inherit_graph_17.png | Bin 1959 -> 2525 bytes inherit_graph_18.map | 2 +- inherit_graph_18.md5 | 2 +- inherit_graph_18.png | Bin 1760 -> 2663 bytes inherit_graph_19.map | 2 +- inherit_graph_19.md5 | 2 +- inherit_graph_19.png | Bin 4280 -> 2484 bytes inherit_graph_2.map | 2 +- inherit_graph_2.md5 | 2 +- inherit_graph_2.png | Bin 2578 -> 1084 bytes inherit_graph_20.map | 2 +- inherit_graph_20.md5 | 2 +- inherit_graph_20.png | Bin 2332 -> 2748 bytes inherit_graph_21.map | 2 +- inherit_graph_21.md5 | 2 +- inherit_graph_21.png | Bin 2455 -> 3086 bytes inherit_graph_22.map | 2 +- inherit_graph_22.md5 | 2 +- inherit_graph_22.png | Bin 2422 -> 3086 bytes inherit_graph_23.map | 2 +- inherit_graph_23.md5 | 2 +- inherit_graph_23.png | Bin 2188 -> 2075 bytes inherit_graph_24.map | 3 +- inherit_graph_24.md5 | 2 +- inherit_graph_24.png | Bin 1613 -> 2104 bytes inherit_graph_25.map | 2 +- inherit_graph_25.md5 | 2 +- inherit_graph_25.png | Bin 1755 -> 2502 bytes inherit_graph_26.map | 2 +- inherit_graph_26.md5 | 2 +- inherit_graph_26.png | Bin 1989 -> 2017 bytes inherit_graph_27.map | 2 +- inherit_graph_27.md5 | 2 +- inherit_graph_27.png | Bin 1311 -> 2398 bytes inherit_graph_28.map | 2 +- inherit_graph_28.md5 | 2 +- inherit_graph_28.png | Bin 5513 -> 1743 bytes inherit_graph_29.map | 2 +- inherit_graph_29.md5 | 2 +- inherit_graph_29.png | Bin 3730 -> 1654 bytes inherit_graph_3.map | 2 +- inherit_graph_3.md5 | 2 +- inherit_graph_3.png | Bin 3069 -> 2513 bytes inherit_graph_30.map | 2 +- inherit_graph_30.md5 | 2 +- inherit_graph_30.png | Bin 1318 -> 4098 bytes inherit_graph_31.map | 2 +- inherit_graph_31.md5 | 2 +- inherit_graph_31.png | Bin 1568 -> 2215 bytes inherit_graph_32.map | 2 +- inherit_graph_32.md5 | 2 +- inherit_graph_32.png | Bin 1687 -> 2308 bytes inherit_graph_33.map | 2 +- inherit_graph_33.md5 | 2 +- inherit_graph_33.png | Bin 1495 -> 2266 bytes inherit_graph_34.map | 2 +- inherit_graph_34.md5 | 2 +- inherit_graph_34.png | Bin 1311 -> 2128 bytes inherit_graph_35.map | 2 +- inherit_graph_35.md5 | 2 +- inherit_graph_35.png | Bin 1507 -> 1538 bytes inherit_graph_36.map | 2 +- inherit_graph_36.md5 | 2 +- inherit_graph_36.png | Bin 2757 -> 1828 bytes inherit_graph_37.map | 2 +- inherit_graph_37.md5 | 2 +- inherit_graph_37.png | Bin 1417 -> 1064 bytes inherit_graph_38.map | 2 +- inherit_graph_38.md5 | 2 +- inherit_graph_38.png | Bin 1402 -> 1180 bytes inherit_graph_39.map | 2 +- inherit_graph_39.md5 | 2 +- inherit_graph_39.png | Bin 1483 -> 5076 bytes inherit_graph_4.map | 2 +- inherit_graph_4.md5 | 2 +- inherit_graph_4.png | Bin 3426 -> 1538 bytes inherit_graph_40.map | 2 +- inherit_graph_40.md5 | 2 +- inherit_graph_40.png | Bin 1482 -> 3352 bytes inherit_graph_41.map | 2 +- inherit_graph_41.md5 | 2 +- inherit_graph_41.png | Bin 2420 -> 1551 bytes inherit_graph_42.map | 3 +- inherit_graph_42.md5 | 2 +- inherit_graph_42.png | Bin 3708 -> 1164 bytes inherit_graph_43.map | 2 +- inherit_graph_43.md5 | 2 +- inherit_graph_43.png | Bin 2433 -> 1419 bytes inherit_graph_44.map | 2 +- inherit_graph_44.md5 | 2 +- inherit_graph_44.png | Bin 2788 -> 1492 bytes inherit_graph_45.map | 3 +- inherit_graph_45.md5 | 2 +- inherit_graph_45.png | Bin 9517 -> 1313 bytes inherit_graph_46.map | 2 +- inherit_graph_46.md5 | 2 +- inherit_graph_46.png | Bin 2847 -> 1140 bytes inherit_graph_47.map | 2 +- inherit_graph_47.md5 | 2 +- inherit_graph_47.png | Bin 2860 -> 1332 bytes inherit_graph_48.map | 2 +- inherit_graph_48.md5 | 2 +- inherit_graph_48.png | Bin 2681 -> 2503 bytes inherit_graph_49.map | 2 +- inherit_graph_49.md5 | 2 +- inherit_graph_49.png | Bin 2205 -> 1238 bytes inherit_graph_5.map | 2 +- inherit_graph_5.md5 | 2 +- inherit_graph_5.png | Bin 4704 -> 2267 bytes inherit_graph_50.map | 2 +- inherit_graph_50.md5 | 2 +- inherit_graph_50.png | Bin 2858 -> 1245 bytes inherit_graph_51.map | 2 +- inherit_graph_51.md5 | 2 +- inherit_graph_51.png | Bin 4549 -> 1298 bytes inherit_graph_52.map | 2 +- inherit_graph_52.md5 | 2 +- inherit_graph_52.png | Bin 2463 -> 1297 bytes inherit_graph_53.map | 2 +- inherit_graph_53.md5 | 2 +- inherit_graph_53.png | Bin 3394 -> 2680 bytes inherit_graph_54.map | 3 +- inherit_graph_54.md5 | 2 +- inherit_graph_54.png | Bin 4809 -> 3287 bytes inherit_graph_55.map | 2 +- inherit_graph_55.md5 | 2 +- inherit_graph_55.png | Bin 6754 -> 2233 bytes inherit_graph_56.map | 2 +- inherit_graph_56.md5 | 2 +- inherit_graph_56.png | Bin 2505 -> 2518 bytes inherit_graph_57.map | 3 +- inherit_graph_57.md5 | 2 +- inherit_graph_57.png | Bin 2015 -> 8233 bytes inherit_graph_58.map | 8 +- inherit_graph_58.md5 | 2 +- inherit_graph_58.png | Bin 24595 -> 2127 bytes inherit_graph_59.map | 2 +- inherit_graph_59.md5 | 2 +- inherit_graph_59.png | Bin 2665 -> 2388 bytes inherit_graph_6.map | 2 +- inherit_graph_6.md5 | 2 +- inherit_graph_6.png | Bin 2374 -> 4594 bytes inherit_graph_60.map | 2 +- inherit_graph_60.md5 | 2 +- inherit_graph_60.png | Bin 1358 -> 2312 bytes inherit_graph_61.map | 2 +- inherit_graph_61.md5 | 2 +- inherit_graph_61.png | Bin 1819 -> 2361 bytes inherit_graph_62.map | 4 +- inherit_graph_62.md5 | 2 +- inherit_graph_62.png | Bin 7419 -> 2046 bytes inherit_graph_63.map | 2 +- inherit_graph_63.md5 | 2 +- inherit_graph_63.png | Bin 2852 -> 2505 bytes inherit_graph_64.map | 2 +- inherit_graph_64.md5 | 2 +- inherit_graph_64.png | Bin 3526 -> 2326 bytes inherit_graph_65.map | 2 +- inherit_graph_65.md5 | 2 +- inherit_graph_65.png | Bin 2110 -> 2011 bytes inherit_graph_66.map | 2 +- inherit_graph_66.md5 | 2 +- inherit_graph_66.png | Bin 3352 -> 3947 bytes inherit_graph_67.map | 2 +- inherit_graph_67.md5 | 2 +- inherit_graph_67.png | Bin 2481 -> 4481 bytes inherit_graph_68.map | 2 +- inherit_graph_68.md5 | 2 +- inherit_graph_68.png | Bin 2583 -> 3060 bytes inherit_graph_69.map | 3 + inherit_graph_69.md5 | 1 + inherit_graph_69.png | Bin 0 -> 2385 bytes inherit_graph_7.map | 2 +- inherit_graph_7.md5 | 2 +- inherit_graph_7.png | Bin 3088 -> 1993 bytes inherit_graph_70.map | 3 + inherit_graph_70.md5 | 1 + inherit_graph_70.png | Bin 0 -> 1906 bytes inherit_graph_71.map | 9 + inherit_graph_71.md5 | 1 + inherit_graph_71.png | Bin 0 -> 22247 bytes inherit_graph_72.map | 5 + inherit_graph_72.md5 | 1 + inherit_graph_72.png | Bin 0 -> 7141 bytes inherit_graph_73.map | 3 + inherit_graph_73.md5 | 1 + inherit_graph_73.png | Bin 0 -> 1212 bytes inherit_graph_74.map | 5 + inherit_graph_74.md5 | 1 + inherit_graph_74.png | Bin 0 -> 6930 bytes inherit_graph_75.map | 3 + inherit_graph_75.md5 | 1 + inherit_graph_75.png | Bin 0 -> 1532 bytes inherit_graph_76.map | 3 + inherit_graph_76.md5 | 1 + inherit_graph_76.png | Bin 0 -> 2601 bytes inherit_graph_77.map | 3 + inherit_graph_77.md5 | 1 + inherit_graph_77.png | Bin 0 -> 3247 bytes inherit_graph_78.map | 3 + inherit_graph_78.md5 | 1 + inherit_graph_78.png | Bin 0 -> 1933 bytes inherit_graph_79.map | 3 + inherit_graph_79.md5 | 1 + inherit_graph_79.png | Bin 0 -> 1813 bytes inherit_graph_8.map | 2 +- inherit_graph_8.md5 | 2 +- inherit_graph_8.png | Bin 2735 -> 1871 bytes inherit_graph_80.map | 3 + inherit_graph_80.md5 | 1 + inherit_graph_80.png | Bin 0 -> 3631 bytes inherit_graph_81.map | 3 + inherit_graph_81.md5 | 1 + inherit_graph_81.png | Bin 0 -> 2414 bytes inherit_graph_82.map | 3 + inherit_graph_82.md5 | 1 + inherit_graph_82.png | Bin 0 -> 2969 bytes inherit_graph_83.map | 3 + inherit_graph_83.md5 | 1 + inherit_graph_83.png | Bin 0 -> 2194 bytes inherit_graph_84.map | 3 + inherit_graph_84.md5 | 1 + inherit_graph_84.png | Bin 0 -> 2438 bytes inherit_graph_9.map | 2 +- inherit_graph_9.md5 | 2 +- inherit_graph_9.png | Bin 2971 -> 2617 bytes inherits.html | 293 +++-- lib_8md_source.html | 2 +- links_8md_source.html | 4 +- loader_8hpp_source.html | 6 +- locator_8hpp_source.html | 6 +- locator_8md_source.html | 2 +- menudata.js | 6 +- meta_8hpp_source.html | 249 ++-- meta_8md_source.html | 4 +- monostate_8hpp_source.html | 10 +- namespaceentt.html | 620 +++++----- namespacemembers.html | 58 +- namespacemembers_func.html | 23 +- namespacemembers_type.html | 16 +- namespacemembers_vars.html | 11 +- namespaces.html | 2 +- observer_8hpp_source.html | 118 ++ pages.html | 23 +- policy_8hpp_source.html | 83 ++ process_8hpp_source.html | 4 +- process_8md_source.html | 2 +- prototype_8hpp_source.html | 108 -- registry_8hpp_source.html | 171 +-- resource_2fwd_8hpp_source.html | 4 +- resource_8md_source.html | 2 +- runtime__view_8hpp_source.html | 45 +- scheduler_8hpp_source.html | 4 +- search/all_0.js | 8 +- search/all_1.js | 25 +- search/all_10.js | 31 +- search/all_11.js | 14 +- search/all_12.js | 4 +- search/all_13.js | 3 +- search/all_14.js | 8 +- search/{classes_e.html => all_15.html} | 2 +- search/all_15.js | 11 + search/all_2.js | 41 +- search/all_3.js | 10 +- search/all_4.js | 13 +- search/all_5.js | 6 +- search/all_6.js | 4 +- search/all_7.js | 7 +- search/all_8.js | 8 +- search/all_a.js | 1 + search/all_b.js | 7 +- search/all_c.js | 1 - search/all_d.js | 28 +- search/all_e.js | 4 +- search/all_f.js | 20 +- search/classes_0.js | 5 +- search/classes_1.js | 11 +- search/classes_2.js | 2 +- search/classes_3.js | 1 + search/classes_7.js | 6 +- search/classes_8.js | 17 +- search/classes_9.js | 15 +- search/classes_a.js | 6 +- search/classes_b.js | 7 +- search/classes_c.js | 19 +- search/classes_d.js | 25 +- search/classes_e.js | 11 - search/functions_0.js | 4 +- search/functions_1.js | 13 +- search/functions_10.js | 20 +- search/functions_11.js | 12 +- search/functions_12.js | 8 +- search/functions_13.js | 5 +- search/functions_14.js | 3 +- search/functions_2.js | 25 +- search/functions_3.js | 9 +- search/functions_4.js | 7 +- search/functions_5.js | 4 +- search/functions_6.js | 4 +- search/functions_7.js | 3 +- search/functions_8.js | 2 + search/functions_a.js | 1 + search/functions_b.js | 4 +- search/functions_c.js | 25 +- search/functions_d.js | 29 +- search/functions_e.js | 23 +- search/functions_f.js | 30 +- search/pages_0.js | 15 +- search/pages_1.js | 2 +- search/pages_2.js | 2 +- search/pages_3.js | 2 +- search/related_0.js | 2 +- search/related_3.js | 4 +- search/related_4.js | 1 - search/related_5.js | 5 +- search/related_6.html | 26 - search/related_6.js | 4 - search/searchdata.js | 10 +- search/typedefs_1.js | 2 - search/typedefs_3.js | 3 +- search/typedefs_6.js | 4 +- search/typedefs_7.js | 4 +- search/typedefs_a.js | 3 +- search/typedefs_c.js | 4 +- search/typedefs_d.js | 4 +- search/typedefs_e.js | 4 +- search/typedefs_f.js | 1 + search/variables_0.js | 2 +- search/variables_1.js | 5 +- search/variables_2.js | 4 +- search/variables_3.js | 2 +- search/variables_4.js | 2 +- search/variables_5.js | 2 +- search/variables_6.js | 2 +- search/variables_7.js | 3 +- sigh_8hpp_source.html | 52 +- signal_2fwd_8hpp_source.html | 8 +- signal_8md_source.html | 4 +- snapshot_8hpp_source.html | 50 +- sparse__set_8hpp_source.html | 51 +- storage_8hpp_source.html | 95 +- structentt_1_1as__alias__t.html | 90 ++ structentt_1_1as__group-members.html | 4 +- structentt_1_1as__group.html | 27 +- structentt_1_1as__is__t.html | 90 ++ structentt_1_1as__view-members.html | 2 +- structentt_1_1as__view.html | 8 +- structentt_1_1as__void__t.html | 90 ++ structentt_1_1basic__actor-members.html | 19 +- structentt_1_1basic__actor.html | 149 ++- structentt_1_1basic__collector.html | 94 ++ ..._00_09508ef5b097d7d4aaf1134c3405dcde2.html | 84 ++ ..._00_0f5f4fb3c1586eeb5723872d0d0e4f427.html | 245 ++++ ...tentt_1_1basic__collector_3_4-members.html | 83 ++ structentt_1_1basic__collector_3_4.html | 189 +++ structentt_1_1connect__arg__t.html | 4 +- ...entt_1_1emitter_1_1connection-members.html | 2 +- structentt_1_1emitter_1_1connection.html | 6 +- ..._1_1emitter_1_1connection__coll__graph.png | Bin 5843 -> 5354 bytes ...1emitter_1_1connection__inherit__graph.png | Bin 5843 -> 5354 bytes structentt_1_1entt__traits.html | 4 +- ...its_3_01std_1_1uint16__t_01_4-members.html | 2 +- ...ntt__traits_3_01std_1_1uint16__t_01_4.html | 4 +- ...its_3_01std_1_1uint32__t_01_4-members.html | 2 +- ...ntt__traits_3_01std_1_1uint32__t_01_4.html | 4 +- ...its_3_01std_1_1uint64__t_01_4-members.html | 2 +- ...ntt__traits_3_01std_1_1uint64__t_01_4.html | 4 +- structentt_1_1exclude__t.html | 19 +- structentt_1_1exclude__t__coll__graph.png | Bin 4377 -> 3979 bytes structentt_1_1exclude__t__inherit__graph.png | Bin 4377 -> 3979 bytes structentt_1_1get__t.html | 19 +- structentt_1_1get__t__coll__graph.png | Bin 4030 -> 3664 bytes structentt_1_1get__t__inherit__graph.png | Bin 4030 -> 3664 bytes ...tml => structentt_1_1identity-members.html | 10 +- structentt_1_1identity.html | 147 +++ structentt_1_1insertion__sort-members.html | 2 +- structentt_1_1insertion__sort.html | 6 +- structentt_1_1is__named__type.html | 8 +- ...std_1_0c6058b8ba47cc9c6693d18c8fb48d92.png | Bin 6832 -> 5827 bytes ...td_1_268fa5a871b2de95e24d77c0786df19e.html | 8 +- ...std_1_9aa8d80f3ceacce258d85ba16cdb7265.png | Bin 6832 -> 5827 bytes ...ctentt_1_1is__named__type__coll__graph.png | Bin 4988 -> 4692 bytes ...ntt_1_1is__named__type__inherit__graph.png | Bin 4988 -> 4692 bytes structentt_1_1matcher.html | 93 ++ structentt_1_1meta__handle-members.html | 90 ++ ...le.html => structentt_1_1meta__handle.html | 261 ++-- structentt_1_1monostate-members.html | 10 +- structentt_1_1monostate.html | 48 +- 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 -> 5297 bytes ..._3_01const_01Type_01_4__inherit__graph.png | Bin 5918 -> 5297 bytes structentt_1_1process__adaptor-members.html | 2 +- structentt_1_1process__adaptor.html | 2 +- ...tentt_1_1process__adaptor__coll__graph.png | Bin 9118 -> 8122 bytes ...tt_1_1process__adaptor__inherit__graph.png | Bin 9118 -> 8122 bytes ... => structentt_1_1radix__sort-members.html | 10 +- structentt_1_1radix__sort.html | 179 +++ structentt_1_1scoped__connection-members.html | 95 ++ structentt_1_1scoped__connection.html | 340 ++++++ ...ntt_1_1scoped__connection__coll__graph.map | 3 + ...ntt_1_1scoped__connection__coll__graph.md5 | 1 + ...ntt_1_1scoped__connection__coll__graph.png | Bin 0 -> 3382 bytes ..._1_1scoped__connection__inherit__graph.map | 3 + ..._1_1scoped__connection__inherit__graph.md5 | 1 + ..._1_1scoped__connection__inherit__graph.png | Bin 0 -> 3382 bytes structentt_1_1service__locator-members.html | 2 +- structentt_1_1service__locator.html | 2 +- ..._8_8_8_08_00_01Collector_01_4-members.html | 91 -- ...t_07Args_8_8_8_08_00_01Collector_01_4.html | 427 ------- ..._8_08_00_01Collector_01_4__coll__graph.map | 2 - ..._8_08_00_01Collector_01_4__coll__graph.md5 | 1 - ..._8_08_00_01Collector_01_4__coll__graph.png | Bin 6972 -> 0 bytes ...08_00_01Collector_01_4__inherit__graph.map | 2 - ...08_00_01Collector_01_4__inherit__graph.md5 | 1 - ...08_00_01Collector_01_4__inherit__graph.png | Bin 6972 -> 0 bytes structentt_1_1std__sort-members.html | 2 +- structentt_1_1std__sort.html | 6 +- structentt_1_1storage-members.html | 56 +- structentt_1_1storage.html | 90 +- structentt_1_1storage__coll__graph.png | Bin 8732 -> 7888 bytes structentt_1_1storage__inherit__graph.png | Bin 8732 -> 7888 bytes structentt_1_1type__list.html | 29 +- 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 | 10 +- structentt_1_1type__list__cat_3_4.html | 104 ++ structentt_1_1type__list__size.html | 93 ++ ...01type__list_3_01Type_8_8_8_01_4_01_4.html | 113 ++ ..._3_01Type_8_8_8_01_4_01_4__coll__graph.map | 2 + ..._3_01Type_8_8_8_01_4_01_4__coll__graph.md5 | 1 + ..._3_01Type_8_8_8_01_4_01_4__coll__graph.png | Bin 0 -> 6428 bytes ...01Type_8_8_8_01_4_01_4__inherit__graph.map | 2 + ...01Type_8_8_8_01_4_01_4__inherit__graph.md5 | 1 + ...01Type_8_8_8_01_4_01_4__inherit__graph.png | Bin 0 -> 6428 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 +- type__traits_8hpp_source.html | 30 +- utility_8hpp_source.html | 80 -- version_8h_source.html | 4 +- view_8hpp_source.html | 93 +- 668 files changed, 12185 insertions(+), 7866 deletions(-) delete mode 100644 CONTRIBUTING_8md_source.html delete mode 100644 autotoc_md1.html delete mode 100644 autotoc_md46.html create mode 100644 autotoc_md49.html delete mode 100644 autotoc_md50.html create mode 100644 autotoc_md64.html rename autotoc_md58.html => autotoc_md65.html (97%) rename autotoc_md61.html => autotoc_md68.html (58%) rename autotoc_md69.html => autotoc_md78.html (98%) rename autotoc_md74.html => autotoc_md83.html (93%) rename autotoc_md77.html => autotoc_md86.html (58%) create 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 create 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 rename classentt_1_1basic__group_3_01Entity_00_01get__t_3_01Get_8_8_8_01_4_00_01Owned_8_8_8_01_4.html => classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_54ca6466fcd0506388705164ba2d896f.html (50%) create 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__group_3_01Entity_00_01get__t_3_01Get_8_8_8_01_4_00_01Owned_8_8_8_01_4-members.html delete mode 100644 classentt_1_1basic__group_3_01Entity_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html delete mode 100644 classentt_1_1basic__group_3_01Entity_00_01get__t_3_01Get_8_8_8_01_4_01_4.html create mode 100644 classentt_1_1basic__hashed__string-members.html rename classentt_1_1hashed__string.html => classentt_1_1basic__hashed__string.html (53%) create mode 100644 classentt_1_1basic__observer-members.html create mode 100644 classentt_1_1basic__observer.html delete mode 100644 classentt_1_1basic__prototype-members.html rename classentt_1_1meta__handle-members.html => classentt_1_1connection-members.html (53%) create mode 100644 classentt_1_1connection.html create mode 100644 classentt_1_1connection__inherit__graph.map create mode 100644 classentt_1_1connection__inherit__graph.md5 create mode 100644 classentt_1_1connection__inherit__graph.png delete mode 100644 classentt_1_1hashed__string-members.html rename structentt_1_1sigh.html => classentt_1_1sigh.html (83%) create mode 100644 classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html create mode 100644 classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html create mode 100644 core_2utility_8hpp_source.html create mode 100644 entity_2utility_8hpp_source.html rename functions_func_n.html => functions_func_w.html (85%) rename functions_n.html => functions_w.html (85%) create mode 100644 inherit_graph_69.map create mode 100644 inherit_graph_69.md5 create mode 100644 inherit_graph_69.png create mode 100644 inherit_graph_70.map create mode 100644 inherit_graph_70.md5 create mode 100644 inherit_graph_70.png create mode 100644 inherit_graph_71.map create mode 100644 inherit_graph_71.md5 create mode 100644 inherit_graph_71.png create mode 100644 inherit_graph_72.map create mode 100644 inherit_graph_72.md5 create mode 100644 inherit_graph_72.png create mode 100644 inherit_graph_73.map create mode 100644 inherit_graph_73.md5 create mode 100644 inherit_graph_73.png create mode 100644 inherit_graph_74.map create mode 100644 inherit_graph_74.md5 create mode 100644 inherit_graph_74.png create mode 100644 inherit_graph_75.map create mode 100644 inherit_graph_75.md5 create mode 100644 inherit_graph_75.png create mode 100644 inherit_graph_76.map create mode 100644 inherit_graph_76.md5 create mode 100644 inherit_graph_76.png create mode 100644 inherit_graph_77.map create mode 100644 inherit_graph_77.md5 create mode 100644 inherit_graph_77.png create mode 100644 inherit_graph_78.map create mode 100644 inherit_graph_78.md5 create mode 100644 inherit_graph_78.png create mode 100644 inherit_graph_79.map create mode 100644 inherit_graph_79.md5 create mode 100644 inherit_graph_79.png create mode 100644 inherit_graph_80.map create mode 100644 inherit_graph_80.md5 create mode 100644 inherit_graph_80.png create mode 100644 inherit_graph_81.map create mode 100644 inherit_graph_81.md5 create mode 100644 inherit_graph_81.png create mode 100644 inherit_graph_82.map create mode 100644 inherit_graph_82.md5 create mode 100644 inherit_graph_82.png create mode 100644 inherit_graph_83.map create mode 100644 inherit_graph_83.md5 create mode 100644 inherit_graph_83.png create mode 100644 inherit_graph_84.map create mode 100644 inherit_graph_84.md5 create mode 100644 inherit_graph_84.png create mode 100644 observer_8hpp_source.html create mode 100644 policy_8hpp_source.html delete mode 100644 prototype_8hpp_source.html rename search/{classes_e.html => all_15.html} (94%) create mode 100644 search/all_15.js delete mode 100644 search/classes_e.js delete mode 100644 search/related_6.html delete mode 100644 search/related_6.js create mode 100644 structentt_1_1as__alias__t.html create mode 100644 structentt_1_1as__is__t.html create mode 100644 structentt_1_1as__void__t.html create mode 100644 structentt_1_1basic__collector.html create 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_01matcher_3_01type__list_3_01Reject_8_8_8_01_4_00_0f5f4fb3c1586eeb5723872d0d0e4f427.html create mode 100644 structentt_1_1basic__collector_3_4-members.html create mode 100644 structentt_1_1basic__collector_3_4.html rename structentt_1_1get__t-members.html => structentt_1_1identity-members.html (83%) create mode 100644 structentt_1_1identity.html create mode 100644 structentt_1_1matcher.html create mode 100644 structentt_1_1meta__handle-members.html rename classentt_1_1meta__handle.html => structentt_1_1meta__handle.html (68%) rename structentt_1_1exclude__t-members.html => structentt_1_1radix__sort-members.html (81%) create mode 100644 structentt_1_1radix__sort.html create mode 100644 structentt_1_1scoped__connection-members.html create mode 100644 structentt_1_1scoped__connection.html create mode 100644 structentt_1_1scoped__connection__coll__graph.map create mode 100644 structentt_1_1scoped__connection__coll__graph.md5 create mode 100644 structentt_1_1scoped__connection__coll__graph.png create mode 100644 structentt_1_1scoped__connection__inherit__graph.map create mode 100644 structentt_1_1scoped__connection__inherit__graph.md5 create mode 100644 structentt_1_1scoped__connection__inherit__graph.png delete mode 100644 structentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4-members.html delete mode 100644 structentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4.html delete mode 100644 structentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4__coll__graph.map delete mode 100644 structentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4__coll__graph.md5 delete mode 100644 structentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4__coll__graph.png delete mode 100644 structentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4__inherit__graph.map delete mode 100644 structentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4__inherit__graph.md5 delete mode 100644 structentt_1_1sigh_3_01Ret_07Args_8_8_8_08_00_01Collector_01_4__inherit__graph.png rename structentt_1_1type__list-members.html => structentt_1_1type__list__cat_3_4-members.html (84%) create mode 100644 structentt_1_1type__list__cat_3_4.html create mode 100644 structentt_1_1type__list__size.html create mode 100644 structentt_1_1type__list__size_3_01type__list_3_01Type_8_8_8_01_4_01_4.html create mode 100644 structentt_1_1type__list__size_3_01type__list_3_01Type_8_8_8_01_4_01_4__coll__graph.map create mode 100644 structentt_1_1type__list__size_3_01type__list_3_01Type_8_8_8_01_4_01_4__coll__graph.md5 create mode 100644 structentt_1_1type__list__size_3_01type__list_3_01Type_8_8_8_01_4_01_4__coll__graph.png create mode 100644 structentt_1_1type__list__size_3_01type__list_3_01Type_8_8_8_01_4_01_4__inherit__graph.map create mode 100644 structentt_1_1type__list__size_3_01type__list_3_01Type_8_8_8_01_4_01_4__inherit__graph.md5 create mode 100644 structentt_1_1type__list__size_3_01type__list_3_01Type_8_8_8_01_4_01_4__inherit__graph.png delete mode 100644 utility_8hpp_source.html diff --git a/CONTRIBUTING_8md_source.html b/CONTRIBUTING_8md_source.html deleted file mode 100644 index ab2a40f4b..000000000 --- a/CONTRIBUTING_8md_source.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - -EnTT: docs/md/CONTRIBUTING.md Source File - - - - - - - - - -
-
- - - - - - -
-
EnTT -  3.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
docs/md/CONTRIBUTING.md
-
-
-
1 # Contributing
2 
3 First of all, thank you very much for taking the time to contribute to the
4 `EnTT` framework.<br/>
5 How to do it mostly depends on the type of contribution:
6 
7 * If you have a question, **please** ensure there isn't already an answer for
8  you by searching on GitHub under
9  [issues](https://github.com/skypjack/entt/issues). Do not forget to search
10  also through the closed ones. If you are unable to find a proper answer, feel
11  free to [open a new issue](https://github.com/skypjack/entt/issues/new).
12  Usually, questions are marked as such and closed in a few days.
13 
14 * If you want to fix a typo in the inline documentation or in the README file,
15  if you want to add some new sections or if you want to help me with the
16  language by reviewing what I wrote so far (I'm not a native speaker after
17  all), **please** open a new
18  [pull request](https://github.com/skypjack/entt/pulls) with your changes.
19 
20 * If you found a bug, **please** ensure there isn't already an answer for you by
21  searching on GitHub under [issues](https://github.com/skypjack/entt/issues).
22  If you are unable to find an open issue addressing the problem, feel free to
23  [open a new one](https://github.com/skypjack/entt/issues/new). **Please**, do
24  not forget to carefully describe how to reproduce the problem, then add all
25  the information about the system on which you are experiencing it and point
26  out the version of `EnTT` you are using (tag or commit).
27 
28 * If you found a bug and you wrote a patch to fix it, open a new
29  [pull request](https://github.com/skypjack/entt/pulls) with your code.
30  **Please**, add some tests to avoid regressions in future if possible, it
31  would be really appreciated. Note that the `EnTT` framework has a
32  [coverage at 100%](https://coveralls.io/github/skypjack/entt?branch=master)
33  (at least it was at 100% at the time I wrote this file) and this is the reason
34  for which you can be confident with using it in a production environment.
35 
36 * If you want to propose a new feature and you know how to code it, **please**
37  do not issue directly a pull request. Before to do it,
38  [create a new issue](https://github.com/skypjack/entt/issues/new) to discuss
39  your proposal. Other users could be interested in your idea and the discussion
40  that will follow can refine it and therefore give us a better solution.
41 
42 * If you want to request a new feature, I'm available for hiring. Take a look at
43  [my profile](https://github.com/skypjack) and feel free to write me.
- - - - diff --git a/README_8md_source.html b/README_8md_source.html index afaccb89f..2234a5e60 100644 --- a/README_8md_source.html +++ b/README_8md_source.html @@ -22,7 +22,7 @@
EnTT -  3.0.0 +  3.1.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, the
19 [**ArcGIS Runtime SDKs**](https://developers.arcgis.com/arcgis-runtime/) by Esri
20 and [**The Forge**](https://github.com/ConfettiFX/The-Forge) by Confetti. Read
21 on to find out what it can offer you.
22 
23 ---
24 
25 Do you want to **keep up with changes** or do you have a **question** that
26 doesn't require you to open an issue?<br/>
27 Join the [gitter channel](https://gitter.im/skypjack/entt) and meet other users
28 like you. The more we are, the better for everyone.
29 
30 If you use `EnTT` and you want to say thanks or support the project, please
31 **consider becoming a patron**:
32 
33 [![Patreon](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/bePatron?c=1772573)
34 
35 # Table of Contents
36 
37 * [Introduction](#introduction)
38  * [Code Example](#code-example)
39  * [Motivation](#motivation)
40  * [Performance](#performance)
41 * [Build Instructions](#build-instructions)
42  * [Requirements](#requirements)
43  * [Library](#library)
44  * [Documentation](#documentation)
45  * [Tests](#tests)
46 * [Packaging Tools](#packaging-tools)
47 * [EnTT in Action](#entt-in-action)
48 * [Contributors](#contributors)
49 * [License](#license)
50 * [Support](#support)
51  * [Patreon](#patreon)
52  * [Donation](#donation)
53  * [Hire me](#hire-me)
54 <!--
55 @endcond TURN_OFF_DOXYGEN
56 -->
57 
58 # Introduction
59 
60 The entity-component-system (also known as _ECS_) is an architectural pattern
61 used mostly in game development. For further details:
62 
63 * [Entity Systems Wiki](http://entity-systems.wikidot.com/)
64 * [Evolve Your Hierarchy](http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/)
65 * [ECS on Wikipedia](https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system)
66 
67 This project started off as a pure entity-component system. Over time the
68 codebase has grown as more and more classes and functionalities were added.<br/>
69 Here is a brief, yet incomplete list of what it offers today:
70 
71 * Statically generated integer **identifiers for types** (assigned either at
72  compile-time or at runtime).
73 * A `constexpr` utility for **human readable resource identifiers**.
74 * A minimal **configuration system** built using the monostate pattern.
75 * An incredibly fast **entity-component system** based on sparse sets, with its
76  own _pay for what you use_ policy to adjust performance and memory usage
77  according to the users' requirements.
78 * Views and groups to iterate entities and components and allow different access
79  patterns, from **perfect SoA** to fully random.
80 * A lot of **facilities** built on top of the entity-component system to support
81  the users and avoid reinventing the wheel (dependencies, snapshot, actor class
82  for those who aren't confident with the architecture and so on).
83 * The smallest and most basic implementation of a **service locator** ever seen.
84 * A built-in, non-intrusive and macro-free **runtime reflection system**.
85 * A **cooperative scheduler** for processes of any type.
86 * All that is needed for **resource management** (cache, loaders, handles).
87 * **Delegates**, **signal handlers** (with built-in support for collectors) and
88  a tiny **event dispatcher** for immediate and delayed events to integrate in
89  loops.
90 * A general purpose **event emitter** as a CRTP idiom based class template.
91 * And **much more**! Check out the
92  [**wiki**](https://github.com/skypjack/entt/wiki).
93 
94 Consider this list a work in progress as well as the project. The whole API is
95 fully documented in-code for those who are brave enough to read it.
96 
97 Currently, `EnTT` is tested on Linux, Microsoft Windows and OSX. It has proven
98 to work also on both Android and iOS.<br/>
99 Most likely it won't be problematic on other systems as well, but it hasn't been
100 sufficiently tested so far.
101 
102 ## Code Example
103 
104 ```cpp
105 #include <entt/entt.hpp>
106 #include <cstdint>
107 
108 struct position {
109  float x;
110  float y;
111 };
112 
113 struct velocity {
114  float dx;
115  float dy;
116 };
117 
118 void update(entt::registry &registry) {
119  auto view = registry.view<position, velocity>();
120 
121  for(auto entity: view) {
122  // gets only the components that are going to be used ...
123 
124  auto &vel = view.get<velocity>(entity);
125 
126  vel.dx = 0.;
127  vel.dy = 0.;
128 
129  // ...
130  }
131 }
132 
133 void update(std::uint64_t dt, entt::registry &registry) {
134  registry.view<position, velocity>().each([dt](auto &pos, auto &vel) {
135  // gets all the components of the view at once ...
136 
137  pos.x += vel.dx * dt;
138  pos.y += vel.dy * dt;
139 
140  // ...
141  });
142 }
143 
144 int main() {
145  entt::registry registry;
146  std::uint64_t dt = 16;
147 
148  for(auto i = 0; i < 10; ++i) {
149  auto entity = registry.create();
150  registry.assign<position>(entity, i * 1.f, i * 1.f);
151  if(i % 2 == 0) { registry.assign<velocity>(entity, i * .1f, i * .1f); }
152  }
153 
154  update(dt, registry);
155  update(registry);
156 
157  // ...
158 }
159 ```
160 
161 ## Motivation
162 
163 I started developing `EnTT` for the _wrong_ reason: my goal was to design an
164 entity-component system to beat another well known open source solution both in
165 terms of performance and possibly memory usage.<br/>
166 In the end, I did it, but it wasn't very satisfying. Actually it wasn't
167 satisfying at all. The fastest and nothing more, fairly little indeed. When I
168 realized it, I tried hard to keep intact the great performance of `EnTT` and to
169 add all the features I wanted to see in *my own library* at the same time.
170 
171 Nowadays, `EnTT` is finally what I was looking for: still faster than its
172 _competitors_, lower memory usage in the average case, a really good API and an
173 amazing set of features. And even more, of course.
174 
175 ## Performance
176 
177 As it stands right now, `EnTT` is just fast enough for my requirements when
178 compared to my first choice (it was already amazingly fast actually).<br/>
179 Below is a comparison between the two (both of them compiled with GCC 7.3.0 on a
180 Dell XPS 13 from mid 2014):
181 
182 | Benchmark | EntityX (compile-time) | EnTT |
183 |-----------|-------------|-------------|
184 | Create 1M entities | 0.0147s | **0.0046s** |
185 | Destroy 1M entities | 0.0053s | **0.0045s** |
186 | 1M entities, one component | 0.0012s | **1.9e-07s** |
187 | 1M entities, two components | 0.0012s | **3.8e-07s** |
188 | 1M entities, two components<br/>Half of the entities have all the components | 0.0009s | **3.8e-07s** |
189 | 1M entities, two components<br/>One of the entities has all the components | 0.0008s | **1.0e-06s** |
190 | 1M entities, five components | 0.0010s | **7.0e-07s** |
191 | 1M entities, ten components | 0.0011s | **1.2e-06s** |
192 | 1M entities, ten components<br/>Half of the entities have all the components | 0.0010s | **1.2e-06s** |
193 | 1M entities, ten components<br/>One of the entities has all the components | 0.0008s | **1.2e-06s** |
194 | Sort 150k entities, one component<br/>Arrays are in reverse order | - | **0.0036s** |
195 | Sort 150k entities, enforce permutation<br/>Arrays are in reverse order | - | **0.0005s** |
196 | Sort 150k entities, one component<br/>Arrays are almost sorted, std::sort | - | **0.0035s** |
197 | Sort 150k entities, one component<br/>Arrays are almost sorted, insertion sort | - | **0.0007s** |
198 
199 Note: The default version of `EntityX` (`master` branch) wasn't added to the
200 comparison because it's already much slower than its compile-time counterpart.
201 
202 Pretty interesting results, aren't them? In fact, these benchmarks are the ones
203 used by `EntityX` to show _how fast it is_. To be honest, they aren't so good
204 and these results shouldn't be taken too seriously (indeed they are completely
205 unrealistic).<br/>
206 The proposed entity-component system is incredibly fast to iterate entities,
207 this is a fact. The compiler can make a lot of optimizations because of how
208 `EnTT` works, even more when components aren't used at all. This is exactly the
209 case for these benchmarks. On the other hand, if we consider real world cases,
210 `EnTT` is somewhere between a bit and much faster than the other solutions
211 around when users also access the components and not just the entities, although
212 it isn't as fast as reported by these benchmarks.<br/>
213 This is why they are completely wrong and cannot be used to evaluate any of the
214 entity-component-system libraries out there.
215 
216 The choice to use `EnTT` should be based on its carefully designed API, its
217 set of features and the general performance, not because some single benchmark
218 shows it to be the fastest tool available.
219 
220 In the future I'll likely try to get even better performance while still adding
221 new features, mainly for fun.<br/>
222 If you want to contribute and/or have suggestions, feel free to make a PR or
223 open an issue to discuss your idea.
224 
225 # Build Instructions
226 
227 ## Requirements
228 
229 To be able to use `EnTT`, users must provide a full-featured compiler that
230 supports at least C++17.<br/>
231 The requirements below are mandatory to compile the tests and to extract the
232 documentation:
233 
234 * CMake version 3.2 or later.
235 * Doxygen version 1.8 or later.
236 
237 If you are looking for a C++14 version of `EnTT`, check out the git tag `cpp14`.
238 
239 ## Library
240 
241 `EnTT` is a header-only library. This means that including the `entt.hpp` header
242 is enough to include the library as a whole and use it. For those who are
243 interested only in the entity-component system, consider to include the sole
244 `entity/registry.hpp` header instead.<br/>
245 It's a matter of adding the following line to the top of a file:
246 
247 ```cpp
248 #include <entt/entt.hpp>
249 ```
250 
251 Use the line below to include only the entity-component system instead:
252 
253 ```cpp
254 #include <entt/entity/registry.hpp>
255 ```
256 
257 Then pass the proper `-I` argument to the compiler to add the `src` directory to
258 the include paths.
259 
260 ## Documentation
261 
262 The documentation is based on [doxygen](http://www.doxygen.nl/).
263 To build it:
264 
265  $ cd build
266  $ cmake .. -DBUILD_DOCS=ON
267  $ make
268 
269 The API reference will be created in HTML format within the directory
270 `build/docs/html`. To navigate it with your favorite browser:
271 
272  $ cd build
273  $ your_favorite_browser docs/html/index.html
274 
275 <!--
276 @cond TURN_OFF_DOXYGEN
277 -->
278 It's also available [online](https://skypjack.github.io/entt/) for the latest
279 version.<br/>
280 Finally, there exists a [wiki](https://github.com/skypjack/entt/wiki) dedicated
281 to the project where users can find all related documentation pages.
282 <!--
283 @endcond TURN_OFF_DOXYGEN
284 -->
285 
286 ## Tests
287 
288 To compile and run the tests, `EnTT` requires *googletest*.<br/>
289 `cmake` will download and compile the library before compiling anything else.
290 In order to build the tests, set the CMake option `BUILD_TESTING` to `ON`.
291 
292 To build the most basic set of tests:
293 
294 * `$ cd build`
295 * `$ cmake -DBUILD_TESTING=ON ..`
296 * `$ make`
297 * `$ make test`
298 
299 Note that benchmarks are not part of this set.
300 
301 # Packaging Tools
302 
303 `EnTT` is available for some of the most known packaging tools. In particular:
304 
305 * [`Conan`](https://bintray.com/skypjack/conan/entt%3Askypjack/_latestVersion),
306  the C/C++ Package Manager for Developers.
307 * [`Homebrew`](https://github.com/skypjack/homebrew-entt), the missing package
308  manager for macOS.<br/>
309  Available as a homebrew formula. Just type the following to install it:
310  ```
311  brew install skypjack/entt/entt
312  ```
313 * [`vcpkg`](https://github.com/Microsoft/vcpkg/tree/master/ports/entt),
314  Microsoft VC++ Packaging Tool.
315 
316 Consider this list a work in progress and help me to make it longer.
317 
318 <!--
319 @cond TURN_OFF_DOXYGEN
320 -->
321 # EnTT in Action
322 
323 `EnTT` is widely used in private and commercial applications. I cannot even
324 mention most of them because of some signatures I put on some documents time
325 ago. Fortunately, there are also people who took the time to implement open
326 source projects based on `EnTT` and did not hold back when it came to
327 documenting them.
328 
329 [Here](https://github.com/skypjack/entt/wiki/EnTT-in-Action) you can find an
330 incomplete list of games, applications and articles that can be used as a
331 reference.
332 
333 If you know of other resources out there that are about `EnTT`, feel free to
334 open an issue or a PR and I'll be glad to add them to the list.
335 
336 # Contributors
337 
338 `EnTT` was written initially as a faster alternative to other well known and
339 open source entity-component systems. Nowadays this library is moving its first
340 steps. Much more will come in the future and hopefully I'm going to work on it
341 for a long time.<br/>
342 Requests for features, PR, suggestions ad feedback are highly appreciated.
343 
344 If you find you can help me and want to contribute to the project with your
345 experience or you do want to get part of the project for some other reasons,
346 feel free to contact me directly (you can find the mail in the
347 [profile](https://github.com/skypjack)).<br/>
348 I can't promise that each and every contribution will be accepted, but I can
349 assure that I'll do my best to take them all seriously.
350 
351 If you decide to participate, please see the guidelines for
352 [contributing](docs/md/CONTRIBUTING.md) before to create issues or pull
353 requests.<br/>
354 Take also a look at the
355 [contributors list](https://github.com/skypjack/entt/blob/master/AUTHORS) to
356 know who has participated so far.
357 <!--
358 @endcond TURN_OFF_DOXYGEN
359 -->
360 
361 # License
362 
363 Code and documentation Copyright (c) 2017-2019 Michele Caini.<br/>
364 Logo Copyright (c) 2018-2019 Richard Caseres.
365 
366 Code released under
367 [the MIT license](https://github.com/skypjack/entt/blob/master/LICENSE).
368 Documentation released under
369 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).<br/>
370 Logo released under
371 [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
372 
373 <!--
374 @cond TURN_OFF_DOXYGEN
375 -->
376 # Support
377 
378 ## Patreon
379 
380 Become a [patron](https://www.patreon.com/bePatron?c=1772573) and get access to
381 extra content, help me spend more time on the projects you love and create new
382 ones for you. Your support will help me to continue the work done so far and
383 make it more professional and feature-rich every day.<br/>
384 It takes very little to
385 [become a patron](https://www.patreon.com/bePatron?c=1772573) and thus help the
386 software you use every day. Don't miss the chance.
387 
388 ## Donation
389 
390 Developing and maintaining `EnTT` takes some time and lots of coffee. I'd like
391 to add more and more functionalities in future and turn it in a full-featured
392 solution.<br/>
393 If you want to support this project, you can offer me an espresso. I'm from
394 Italy, we're used to turning the best coffee ever in code. If you find that
395 it's not enough, feel free to support me the way you prefer.<br/>
396 Take a look at the donation button at the top of the page for more details or
397 just click [here](https://www.paypal.me/skypjack).
398 
399 ## Hire me
400 
401 If you start using `EnTT` and need help, if you want a new feature and want me
402 to give it the highest priority, if you have any other reason to contact me:
403 do not hesitate. I'm available for hiring.<br/>
404 Feel free to take a look at my [profile](https://github.com/skypjack) and
405 contact me by mail.
406 <!--
407 @endcond TURN_OFF_DOXYGEN
408 -->
+
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 -->