502 lines
29 KiB
HTML
502 lines
29 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||
<title>Khaotic Engine Reborn: ecs::Entity Class Reference</title>
|
||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="jquery.js"></script>
|
||
<script type="text/javascript" src="dynsections.js"></script>
|
||
<script type="text/javascript" src="clipboard.js"></script>
|
||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="navtreedata.js"></script>
|
||
<script type="text/javascript" src="navtree.js"></script>
|
||
<script type="text/javascript" src="resize.js"></script>
|
||
<script type="text/javascript" src="cookie.js"></script>
|
||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||
<script type="text/javascript" src="search/search.js"></script>
|
||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||
</head>
|
||
<body>
|
||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||
<div id="titlearea">
|
||
<table cellspacing="0" cellpadding="0">
|
||
<tbody>
|
||
<tr id="projectrow">
|
||
<td id="projectalign">
|
||
<div id="projectname">Khaotic Engine Reborn
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<!-- end header part -->
|
||
<!-- Generated by Doxygen 1.12.0 -->
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||
/* @license-end */
|
||
</script>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(function() { codefold.init(0); });
|
||
/* @license-end */
|
||
</script>
|
||
<script type="text/javascript" src="menudata.js"></script>
|
||
<script type="text/javascript" src="menu.js"></script>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(function() {
|
||
initMenu('',true,false,'search.php','Search',true);
|
||
$(function() { init_search(); });
|
||
});
|
||
/* @license-end */
|
||
</script>
|
||
<div id="main-nav"></div>
|
||
</div><!-- top -->
|
||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||
<div id="nav-tree">
|
||
<div id="nav-tree-contents">
|
||
<div id="nav-sync" class="sync"></div>
|
||
</div>
|
||
</div>
|
||
<div id="splitbar" style="-moz-user-select:none;"
|
||
class="ui-resizable-handle">
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(function(){initNavTree('classecs_1_1_entity.html',''); initResizable(true); });
|
||
/* @license-end */
|
||
</script>
|
||
<div id="doc-content">
|
||
<!-- window showing the filter options -->
|
||
<div id="MSearchSelectWindow"
|
||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||
</div>
|
||
|
||
<!-- iframe showing the search results (closed by default) -->
|
||
<div id="MSearchResultsWindow">
|
||
<div id="MSearchResults">
|
||
<div class="SRPage">
|
||
<div id="SRIndex">
|
||
<div id="SRResults"></div>
|
||
<div class="SRStatus" id="Loading">Loading...</div>
|
||
<div class="SRStatus" id="Searching">Searching...</div>
|
||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="header">
|
||
<div class="summary">
|
||
<a href="#pub-methods">Public Member Functions</a> |
|
||
<a href="classecs_1_1_entity-members.html">List of all members</a> </div>
|
||
<div class="headertitle"><div class="title">ecs::Entity Class Reference</div></div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
||
Public Member Functions</h2></td></tr>
|
||
<tr class="memitem:aa505e8d9a076bd37b83e319c33a8fb3e" id="r_aa505e8d9a076bd37b83e319c33a8fb3e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#aa505e8d9a076bd37b83e319c33a8fb3e">Entity</a> (<a class="el" href="namespaceecs.html#af256e267ca18f2601f8e804fd95e9358">EntityID</a> id)</td></tr>
|
||
<tr class="separator:aa505e8d9a076bd37b83e319c33a8fb3e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a1cace49b2034c62e076d8e5354a1e15f" id="r_a1cace49b2034c62e076d8e5354a1e15f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1cace49b2034c62e076d8e5354a1e15f">Entity</a> (const <a class="el" href="classecs_1_1_entity.html">Entity</a> &)=delete</td></tr>
|
||
<tr class="separator:a1cace49b2034c62e076d8e5354a1e15f"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5bd59cabe7c8c51043b00b356c1984e4" id="r_a5bd59cabe7c8c51043b00b356c1984e4"><td class="memItemLeft" align="right" valign="top"><a id="a5bd59cabe7c8c51043b00b356c1984e4" name="a5bd59cabe7c8c51043b00b356c1984e4"></a>
|
||
<a class="el" href="classecs_1_1_entity.html">Entity</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classecs_1_1_entity.html">Entity</a> &)=delete</td></tr>
|
||
<tr class="separator:a5bd59cabe7c8c51043b00b356c1984e4"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a318d92a576baeaf8d684fd9ee400ebe8" id="r_a318d92a576baeaf8d684fd9ee400ebe8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a318d92a576baeaf8d684fd9ee400ebe8">Entity</a> (<a class="el" href="classecs_1_1_entity.html">Entity</a> &&)=default</td></tr>
|
||
<tr class="separator:a318d92a576baeaf8d684fd9ee400ebe8"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a48a1caf075057339ecf0d3637e942875" id="r_a48a1caf075057339ecf0d3637e942875"><td class="memItemLeft" align="right" valign="top"><a id="a48a1caf075057339ecf0d3637e942875" name="a48a1caf075057339ecf0d3637e942875"></a>
|
||
<a class="el" href="classecs_1_1_entity.html">Entity</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classecs_1_1_entity.html">Entity</a> &&)=default</td></tr>
|
||
<tr class="separator:a48a1caf075057339ecf0d3637e942875"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a9fab84a0393816b3a911588fc1f7121a" id="r_a9fab84a0393816b3a911588fc1f7121a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceecs.html#af256e267ca18f2601f8e804fd95e9358">EntityID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9fab84a0393816b3a911588fc1f7121a">GetID</a> () const</td></tr>
|
||
<tr class="separator:a9fab84a0393816b3a911588fc1f7121a"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a240b05cecbe32a6222082f3b4a789a98" id="r_a240b05cecbe32a6222082f3b4a789a98"><td class="memTemplParams" colspan="2">template<typename T , typename... Args> </td></tr>
|
||
<tr class="memitem:a240b05cecbe32a6222082f3b4a789a98"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a240b05cecbe32a6222082f3b4a789a98">AddComponent</a> (Args &&... args)</td></tr>
|
||
<tr class="separator:a240b05cecbe32a6222082f3b4a789a98"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a1debe96608ed65b741812a9340c52220" id="r_a1debe96608ed65b741812a9340c52220"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||
<tr class="memitem:a1debe96608ed65b741812a9340c52220"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a1debe96608ed65b741812a9340c52220">GetComponent</a> ()</td></tr>
|
||
<tr class="separator:a1debe96608ed65b741812a9340c52220"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a29deb83cc77c7c2466d0f76f7b340869" id="r_a29deb83cc77c7c2466d0f76f7b340869"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||
<tr class="memitem:a29deb83cc77c7c2466d0f76f7b340869"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a29deb83cc77c7c2466d0f76f7b340869">HasComponent</a> () const</td></tr>
|
||
<tr class="separator:a29deb83cc77c7c2466d0f76f7b340869"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a87fe0ec023ff9df7bcfff0eb13a90bb7" id="r_a87fe0ec023ff9df7bcfff0eb13a90bb7"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||
<tr class="memitem:a87fe0ec023ff9df7bcfff0eb13a90bb7"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a87fe0ec023ff9df7bcfff0eb13a90bb7">RemoveComponent</a> ()</td></tr>
|
||
<tr class="separator:a87fe0ec023ff9df7bcfff0eb13a90bb7"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a239d0855906f8c66371d7d1fa895a11f" id="r_a239d0855906f8c66371d7d1fa895a11f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a239d0855906f8c66371d7d1fa895a11f">UpdateComponents</a> (float deltaTime)</td></tr>
|
||
<tr class="separator:a239d0855906f8c66371d7d1fa895a11f"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table>
|
||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||
<div class="textblock">
|
||
<p class="definition">Definition at line <a class="el" href="entity_8h_source.html#l00015">15</a> of file <a class="el" href="entity_8h_source.html">entity.h</a>.</p>
|
||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||
<a id="aa505e8d9a076bd37b83e319c33a8fb3e" name="aa505e8d9a076bd37b83e319c33a8fb3e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aa505e8d9a076bd37b83e319c33a8fb3e">◆ </a></span>Entity() <span class="overload">[1/3]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">ecs::Entity::Entity </td>
|
||
<td>(</td>
|
||
<td class="paramtype"><a class="el" href="namespaceecs.html#af256e267ca18f2601f8e804fd95e9358">EntityID</a></td> <td class="paramname"><span class="paramname"><em>id</em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Builder for an <a class="el" href="classecs_1_1_entity.html">Entity</a> with a unique ID. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="entity_8h_source.html#l00020">20</a> of file <a class="el" href="entity_8h_source.html">entity.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 20</span>: m_ID(<span class="keywordtype">id</span>) {}</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a1cace49b2034c62e076d8e5354a1e15f" name="a1cace49b2034c62e076d8e5354a1e15f"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a1cace49b2034c62e076d8e5354a1e15f">◆ </a></span>Entity() <span class="overload">[2/3]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">ecs::Entity::Entity </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classecs_1_1_entity.html">Entity</a> &</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>No copy constructor or assignment operator to prevent copying. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a318d92a576baeaf8d684fd9ee400ebe8" name="a318d92a576baeaf8d684fd9ee400ebe8"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a318d92a576baeaf8d684fd9ee400ebe8">◆ </a></span>Entity() <span class="overload">[3/3]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">ecs::Entity::Entity </td>
|
||
<td>(</td>
|
||
<td class="paramtype"><a class="el" href="classecs_1_1_entity.html">Entity</a> &&</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">default</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Move constructor and assignment operator to allow moving entities. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Member Function Documentation</h2>
|
||
<a id="a240b05cecbe32a6222082f3b4a789a98" name="a240b05cecbe32a6222082f3b4a789a98"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a240b05cecbe32a6222082f3b4a789a98">◆ </a></span>AddComponent()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename T , typename... Args> </div>
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::shared_ptr< T > ecs::Entity::AddComponent </td>
|
||
<td>(</td>
|
||
<td class="paramtype">Args &&...</td> <td class="paramname"><span class="paramname"><em>args</em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Add a component of type T to the entity. If the component already exists, it returns the existing component. </p><dl class="tparams"><dt>Template Parameters</dt><dd>
|
||
<table class="tparams">
|
||
<tr><td class="paramname">T</td><td></td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">args</td><td>Arguments to construct the component. </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to the added or existing component. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="entity_8h_source.html#l00049">49</a> of file <a class="el" href="entity_8h_source.html">entity.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 49</span> {</div>
|
||
<div class="line"><span class="lineno"> 50</span> <span class="keyword">static_assert</span>(std::is_base_of<Component, T>::value, <span class="stringliteral">"T must derive from Component"</span>);</div>
|
||
<div class="line"><span class="lineno"> 51</span> </div>
|
||
<div class="line"><span class="lineno"> 52</span> <a class="code hl_typedef" href="namespaceecs.html#a94d754c47297d56ce57eb14784809efc">ComponentTypeID</a> typeID = <a class="code hl_function" href="namespaceecs.html#ae98a9f77225416bebd93a559a68a92eb">GetComponentTypeID<T></a>();</div>
|
||
<div class="line"><span class="lineno"> 53</span> </div>
|
||
<div class="line"><span class="lineno"> 54</span> <span class="comment">// V<>rifier si le composant existe d<>j<EFBFBD></span></div>
|
||
<div class="line"><span class="lineno"> 55</span> <span class="keywordflow">if</span> (m_Components.find(typeID) != m_Components.end()) {</div>
|
||
<div class="line"><span class="lineno"> 56</span> <span class="keywordflow">return</span> std::static_pointer_cast<T>(m_Components[typeID]);</div>
|
||
<div class="line"><span class="lineno"> 57</span> }</div>
|
||
<div class="line"><span class="lineno"> 58</span> </div>
|
||
<div class="line"><span class="lineno"> 59</span> <span class="comment">// Cr<43>er et ajouter le composant</span></div>
|
||
<div class="line"><span class="lineno"> 60</span> <span class="keyword">auto</span> component = std::make_shared<T>(std::forward<Args>(args)...);</div>
|
||
<div class="line"><span class="lineno"> 61</span> m_Components[typeID] = component;</div>
|
||
<div class="line"><span class="lineno"> 62</span> </div>
|
||
<div class="line"><span class="lineno"> 63</span> <span class="comment">// Initialiser le composant</span></div>
|
||
<div class="line"><span class="lineno"> 64</span> component->Initialize();</div>
|
||
<div class="line"><span class="lineno"> 65</span> </div>
|
||
<div class="line"><span class="lineno"> 66</span> <span class="keywordflow">return</span> component;</div>
|
||
<div class="line"><span class="lineno"> 67</span> }</div>
|
||
<div class="ttc" id="anamespaceecs_html_a94d754c47297d56ce57eb14784809efc"><div class="ttname"><a href="namespaceecs.html#a94d754c47297d56ce57eb14784809efc">ecs::ComponentTypeID</a></div><div class="ttdeci">std::type_index ComponentTypeID</div><div class="ttdef"><b>Definition</b> <a href="component_8h_source.html#l00048">component.h:48</a></div></div>
|
||
<div class="ttc" id="anamespaceecs_html_ae98a9f77225416bebd93a559a68a92eb"><div class="ttname"><a href="namespaceecs.html#ae98a9f77225416bebd93a559a68a92eb">ecs::GetComponentTypeID</a></div><div class="ttdeci">ComponentTypeID GetComponentTypeID()</div><div class="ttdef"><b>Definition</b> <a href="component_8h_source.html#l00054">component.h:54</a></div></div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a1debe96608ed65b741812a9340c52220" name="a1debe96608ed65b741812a9340c52220"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a1debe96608ed65b741812a9340c52220">◆ </a></span>GetComponent()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename T > </div>
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::shared_ptr< T > ecs::Entity::GetComponent </td>
|
||
<td>(</td>
|
||
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Get a component of type T from the entity. </p><dl class="tparams"><dt>Template Parameters</dt><dd>
|
||
<table class="tparams">
|
||
<tr><td class="paramname">T</td><td></td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to the component if it exists, nullptr otherwise. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="entity_8h_source.html#l00075">75</a> of file <a class="el" href="entity_8h_source.html">entity.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 75</span> {</div>
|
||
<div class="line"><span class="lineno"> 76</span> <span class="keyword">static_assert</span>(std::is_base_of<Component, T>::value, <span class="stringliteral">"T must derive from Component"</span>);</div>
|
||
<div class="line"><span class="lineno"> 77</span> </div>
|
||
<div class="line"><span class="lineno"> 78</span> <a class="code hl_typedef" href="namespaceecs.html#a94d754c47297d56ce57eb14784809efc">ComponentTypeID</a> typeID = <a class="code hl_function" href="namespaceecs.html#ae98a9f77225416bebd93a559a68a92eb">GetComponentTypeID<T></a>();</div>
|
||
<div class="line"><span class="lineno"> 79</span> </div>
|
||
<div class="line"><span class="lineno"> 80</span> <span class="keyword">auto</span> it = m_Components.find(typeID);</div>
|
||
<div class="line"><span class="lineno"> 81</span> <span class="keywordflow">if</span> (it != m_Components.end()) {</div>
|
||
<div class="line"><span class="lineno"> 82</span> <span class="keywordflow">return</span> std::static_pointer_cast<T>(it->second);</div>
|
||
<div class="line"><span class="lineno"> 83</span> }</div>
|
||
<div class="line"><span class="lineno"> 84</span> </div>
|
||
<div class="line"><span class="lineno"> 85</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
||
<div class="line"><span class="lineno"> 86</span> }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a9fab84a0393816b3a911588fc1f7121a" name="a9fab84a0393816b3a911588fc1f7121a"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a9fab84a0393816b3a911588fc1f7121a">◆ </a></span>GetID()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="namespaceecs.html#af256e267ca18f2601f8e804fd95e9358">EntityID</a> ecs::Entity::GetID </td>
|
||
<td>(</td>
|
||
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Get the unique identifier for the entity. </p><dl class="section return"><dt>Returns</dt><dd>The unique ID of the entity. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="entity_8h_source.html#l00039">39</a> of file <a class="el" href="entity_8h_source.html">entity.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 39</span>{ <span class="keywordflow">return</span> m_ID; }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a29deb83cc77c7c2466d0f76f7b340869" name="a29deb83cc77c7c2466d0f76f7b340869"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a29deb83cc77c7c2466d0f76f7b340869">◆ </a></span>HasComponent()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename T > </div>
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool ecs::Entity::HasComponent </td>
|
||
<td>(</td>
|
||
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Check if the entity has a component of type T. </p><dl class="tparams"><dt>Template Parameters</dt><dd>
|
||
<table class="tparams">
|
||
<tr><td class="paramname">T</td><td></td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>true if the entity has the component, false otherwise. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="entity_8h_source.html#l00094">94</a> of file <a class="el" href="entity_8h_source.html">entity.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 94</span> {</div>
|
||
<div class="line"><span class="lineno"> 95</span> <span class="keyword">static_assert</span>(std::is_base_of<Component, T>::value, <span class="stringliteral">"T must derive from Component"</span>);</div>
|
||
<div class="line"><span class="lineno"> 96</span> </div>
|
||
<div class="line"><span class="lineno"> 97</span> <a class="code hl_typedef" href="namespaceecs.html#a94d754c47297d56ce57eb14784809efc">ComponentTypeID</a> typeID = <a class="code hl_function" href="namespaceecs.html#ae98a9f77225416bebd93a559a68a92eb">GetComponentTypeID<T></a>();</div>
|
||
<div class="line"><span class="lineno"> 98</span> <span class="keywordflow">return</span> m_Components.find(typeID) != m_Components.end();</div>
|
||
<div class="line"><span class="lineno"> 99</span> }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a87fe0ec023ff9df7bcfff0eb13a90bb7" name="a87fe0ec023ff9df7bcfff0eb13a90bb7"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a87fe0ec023ff9df7bcfff0eb13a90bb7">◆ </a></span>RemoveComponent()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename T > </div>
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void ecs::Entity::RemoveComponent </td>
|
||
<td>(</td>
|
||
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Remove a component of type T from the entity. </p><dl class="tparams"><dt>Template Parameters</dt><dd>
|
||
<table class="tparams">
|
||
<tr><td class="paramname">T</td><td></td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="entity_8h_source.html#l00106">106</a> of file <a class="el" href="entity_8h_source.html">entity.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 106</span> {</div>
|
||
<div class="line"><span class="lineno"> 107</span> <span class="keyword">static_assert</span>(std::is_base_of<Component, T>::value, <span class="stringliteral">"T must derive from Component"</span>);</div>
|
||
<div class="line"><span class="lineno"> 108</span> </div>
|
||
<div class="line"><span class="lineno"> 109</span> <a class="code hl_typedef" href="namespaceecs.html#a94d754c47297d56ce57eb14784809efc">ComponentTypeID</a> typeID = <a class="code hl_function" href="namespaceecs.html#ae98a9f77225416bebd93a559a68a92eb">GetComponentTypeID<T></a>();</div>
|
||
<div class="line"><span class="lineno"> 110</span> <span class="keyword">auto</span> it = m_Components.find(typeID);</div>
|
||
<div class="line"><span class="lineno"> 111</span> </div>
|
||
<div class="line"><span class="lineno"> 112</span> <span class="keywordflow">if</span> (it != m_Components.end()) {</div>
|
||
<div class="line"><span class="lineno"> 113</span> m_Components.erase(it);</div>
|
||
<div class="line"><span class="lineno"> 114</span> }</div>
|
||
<div class="line"><span class="lineno"> 115</span> }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a239d0855906f8c66371d7d1fa895a11f" name="a239d0855906f8c66371d7d1fa895a11f"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a239d0855906f8c66371d7d1fa895a11f">◆ </a></span>UpdateComponents()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void ecs::Entity::UpdateComponents </td>
|
||
<td>(</td>
|
||
<td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>deltaTime</em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Update all components of the entity. </p><dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">deltaTime</td><td></td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="entity_8h_source.html#l00121">121</a> of file <a class="el" href="entity_8h_source.html">entity.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 121</span> {</div>
|
||
<div class="line"><span class="lineno"> 122</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>& [typeID, component] : m_Components) {</div>
|
||
<div class="line"><span class="lineno"> 123</span> component->Update(deltaTime);</div>
|
||
<div class="line"><span class="lineno"> 124</span> }</div>
|
||
<div class="line"><span class="lineno"> 125</span> }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||
<li>enginecustom/src/inc/system/ecs/<a class="el" href="entity_8h_source.html">entity.h</a></li>
|
||
</ul>
|
||
</div><!-- contents -->
|
||
</div><!-- doc-content -->
|
||
<!-- start footer part -->
|
||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||
<ul>
|
||
<li class="navelem"><a class="el" href="namespaceecs.html">ecs</a></li><li class="navelem"><a class="el" href="classecs_1_1_entity.html">Entity</a></li>
|
||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
|
||
</ul>
|
||
</div>
|
||
</body>
|
||
</html>
|