khaotic-engine-Reborn/doxygen_docs/html/classapplication__class.html

3568 lines
310 KiB
HTML
Raw Blame History

<!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: application_class 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&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;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&amp;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&amp;dn=expat.txt MIT */
$(function(){initNavTree('classapplication__class.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> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classapplication__class-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">application_class 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:ab3b678dde613c8568a2124482ed45a73" id="r_ab3b678dde613c8568a2124482ed45a73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab3b678dde613c8568a2124482ed45a73">application_class</a> ()</td></tr>
<tr class="memdesc:ab3b678dde613c8568a2124482ed45a73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the application class. Initializes member variables and sets up the application. <br /></td></tr>
<tr class="separator:ab3b678dde613c8568a2124482ed45a73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefb3a92b91a535798335d29330aaad02" id="r_aefb3a92b91a535798335d29330aaad02"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classd__3d__class.html">d_3d_class</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aefb3a92b91a535798335d29330aaad02">get_direct_3d</a> ()</td></tr>
<tr class="separator:aefb3a92b91a535798335d29330aaad02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae214f8bbf3608116f6152a704043a224" id="r_ae214f8bbf3608116f6152a704043a224"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae214f8bbf3608116f6152a704043a224">set_direct_3d</a> (<a class="el" href="classd__3d__class.html">d_3d_class</a> *direct_3d)</td></tr>
<tr class="separator:ae214f8bbf3608116f6152a704043a224"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69a84a1345d56bb8d81e7d3427ce969e" id="r_a69a84a1345d56bb8d81e7d3427ce969e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender__texture__class.html">render_texture_class</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a69a84a1345d56bb8d81e7d3427ce969e">get_scene_texture</a> () const</td></tr>
<tr class="separator:a69a84a1345d56bb8d81e7d3427ce969e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ec69cb088888911ab1e32490c39f3e6" id="r_a3ec69cb088888911ab1e32490c39f3e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender__texture__class.html">render_texture_class</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3ec69cb088888911ab1e32490c39f3e6">get_render_texture</a> () const</td></tr>
<tr class="separator:a3ec69cb088888911ab1e32490c39f3e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d993ac51d86d09c2b03b612ed914a74" id="r_a8d993ac51d86d09c2b03b612ed914a74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender__texture__class.html">render_texture_class</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8d993ac51d86d09c2b03b612ed914a74">get_refraction_texture</a> () const</td></tr>
<tr class="separator:a8d993ac51d86d09c2b03b612ed914a74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25592af930b0ee6c34d667fc0f8d69e1" id="r_a25592af930b0ee6c34d667fc0f8d69e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender__texture__class.html">render_texture_class</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a25592af930b0ee6c34d667fc0f8d69e1">get_reflection_texture</a> () const</td></tr>
<tr class="separator:a25592af930b0ee6c34d667fc0f8d69e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b0482e4b79a4c3bf32e1f40ccb48678" id="r_a7b0482e4b79a4c3bf32e1f40ccb48678"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7b0482e4b79a4c3bf32e1f40ccb48678">create_big_cube</a> (int side_count)</td></tr>
<tr class="memdesc:a7b0482e4b79a4c3bf32e1f40ccb48678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a big cube with a specified number of little cube per sides. <br /></td></tr>
<tr class="separator:a7b0482e4b79a4c3bf32e1f40ccb48678"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3be4f6532857c72283450ce43907f309" id="r_a3be4f6532857c72283450ce43907f309"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3be4f6532857c72283450ce43907f309">initialize</a> (int screen_width, int screen_height, HWND hwdn, bool is_vulkan)</td></tr>
<tr class="separator:a3be4f6532857c72283450ce43907f309"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2ef20892819f21303002a0f3005e73d" id="r_af2ef20892819f21303002a0f3005e73d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af2ef20892819f21303002a0f3005e73d">shutdown</a> ()</td></tr>
<tr class="separator:af2ef20892819f21303002a0f3005e73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d9b9cbfbe1a2efa52606fcbbdfb40ca" id="r_a0d9b9cbfbe1a2efa52606fcbbdfb40ca"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0d9b9cbfbe1a2efa52606fcbbdfb40ca">frame</a> (<a class="el" href="classinput__class.html">input_class</a> *)</td></tr>
<tr class="memdesc:a0d9b9cbfbe1a2efa52606fcbbdfb40ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run the main loop of the application. This function will handle the main loop, including rendering and updating the application. <br /></td></tr>
<tr class="separator:a0d9b9cbfbe1a2efa52606fcbbdfb40ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa583e172e6a2d45cb9b4841634b9eea4" id="r_aa583e172e6a2d45cb9b4841634b9eea4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa583e172e6a2d45cb9b4841634b9eea4">physics_thread_function</a> ()</td></tr>
<tr class="memdesc:aa583e172e6a2d45cb9b4841634b9eea4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread function for handling physics updates. this function will run in a separate thread to handle physics updates at a fixed rate (50 fps by default). <br /></td></tr>
<tr class="separator:aa583e172e6a2d45cb9b4841634b9eea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a118113b8ab8ad1065b032d57150fa7dd" id="r_a118113b8ab8ad1065b032d57150fa7dd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a118113b8ab8ad1065b032d57150fa7dd">get_physics_tick_rate</a> () const</td></tr>
<tr class="separator:a118113b8ab8ad1065b032d57150fa7dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b03fc0a380762e268606262914e55a8" id="r_a8b03fc0a380762e268606262914e55a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8b03fc0a380762e268606262914e55a8">set_physics_tick_rate</a> (int physics_tick_rate)</td></tr>
<tr class="separator:a8b03fc0a380762e268606262914e55a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4bf8de77c3edaac71aaba75193c3be9" id="r_ae4bf8de77c3edaac71aaba75193c3be9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae4bf8de77c3edaac71aaba75193c3be9">get_screen_width</a> () const</td></tr>
<tr class="separator:ae4bf8de77c3edaac71aaba75193c3be9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca66fefd8c7c473e2700a69f13a4cb6b" id="r_aca66fefd8c7c473e2700a69f13a4cb6b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aca66fefd8c7c473e2700a69f13a4cb6b">set_screen_width</a> (int screen_width)</td></tr>
<tr class="separator:aca66fefd8c7c473e2700a69f13a4cb6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a468b1ed714bae99f4f2fcf7a93407bfb" id="r_a468b1ed714bae99f4f2fcf7a93407bfb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a468b1ed714bae99f4f2fcf7a93407bfb">get_screen_height</a> () const</td></tr>
<tr class="separator:a468b1ed714bae99f4f2fcf7a93407bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5ed92985e95d9f34a152cae2d7345d7" id="r_ae5ed92985e95d9f34a152cae2d7345d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae5ed92985e95d9f34a152cae2d7345d7">set_screen_height</a> (int screen_height)</td></tr>
<tr class="separator:ae5ed92985e95d9f34a152cae2d7345d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad724a8b8867f487bc602406ae20e1301" id="r_ad724a8b8867f487bc602406ae20e1301"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad724a8b8867f487bc602406ae20e1301">get_speed</a> () const</td></tr>
<tr class="separator:ad724a8b8867f487bc602406ae20e1301"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b1a11759ecc6b80542c7f4f3cf4e8e9" id="r_a7b1a11759ecc6b80542c7f4f3cf4e8e9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7b1a11759ecc6b80542c7f4f3cf4e8e9">set_speed</a> (const float speed)</td></tr>
<tr class="separator:a7b1a11759ecc6b80542c7f4f3cf4e8e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa09afdc106fb3f82788c42272811657" id="r_aaa09afdc106fb3f82788c42272811657"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aaa09afdc106fb3f82788c42272811657">add_cube</a> ()</td></tr>
<tr class="separator:aaa09afdc106fb3f82788c42272811657"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ade90e873b7b6a31c148672dd0305cb" id="r_a5ade90e873b7b6a31c148672dd0305cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5ade90e873b7b6a31c148672dd0305cb">delete_entity_by_id</a> (int entity_id)</td></tr>
<tr class="separator:a5ade90e873b7b6a31c148672dd0305cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a39dfe69bca6fe96a339ab47b2f0539" id="r_a9a39dfe69bca6fe96a339ab47b2f0539"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9a39dfe69bca6fe96a339ab47b2f0539">add_kobject</a> (std::wstring &amp;filepath)</td></tr>
<tr class="separator:a9a39dfe69bca6fe96a339ab47b2f0539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ead7c7ba402fb9619000d201c0cf95f" id="r_a4ead7c7ba402fb9619000d201c0cf95f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4ead7c7ba402fb9619000d201c0cf95f">set_path</a> (WCHAR *path)</td></tr>
<tr class="separator:a4ead7c7ba402fb9619000d201c0cf95f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dbf967cc3d2a08b07c13b6aa44fafe1" id="r_a5dbf967cc3d2a08b07c13b6aa44fafe1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5dbf967cc3d2a08b07c13b6aa44fafe1">set_w_folder</a> (const std::filesystem::path &amp;w_folder)</td></tr>
<tr class="separator:a5dbf967cc3d2a08b07c13b6aa44fafe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f6b5156b585944bb912d93fa1595af2" id="r_a2f6b5156b585944bb912d93fa1595af2"><td class="memItemLeft" align="right" valign="top">std::filesystem::path&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f6b5156b585944bb912d93fa1595af2">get_w_folder</a> () const</td></tr>
<tr class="separator:a2f6b5156b585944bb912d93fa1595af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe1ff7bf39935cae054c8f3743e923e1" id="r_afe1ff7bf39935cae054c8f3743e923e1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afe1ff7bf39935cae054c8f3743e923e1">get_terrain_entity_count</a> ()</td></tr>
<tr class="separator:afe1ff7bf39935cae054c8f3743e923e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32624a7be14230d2120de382c2c2e298" id="r_a32624a7be14230d2120de382c2c2e298"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a32624a7be14230d2120de382c2c2e298">get_object_id</a> () const</td></tr>
<tr class="separator:a32624a7be14230d2120de382c2c2e298"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae586e8e9431b6d6168c335a9ae0f08ca" id="r_ae586e8e9431b6d6168c335a9ae0f08ca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae586e8e9431b6d6168c335a9ae0f08ca">set_object_id</a> (int object_id)</td></tr>
<tr class="separator:ae586e8e9431b6d6168c335a9ae0f08ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca20ad22e0c95f5404e3c47a11317025" id="r_aca20ad22e0c95f5404e3c47a11317025"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aca20ad22e0c95f5404e3c47a11317025">generate_terrain</a> ()</td></tr>
<tr class="separator:aca20ad22e0c95f5404e3c47a11317025"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69bce73916e1180493ac74030dbb77ba" id="r_a69bce73916e1180493ac74030dbb77ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a69bce73916e1180493ac74030dbb77ba">delete_terrain</a> ()</td></tr>
<tr class="separator:a69bce73916e1180493ac74030dbb77ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54f4915b1878fde4dc60ff26be5712ee" id="r_a54f4915b1878fde4dc60ff26be5712ee"><td class="memItemLeft" align="right" valign="top">XMVECTOR&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a54f4915b1878fde4dc60ff26be5712ee">get_light_position</a> (int index)</td></tr>
<tr class="separator:a54f4915b1878fde4dc60ff26be5712ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85c04a3f2d050cb750d7986ebc7e76a5" id="r_a85c04a3f2d050cb750d7986ebc7e76a5"><td class="memItemLeft" align="right" valign="top">XMVECTOR&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a85c04a3f2d050cb750d7986ebc7e76a5">get_light_color</a> (int index)</td></tr>
<tr class="separator:a85c04a3f2d050cb750d7986ebc7e76a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1715fe1c06659636399b60e859e6b2ae" id="r_a1715fe1c06659636399b60e859e6b2ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1715fe1c06659636399b60e859e6b2ae">set_light_position</a> (int index, XMVECTOR position)</td></tr>
<tr class="separator:a1715fe1c06659636399b60e859e6b2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79b165193754e7361b0a467f5e70c72b" id="r_a79b165193754e7361b0a467f5e70c72b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a79b165193754e7361b0a467f5e70c72b">set_light_color</a> (int index, XMVECTOR color)</td></tr>
<tr class="separator:a79b165193754e7361b0a467f5e70c72b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b1ca112e8d8fd01a7061d9a638e9f3e" id="r_a9b1ca112e8d8fd01a7061d9a638e9f3e"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classlight__class.html">light_class</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9b1ca112e8d8fd01a7061d9a638e9f3e">get_lights</a> () const</td></tr>
<tr class="separator:a9b1ca112e8d8fd01a7061d9a638e9f3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad757f3dc7ad49b74643fca7947889ed6" id="r_ad757f3dc7ad49b74643fca7947889ed6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlight__class.html">light_class</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad757f3dc7ad49b74643fca7947889ed6">get_sun_light</a> () const</td></tr>
<tr class="separator:ad757f3dc7ad49b74643fca7947889ed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afea1cdf2706dc45cdae0396b7948f2b0" id="r_afea1cdf2706dc45cdae0396b7948f2b0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afea1cdf2706dc45cdae0396b7948f2b0">get_should_quit</a> () const</td></tr>
<tr class="separator:afea1cdf2706dc45cdae0396b7948f2b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96068cd56a5bb2ed0c02db3b70272be2" id="r_a96068cd56a5bb2ed0c02db3b70272be2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a96068cd56a5bb2ed0c02db3b70272be2">set_should_quit</a> (const bool should_quit)</td></tr>
<tr class="separator:a96068cd56a5bb2ed0c02db3b70272be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bdce1b8c5a23cd60dd35c441a670601" id="r_a1bdce1b8c5a23cd60dd35c441a670601"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1bdce1b8c5a23cd60dd35c441a670601">set_cel_shading</a> (const bool enable)</td></tr>
<tr class="separator:a1bdce1b8c5a23cd60dd35c441a670601"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a642858510be15dc3d2890ccc5f6df31f" id="r_a642858510be15dc3d2890ccc5f6df31f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a642858510be15dc3d2890ccc5f6df31f">set_vsync</a> (bool vsync)</td></tr>
<tr class="separator:a642858510be15dc3d2890ccc5f6df31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa79efde57fb87b64bf95b47ee87c3bff" id="r_aa79efde57fb87b64bf95b47ee87c3bff"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa79efde57fb87b64bf95b47ee87c3bff">get_vsync</a> () const</td></tr>
<tr class="separator:aa79efde57fb87b64bf95b47ee87c3bff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a692f521b7d27a89a95848dd912342c1f" id="r_a692f521b7d27a89a95848dd912342c1f"><td class="memItemLeft" align="right" valign="top">HWND&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a692f521b7d27a89a95848dd912342c1f">get_hwnd</a> () const</td></tr>
<tr class="separator:a692f521b7d27a89a95848dd912342c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40392869f0ff57982fef8098dd3354fe" id="r_a40392869f0ff57982fef8098dd3354fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a40392869f0ff57982fef8098dd3354fe">set_hwnd</a> (HWND hwnd)</td></tr>
<tr class="separator:a40392869f0ff57982fef8098dd3354fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac1577a0fe08e8007980b6b1778da478" id="r_aac1577a0fe08e8007980b6b1778da478"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aac1577a0fe08e8007980b6b1778da478">is_windowed</a> () const</td></tr>
<tr class="separator:aac1577a0fe08e8007980b6b1778da478"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7faa4a3a5150086acaec8bc223a4bf7e" id="r_a7faa4a3a5150086acaec8bc223a4bf7e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7faa4a3a5150086acaec8bc223a4bf7e">set_windowed</a> (bool windowed)</td></tr>
<tr class="separator:a7faa4a3a5150086acaec8bc223a4bf7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0418282e11e00cebb3a63747384a24b" id="r_ab0418282e11e00cebb3a63747384a24b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab0418282e11e00cebb3a63747384a24b">set_window_size</a> (const ImVec2 size)</td></tr>
<tr class="separator:ab0418282e11e00cebb3a63747384a24b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c76d728525b1ee4558a41383f9f2217" id="r_a3c76d728525b1ee4558a41383f9f2217"><td class="memItemLeft" align="right" valign="top">ImVec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3c76d728525b1ee4558a41383f9f2217">get_window_size</a> () const</td></tr>
<tr class="separator:a3c76d728525b1ee4558a41383f9f2217"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bbbc70e5a68278f410e9b2b93942230" id="r_a1bbbc70e5a68278f410e9b2b93942230"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1bbbc70e5a68278f410e9b2b93942230">get_aspect_ratio</a> () const</td></tr>
<tr class="separator:a1bbbc70e5a68278f410e9b2b93942230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1924a7177c04594ec5dab7fe4c0104f" id="r_ab1924a7177c04594ec5dab7fe4c0104f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classphysics.html">physics</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab1924a7177c04594ec5dab7fe4c0104f">get_physics</a> () const</td></tr>
<tr class="separator:ab1924a7177c04594ec5dab7fe4c0104f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29f11f9f0ab0f41af7b1b657d9310209" id="r_a29f11f9f0ab0f41af7b1b657d9310209"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classfrustum.html">frustum</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a29f11f9f0ab0f41af7b1b657d9310209">get_frustum</a> () const</td></tr>
<tr class="separator:a29f11f9f0ab0f41af7b1b657d9310209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd47278db9d786b80833c787900c145b" id="r_abd47278db9d786b80833c787900c145b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abd47278db9d786b80833c787900c145b">set_frustum</a> (const <a class="el" href="classfrustum.html">frustum</a> &amp;<a class="el" href="classfrustum.html">frustum</a>)</td></tr>
<tr class="separator:abd47278db9d786b80833c787900c145b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b959a12a5574b263556937f1c94e255" id="r_a7b959a12a5574b263556937f1c94e255"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7b959a12a5574b263556937f1c94e255">construct_frustum</a> ()</td></tr>
<tr class="separator:a7b959a12a5574b263556937f1c94e255"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc0c095b41d72833d974229cc64d0689" id="r_acc0c095b41d72833d974229cc64d0689"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acc0c095b41d72833d974229cc64d0689">get_render_count</a> () const</td></tr>
<tr class="separator:acc0c095b41d72833d974229cc64d0689"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f607939202c0cb805df935eb38dabe7" id="r_a1f607939202c0cb805df935eb38dabe7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1f607939202c0cb805df935eb38dabe7">set_render_count</a> (const int render_count)</td></tr>
<tr class="separator:a1f607939202c0cb805df935eb38dabe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa271ce1d2803a5a1fcd9becad215ecb0" id="r_aa271ce1d2803a5a1fcd9becad215ecb0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa271ce1d2803a5a1fcd9becad215ecb0">get_frustum_tolerance</a> () const</td></tr>
<tr class="separator:aa271ce1d2803a5a1fcd9becad215ecb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f41c2a8f5f18aca2859b02e804c7a1a" id="r_a2f41c2a8f5f18aca2859b02e804c7a1a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f41c2a8f5f18aca2859b02e804c7a1a">set_frustum_tolerance</a> (const float frustum_tolerance)</td></tr>
<tr class="separator:a2f41c2a8f5f18aca2859b02e804c7a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf98d275e281e99e54a68d3b53ba7b94" id="r_abf98d275e281e99e54a68d3b53ba7b94"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abf98d275e281e99e54a68d3b53ba7b94">get_can_fixed_update</a> () const</td></tr>
<tr class="separator:abf98d275e281e99e54a68d3b53ba7b94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0a44059eae0a8df0cb65a7962d598ed" id="r_aa0a44059eae0a8df0cb65a7962d598ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa0a44059eae0a8df0cb65a7962d598ed">set_can_fixed_update</a> (bool can_fixed_update)</td></tr>
<tr class="separator:aa0a44059eae0a8df0cb65a7962d598ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e7b21b1421fd52bb3740fb25f26e4a7" id="r_a0e7b21b1421fd52bb3740fb25f26e4a7"><td class="memItemLeft" align="right" valign="top">ID3D11ShaderResourceView *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0e7b21b1421fd52bb3740fb25f26e4a7">get_back_buffer_srv</a> () const</td></tr>
<tr class="separator:a0e7b21b1421fd52bb3740fb25f26e4a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfd9213758db871e03aada83dee961b3" id="r_adfd9213758db871e03aada83dee961b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstats.html">stats</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adfd9213758db871e03aada83dee961b3">get_stats</a> () const</td></tr>
<tr class="separator:adfd9213758db871e03aada83dee961b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a2103b81e5a5f73ebce656b96467ee3" id="r_a8a2103b81e5a5f73ebce656b96467ee3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classfps__class.html">fps_class</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8a2103b81e5a5f73ebce656b96467ee3">get_fps</a> () const</td></tr>
<tr class="separator:a8a2103b81e5a5f73ebce656b96467ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6487040a8f3f90c62eaaeec09504071" id="r_ab6487040a8f3f90c62eaaeec09504071"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classecs_1_1_entity_manager.html">ecs::EntityManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab6487040a8f3f90c62eaaeec09504071">get_entity_manager</a> () const</td></tr>
<tr class="separator:ab6487040a8f3f90c62eaaeec09504071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa453b06f65ab6344907f0c65670de202" id="r_aa453b06f65ab6344907f0c65670de202"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa453b06f65ab6344907f0c65670de202">update_stats_after_modification</a> ()</td></tr>
<tr class="separator:aa453b06f65ab6344907f0c65670de202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eff226c2686a261a394b1c046096c5e" id="r_a6eff226c2686a261a394b1c046096c5e"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::string, std::shared_ptr&lt; <a class="el" href="classmodel__class.html">model_class</a> &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6eff226c2686a261a394b1c046096c5e">get_model_cache</a> ()</td></tr>
<tr class="separator:a6eff226c2686a261a394b1c046096c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:adce5c4fa8d064856a893bdf010c66dce" id="r_adce5c4fa8d064856a893bdf010c66dce"><td class="memItemLeft" align="right" valign="top">std::vector&lt; ID3D11ShaderResourceView * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adce5c4fa8d064856a893bdf010c66dce">textures</a></td></tr>
<tr class="separator:adce5c4fa8d064856a893bdf010c66dce"><td class="memSeparator" colspan="2">&#160;</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="application__class_8h_source.html#l00078">78</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab3b678dde613c8568a2124482ed45a73" name="ab3b678dde613c8568a2124482ed45a73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3b678dde613c8568a2124482ed45a73">&#9670;&#160;</a></span>application_class()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">application_class::application_class </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for the application class. Initializes member variables and sets up the application. </p>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l00006">6</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 6</span> : should_quit_(<span class="keyword">false</span>)</div>
<div class="line"><span class="lineno"> 7</span>{</div>
<div class="line"><span class="lineno"> 8</span> direct_3d_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 9</span> camera_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 10</span> model_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 11</span> bitmap_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 12</span> sprite_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 13</span> timer_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 14</span> mouse_strings_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 15</span> font_shader_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 16</span> font_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 17</span> fps_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 18</span> fps_string_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 19</span> shader_manager_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 20</span> render_count_string_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 21</span> model_list_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 22</span> position_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 23</span> display_plane_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 24</span> bath_model_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 25</span> water_model_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 26</span> m_light_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 27</span> refraction_texture_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 28</span> reflection_texture_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 29</span> scene_texture_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 30</span> physics_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 31</span> skybox_.clear();</div>
<div class="line"><span class="lineno"> 32</span> lights_.clear();</div>
<div class="line"><span class="lineno"> 33</span> sun_light_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 34</span> swap_chain_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 35</span> ground_model_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 36</span> wall_model_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 37</span> hwnd_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 38</span> base_view_matrix_ = XMMatrixIdentity();</div>
<div class="line"><span class="lineno"> 39</span> render_texture_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 40</span> screen_width_ = 0;</div>
<div class="line"><span class="lineno"> 41</span> screen_height_ = 0;</div>
<div class="line"><span class="lineno"> 42</span> num_lights_ = 0;</div>
<div class="line"><span class="lineno"> 43</span> water_height_ = 0.0f;</div>
<div class="line"><span class="lineno"> 44</span> water_translation_ = 0.0f;</div>
<div class="line"><span class="lineno"> 45</span> true_light_position_ = XMFLOAT3(0.0f, 0.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 46</span> light_model_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 47</span> render_count_ = 0;</div>
<div class="line"><span class="lineno"> 48</span> tab_was_pressed_ = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 49</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a721cfbe6946ea02559c9cc2aa8a9e626" name="a721cfbe6946ea02559c9cc2aa8a9e626"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a721cfbe6946ea02559c9cc2aa8a9e626">&#9670;&#160;</a></span>~application_class()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">application_class::~application_class </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l00051">51</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 52</span>{</div>
<div class="line"><span class="lineno"> 53</span> should_quit_ = <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 54</span> culling_active_ = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 55</span> </div>
<div class="line"><span class="lineno"> 56</span> <span class="comment">// Joindre les threads pour s&#39;assurer qu&#39;ils se terminent correctement</span></div>
<div class="line"><span class="lineno"> 57</span> <span class="keywordflow">if</span> (physics_thread_.joinable())</div>
<div class="line"><span class="lineno"> 58</span> {</div>
<div class="line"><span class="lineno"> 59</span> physics_thread_.join();</div>
<div class="line"><span class="lineno"> 60</span> }</div>
<div class="line"><span class="lineno"> 61</span> </div>
<div class="line"><span class="lineno"> 62</span> <span class="keywordflow">if</span> (culling_thread_.joinable())</div>
<div class="line"><span class="lineno"> 63</span> {</div>
<div class="line"><span class="lineno"> 64</span> culling_thread_.join();</div>
<div class="line"><span class="lineno"> 65</span> }</div>
<div class="line"><span class="lineno"> 66</span> </div>
<div class="line"><span class="lineno"> 67</span>}</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aaa09afdc106fb3f82788c42272811657" name="aaa09afdc106fb3f82788c42272811657"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa09afdc106fb3f82788c42272811657">&#9670;&#160;</a></span>add_cube()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::add_cube </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a basic cube to the scene. </p>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01464">1464</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1465</span>{</div>
<div class="line"><span class="lineno"> 1466</span> std::lock_guard&lt;std::mutex&gt; lock(objects_mutex_);</div>
<div class="line"><span class="lineno"> 1467</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Adding cube&quot;</span>, __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1468</span> </div>
<div class="line"><span class="lineno"> 1469</span> std::string model_name = <span class="stringliteral">&quot;assets/Model/TXT/cube.txt&quot;</span>;</div>
<div class="line"><span class="lineno"> 1470</span> std::shared_ptr&lt;model_class&gt; sharedModel;</div>
<div class="line"><span class="lineno"> 1471</span> </div>
<div class="line"><span class="lineno"> 1472</span> <span class="keyword">auto</span> it = g_model_cache.find(model_name);</div>
<div class="line"><span class="lineno"> 1473</span> <span class="keywordflow">if</span> (it != g_model_cache.end())</div>
<div class="line"><span class="lineno"> 1474</span> {</div>
<div class="line"><span class="lineno"> 1475</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Using cached model: &quot;</span> + model_name, __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1476</span> sharedModel = it-&gt;second;</div>
<div class="line"><span class="lineno"> 1477</span> }</div>
<div class="line"><span class="lineno"> 1478</span> <span class="keywordflow">else</span></div>
<div class="line"><span class="lineno"> 1479</span> {</div>
<div class="line"><span class="lineno"> 1480</span> <a class="code hl_struct" href="struct_texture_container.html">TextureContainer</a> cube_textures;</div>
<div class="line"><span class="lineno"> 1481</span> cube_textures.diffusePaths.push_back(L<span class="stringliteral">&quot;assets/Texture/Bricks2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 1482</span> cube_textures.normalPaths.push_back(L<span class="stringliteral">&quot;assets/Texture/BricksNRM2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 1483</span> cube_textures.specularPaths.push_back(L<span class="stringliteral">&quot;assets/Texture/BricksGLOSS2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 1484</span> </div>
<div class="line"><span class="lineno"> 1485</span> <span class="keywordtype">char</span> model_filename[128];</div>
<div class="line"><span class="lineno"> 1486</span> strcpy_s(model_filename, model_name.c_str());</div>
<div class="line"><span class="lineno"> 1487</span> </div>
<div class="line"><span class="lineno"> 1488</span> <span class="keyword">auto</span> newModel = std::make_shared&lt;model_class&gt;();</div>
<div class="line"><span class="lineno"> 1489</span> newModel-&gt;PreloadTextures(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), cube_textures);</div>
<div class="line"><span class="lineno"> 1490</span> <span class="keywordflow">if</span> (!newModel-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), model_filename, cube_textures)) {</div>
<div class="line"><span class="lineno"> 1491</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Failed to initialize cube model&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 1492</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 1493</span> }</div>
<div class="line"><span class="lineno"> 1494</span> </div>
<div class="line"><span class="lineno"> 1495</span> g_model_cache[model_name] = newModel;</div>
<div class="line"><span class="lineno"> 1496</span> sharedModel = newModel;</div>
<div class="line"><span class="lineno"> 1497</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Added cube model to cache: &quot;</span> + model_name, __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1498</span> </div>
<div class="line"><span class="lineno"> 1499</span> </div>
<div class="line"><span class="lineno"> 1500</span> <span class="keywordflow">if</span> (entity_manager_)</div>
<div class="line"><span class="lineno"> 1501</span> {</div>
<div class="line"><span class="lineno"> 1502</span> <span class="keyword">auto</span> entity = entity_manager_-&gt;CreateEntity();</div>
<div class="line"><span class="lineno"> 1503</span> </div>
<div class="line"><span class="lineno"> 1504</span> <span class="keyword">auto</span> identity = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;(object_id_++);</div>
<div class="line"><span class="lineno"> 1505</span> identity-&gt;<a class="code hl_function" href="classecs_1_1_identity_component.html#aa04b3e5f2e40271ba50dfd35c3217013">SetName</a>(<span class="stringliteral">&quot;Cube&quot;</span>);</div>
<div class="line"><span class="lineno"> 1506</span> identity-&gt;SetType(ecs::ObjectType::Cube);</div>
<div class="line"><span class="lineno"> 1507</span> </div>
<div class="line"><span class="lineno"> 1508</span> <span class="keyword">auto</span> transform = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_transform_component.html">ecs::TransformComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1509</span> transform-&gt;<a class="code hl_function" href="classecs_1_1_transform_component.html#ad825453d2a065640aa71618c00612249">SetPosition</a>(XMVectorSet(0.0f, 10.0f, 0.0f, 0.0f));</div>
<div class="line"><span class="lineno"> 1510</span> transform-&gt;SetScale(XMVectorSet(1.0f, 1.0f, 1.0f, 0.0f));</div>
<div class="line"><span class="lineno"> 1511</span> transform-&gt;UpdateWorldMatrix();</div>
<div class="line"><span class="lineno"> 1512</span> </div>
<div class="line"><span class="lineno"> 1513</span> <span class="keyword">auto</span> render = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_render_component.html">ecs::RenderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1514</span> render-&gt;InitializeWithModel(sharedModel);</div>
<div class="line"><span class="lineno"> 1515</span> </div>
<div class="line"><span class="lineno"> 1516</span> <span class="keyword">auto</span> shader = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_shader_component.html">ecs::ShaderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1517</span> shader-&gt;<a class="code hl_function" href="classecs_1_1_shader_component.html#a4664380323123817e65900a12fa9496f">SetActiveShader</a>(ecs::ShaderType::TEXTURE);</div>
<div class="line"><span class="lineno"> 1518</span> }</div>
<div class="line"><span class="lineno"> 1519</span> }</div>
<div class="line"><span class="lineno"> 1520</span> </div>
<div class="line"><span class="lineno"> 1521</span> <a class="code hl_function" href="#aa453b06f65ab6344907f0c65670de202">update_stats_after_modification</a>();</div>
<div class="line"><span class="lineno"> 1522</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Cube added successfully&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Info);</div>
<div class="line"><span class="lineno"> 1523</span> </div>
<div class="line"><span class="lineno"> 1524</span>}</div>
<div class="ttc" id="aclass_logger_html_a08e3e1b899767a6d833136c9fb4f15c2"><div class="ttname"><a href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a></div><div class="ttdeci">static Logger &amp; Get()</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00020">Logger.h:20</a></div></div>
<div class="ttc" id="aclass_logger_html_a94f47ba0ef38ea7bcf1056f64d2645e4"><div class="ttname"><a href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Logger::Log</a></div><div class="ttdeci">void Log(const std::string &amp;message, const std::string &amp;fileName, int lineNumber, LogLevel level=LogLevel::Info)</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00158">Logger.h:158</a></div></div>
<div class="ttc" id="aclassapplication__class_html_aa453b06f65ab6344907f0c65670de202"><div class="ttname"><a href="#aa453b06f65ab6344907f0c65670de202">application_class::update_stats_after_modification</a></div><div class="ttdeci">void update_stats_after_modification()</div><div class="ttdef"><b>Definition</b> <a href="application__class_8cpp_source.html#l02066">application_class.cpp:2066</a></div></div>
<div class="ttc" id="aclassd__3d__class_html_a0979aea3c4bb6815908fbe188fc1c67e"><div class="ttname"><a href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">d_3d_class::get_device</a></div><div class="ttdeci">ID3D11Device * get_device()</div><div class="ttdoc">Gets the Direct3D device.</div><div class="ttdef"><b>Definition</b> <a href="d__3d__class_8cpp_source.html#l00557">d_3d_class.cpp:557</a></div></div>
<div class="ttc" id="aclassd__3d__class_html_a4ad87066c014351689f12981234beadb"><div class="ttname"><a href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">d_3d_class::get_device_context</a></div><div class="ttdeci">ID3D11DeviceContext * get_device_context()</div><div class="ttdoc">Gets the Direct3D device context.</div><div class="ttdef"><b>Definition</b> <a href="d__3d__class_8cpp_source.html#l00563">d_3d_class.cpp:563</a></div></div>
<div class="ttc" id="aclassecs_1_1_identity_component_html"><div class="ttname"><a href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a></div><div class="ttdef"><b>Definition</b> <a href="identity__component_8h_source.html#l00018">identity_component.h:18</a></div></div>
<div class="ttc" id="aclassecs_1_1_identity_component_html_aa04b3e5f2e40271ba50dfd35c3217013"><div class="ttname"><a href="classecs_1_1_identity_component.html#aa04b3e5f2e40271ba50dfd35c3217013">ecs::IdentityComponent::SetName</a></div><div class="ttdeci">void SetName(const std::string &amp;name)</div><div class="ttdef"><b>Definition</b> <a href="identity__component_8h_source.html#l00056">identity_component.h:56</a></div></div>
<div class="ttc" id="aclassecs_1_1_render_component_html"><div class="ttname"><a href="classecs_1_1_render_component.html">ecs::RenderComponent</a></div><div class="ttdef"><b>Definition</b> <a href="render__component_8h_source.html#l00029">render_component.h:29</a></div></div>
<div class="ttc" id="aclassecs_1_1_shader_component_html"><div class="ttname"><a href="classecs_1_1_shader_component.html">ecs::ShaderComponent</a></div><div class="ttdef"><b>Definition</b> <a href="shader__component_8h_source.html#l00024">shader_component.h:24</a></div></div>
<div class="ttc" id="aclassecs_1_1_shader_component_html_a4664380323123817e65900a12fa9496f"><div class="ttname"><a href="classecs_1_1_shader_component.html#a4664380323123817e65900a12fa9496f">ecs::ShaderComponent::SetActiveShader</a></div><div class="ttdeci">void SetActiveShader(ShaderType shader)</div><div class="ttdef"><b>Definition</b> <a href="shader__component_8h_source.html#l00047">shader_component.h:47</a></div></div>
<div class="ttc" id="aclassecs_1_1_transform_component_html"><div class="ttname"><a href="classecs_1_1_transform_component.html">ecs::TransformComponent</a></div><div class="ttdef"><b>Definition</b> <a href="transform__component_8h_source.html#l00009">transform_component.h:9</a></div></div>
<div class="ttc" id="aclassecs_1_1_transform_component_html_ad825453d2a065640aa71618c00612249"><div class="ttname"><a href="classecs_1_1_transform_component.html#ad825453d2a065640aa71618c00612249">ecs::TransformComponent::SetPosition</a></div><div class="ttdeci">void SetPosition(XMVECTOR position)</div><div class="ttdef"><b>Definition</b> <a href="transform__component_8h_source.html#l00029">transform_component.h:29</a></div></div>
<div class="ttc" id="astruct_texture_container_html"><div class="ttname"><a href="struct_texture_container.html">TextureContainer</a></div><div class="ttdef"><b>Definition</b> <a href="model__class_8h_source.html#l00033">model_class.h:34</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a9a39dfe69bca6fe96a339ab47b2f0539" name="a9a39dfe69bca6fe96a339ab47b2f0539"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a39dfe69bca6fe96a339ab47b2f0539">&#9670;&#160;</a></span>add_kobject()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::add_kobject </td>
<td>(</td>
<td class="paramtype">std::wstring &amp;</td> <td class="paramname"><span class="paramname"><em>filepath</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new entity with the specified model path. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filepath</td><td></td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01378">1378</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1379</span>{</div>
<div class="line"><span class="lineno"> 1380</span> std::lock_guard&lt;std::mutex&gt; lock(objects_mutex_);</div>
<div class="line"><span class="lineno"> 1381</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Adding object&quot;</span>, __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1382</span> </div>
<div class="line"><span class="lineno"> 1383</span> <span class="keywordtype">char</span> modelFilename[128];</div>
<div class="line"><span class="lineno"> 1384</span> <a class="code hl_struct" href="struct_texture_container.html">TextureContainer</a> KobjectsTextures;</div>
<div class="line"><span class="lineno"> 1385</span> filesystem::path p(filepath);</div>
<div class="line"><span class="lineno"> 1386</span> <span class="keywordtype">string</span> filename = p.stem().string();</div>
<div class="line"><span class="lineno"> 1387</span> </div>
<div class="line"><span class="lineno"> 1388</span> <span class="keywordtype">size_t</span> convertedChars = 0;</div>
<div class="line"><span class="lineno"> 1389</span> (void)wcstombs_s(&amp;convertedChars, modelFilename, <span class="keyword">sizeof</span>(modelFilename), filepath.c_str(), _TRUNCATE);</div>
<div class="line"><span class="lineno"> 1390</span> </div>
<div class="line"><span class="lineno"> 1391</span> filesystem::current_path(w_folder_);</div>
<div class="line"><span class="lineno"> 1392</span> </div>
<div class="line"><span class="lineno"> 1393</span> <span class="comment">// Liste des fichiers de texture</span></div>
<div class="line"><span class="lineno"> 1394</span> std::vector&lt;std::wstring&gt; kobjTexture = {</div>
<div class="line"><span class="lineno"> 1395</span> L<span class="stringliteral">&quot;assets/Texture/Bricks2K.png&quot;</span>,</div>
<div class="line"><span class="lineno"> 1396</span> L<span class="stringliteral">&quot;assets/Texture/BricksNRM2K.png&quot;</span>,</div>
<div class="line"><span class="lineno"> 1397</span> L<span class="stringliteral">&quot;assets/Texture/BricksGLOSS2K.png&quot;</span></div>
<div class="line"><span class="lineno"> 1398</span> };</div>
<div class="line"><span class="lineno"> 1399</span> </div>
<div class="line"><span class="lineno"> 1400</span> <span class="comment">// Configurer les chemins des textures dans le conteneur</span></div>
<div class="line"><span class="lineno"> 1401</span> KobjectsTextures.diffusePaths.push_back(kobjTexture[0]);</div>
<div class="line"><span class="lineno"> 1402</span> <span class="keywordflow">if</span> (kobjTexture.size() &gt; 1) KobjectsTextures.normalPaths.push_back(kobjTexture[1]);</div>
<div class="line"><span class="lineno"> 1403</span> <span class="keywordflow">if</span> (kobjTexture.size() &gt; 2) KobjectsTextures.specularPaths.push_back(kobjTexture[2]);</div>
<div class="line"><span class="lineno"> 1404</span> </div>
<div class="line"><span class="lineno"> 1405</span> <span class="comment">// V<>rifier si le mod<6F>le existe d<>j<EFBFBD> dans le cache</span></div>
<div class="line"><span class="lineno"> 1406</span> std::string modelKey = std::string(modelFilename);</div>
<div class="line"><span class="lineno"> 1407</span> std::shared_ptr&lt;model_class&gt; sharedModel;</div>
<div class="line"><span class="lineno"> 1408</span> </div>
<div class="line"><span class="lineno"> 1409</span> <span class="keyword">auto</span> it = g_model_cache.find(modelKey);</div>
<div class="line"><span class="lineno"> 1410</span> <span class="keywordflow">if</span> (it != g_model_cache.end()) {</div>
<div class="line"><span class="lineno"> 1411</span> <span class="comment">// Utiliser le mod<6F>le existant du cache</span></div>
<div class="line"><span class="lineno"> 1412</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Using cached model for &quot;</span> + modelKey, __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1413</span> sharedModel = it-&gt;second;</div>
<div class="line"><span class="lineno"> 1414</span> }</div>
<div class="line"><span class="lineno"> 1415</span> <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 1416</span> <span class="comment">// Cr<43>er un nouveau mod<6F>le</span></div>
<div class="line"><span class="lineno"> 1417</span> sharedModel = std::make_shared&lt;model_class&gt;();</div>
<div class="line"><span class="lineno"> 1418</span> </div>
<div class="line"><span class="lineno"> 1419</span> <span class="comment">// Pr<50>charger les textures</span></div>
<div class="line"><span class="lineno"> 1420</span> sharedModel-&gt;PreloadTextures(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), KobjectsTextures);</div>
<div class="line"><span class="lineno"> 1421</span> </div>
<div class="line"><span class="lineno"> 1422</span> <span class="comment">// Initialiser le mod<6F>le</span></div>
<div class="line"><span class="lineno"> 1423</span> <span class="keywordflow">if</span> (!sharedModel-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), modelFilename, KobjectsTextures)) {</div>
<div class="line"><span class="lineno"> 1424</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Failed to initialize model for object: &quot;</span> + modelKey, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 1425</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 1426</span> }</div>
<div class="line"><span class="lineno"> 1427</span> </div>
<div class="line"><span class="lineno"> 1428</span> <span class="comment">// Ajouter le mod<6F>le au cache</span></div>
<div class="line"><span class="lineno"> 1429</span> g_model_cache[modelKey] = sharedModel;</div>
<div class="line"><span class="lineno"> 1430</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Added model to cache: &quot;</span> + modelKey, __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1431</span> }</div>
<div class="line"><span class="lineno"> 1432</span> </div>
<div class="line"><span class="lineno"> 1433</span> <span class="comment">// Cr<43>er une nouvelle entit<69></span></div>
<div class="line"><span class="lineno"> 1434</span> <span class="keyword">auto</span> entity = entity_manager_-&gt;CreateEntity();</div>
<div class="line"><span class="lineno"> 1435</span> </div>
<div class="line"><span class="lineno"> 1436</span> <span class="comment">// Ajouter un composant d&#39;identit<EFBFBD></span></div>
<div class="line"><span class="lineno"> 1437</span> <span class="keyword">auto</span> identity = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;(object_id_++);</div>
<div class="line"><span class="lineno"> 1438</span> identity-&gt;<a class="code hl_function" href="classecs_1_1_identity_component.html#aa04b3e5f2e40271ba50dfd35c3217013">SetName</a>(filename);</div>
<div class="line"><span class="lineno"> 1439</span> identity-&gt;SetType(ecs::ObjectType::Unknown);</div>
<div class="line"><span class="lineno"> 1440</span> </div>
<div class="line"><span class="lineno"> 1441</span> <span class="comment">// Ajouter un composant de transformation</span></div>
<div class="line"><span class="lineno"> 1442</span> <span class="keyword">auto</span> transform = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_transform_component.html">ecs::TransformComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1443</span> transform-&gt;<a class="code hl_function" href="classecs_1_1_transform_component.html#ad825453d2a065640aa71618c00612249">SetPosition</a>(XMVectorSet(0.0f, 50.0f, 0.0f, 0.0f));</div>
<div class="line"><span class="lineno"> 1444</span> transform-&gt;SetScale(XMVectorSet(1.0f, 1.0f, 1.0f, 0.0f));</div>
<div class="line"><span class="lineno"> 1445</span> transform-&gt;UpdateWorldMatrix();</div>
<div class="line"><span class="lineno"> 1446</span> </div>
<div class="line"><span class="lineno"> 1447</span> <span class="comment">// Ajouter un composant de rendu avec le mod<6F>le partag<61></span></div>
<div class="line"><span class="lineno"> 1448</span> <span class="keyword">auto</span> render = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_render_component.html">ecs::RenderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1449</span> render-&gt;InitializeWithModel(sharedModel);</div>
<div class="line"><span class="lineno"> 1450</span> </div>
<div class="line"><span class="lineno"> 1451</span> <span class="comment">// Ajouter un composant de shader</span></div>
<div class="line"><span class="lineno"> 1452</span> <span class="keyword">auto</span> shader = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_shader_component.html">ecs::ShaderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1453</span> shader-&gt;<a class="code hl_function" href="classecs_1_1_shader_component.html#a4664380323123817e65900a12fa9496f">SetActiveShader</a>(ecs::ShaderType::LIGHTING);</div>
<div class="line"><span class="lineno"> 1454</span> </div>
<div class="line"><span class="lineno"> 1455</span> <span class="comment">// Stocker le chemin du mod<6F>le</span></div>
<div class="line"><span class="lineno"> 1456</span> <span class="keyword">auto</span> modelPath = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_model_path_component.html">ecs::ModelPathComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1457</span> modelPath-&gt;<a class="code hl_function" href="classecs_1_1_model_path_component.html#aeef7076b697463196a2ce5440ca10f89">SetPath</a>(filepath);</div>
<div class="line"><span class="lineno"> 1458</span> </div>
<div class="line"><span class="lineno"> 1459</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;ECS entity created with ID: &quot;</span> + std::to_string(identity-&gt;GetId()), __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1460</span> </div>
<div class="line"><span class="lineno"> 1461</span> <a class="code hl_function" href="#aa453b06f65ab6344907f0c65670de202">update_stats_after_modification</a>();</div>
<div class="line"><span class="lineno"> 1462</span>}</div>
<div class="ttc" id="aclassecs_1_1_model_path_component_html"><div class="ttname"><a href="classecs_1_1_model_path_component.html">ecs::ModelPathComponent</a></div><div class="ttdef"><b>Definition</b> <a href="model__path__component_8h_source.html#l00007">model_path_component.h:7</a></div></div>
<div class="ttc" id="aclassecs_1_1_model_path_component_html_aeef7076b697463196a2ce5440ca10f89"><div class="ttname"><a href="classecs_1_1_model_path_component.html#aeef7076b697463196a2ce5440ca10f89">ecs::ModelPathComponent::SetPath</a></div><div class="ttdeci">void SetPath(const std::wstring &amp;path)</div><div class="ttdef"><b>Definition</b> <a href="model__path__component_8h_source.html#l00025">model_path_component.h:25</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a7b959a12a5574b263556937f1c94e255" name="a7b959a12a5574b263556937f1c94e255"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b959a12a5574b263556937f1c94e255">&#9670;&#160;</a></span>construct_frustum()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::construct_frustum </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct the frustum for culling. This function will calculate the frustum based on the current camera view and projection matrices. </p>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01940">1940</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1941</span>{</div>
<div class="line"><span class="lineno"> 1942</span> XMMATRIX projectionMatrix = direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a64893c249b126bdc97f63c00e7c78758">get_projection_matrix</a>();</div>
<div class="line"><span class="lineno"> 1943</span> XMMATRIX viewMatrix;</div>
<div class="line"><span class="lineno"> 1944</span> active_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#ac17736821f337ce7fd52b9857095de68">get_view_matrix</a>(viewMatrix);</div>
<div class="line"><span class="lineno"> 1945</span> </div>
<div class="line"><span class="lineno"> 1946</span> frustum_culling_.<a class="code hl_function" href="classfrustum.html#a17fbc652d86a362739d01c66ab8aa036">ConstructFrustum</a>(screen_depth, projectionMatrix, viewMatrix);</div>
<div class="line"><span class="lineno"> 1947</span>}</div>
<div class="ttc" id="aclasscamera__class_html_ac17736821f337ce7fd52b9857095de68"><div class="ttname"><a href="classcamera__class.html#ac17736821f337ce7fd52b9857095de68">camera_class::get_view_matrix</a></div><div class="ttdeci">XMMATRIX get_view_matrix(XMMATRIX &amp;view_matrix) const</div><div class="ttdoc">Retrieves the current view matrix of the camera.</div><div class="ttdef"><b>Definition</b> <a href="camera__class_8cpp_source.html#l00108">camera_class.cpp:108</a></div></div>
<div class="ttc" id="aclassd__3d__class_html_a64893c249b126bdc97f63c00e7c78758"><div class="ttname"><a href="classd__3d__class.html#a64893c249b126bdc97f63c00e7c78758">d_3d_class::get_projection_matrix</a></div><div class="ttdeci">XMMATRIX get_projection_matrix() const</div><div class="ttdef"><b>Definition</b> <a href="d__3d__class_8h_source.html#l00109">d_3d_class.h:109</a></div></div>
<div class="ttc" id="aclassfrustum_html_a17fbc652d86a362739d01c66ab8aa036"><div class="ttname"><a href="classfrustum.html#a17fbc652d86a362739d01c66ab8aa036">frustum::ConstructFrustum</a></div><div class="ttdeci">void ConstructFrustum(float screenDepth, XMMATRIX projectionMatrix, XMMATRIX viewMatrix)</div><div class="ttdef"><b>Definition</b> <a href="frustum_8cpp_source.html#l00003">frustum.cpp:3</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a7b0482e4b79a4c3bf32e1f40ccb48678" name="a7b0482e4b79a4c3bf32e1f40ccb48678"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b0482e4b79a4c3bf32e1f40ccb48678">&#9670;&#160;</a></span>create_big_cube()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool application_class::create_big_cube </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>side_count</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a big cube with a specified number of little cube per sides. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">side_count</td><td>The number of cubes per sides for the big cube. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the cube was created successfully, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l02003">2003</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 2004</span>{</div>
<div class="line"><span class="lineno"> 2005</span> std::string modelName = <span class="stringliteral">&quot;assets/Model/TXT/cube.txt&quot;</span>;</div>
<div class="line"><span class="lineno"> 2006</span> std::shared_ptr&lt;model_class&gt; sharedModel;</div>
<div class="line"><span class="lineno"> 2007</span> </div>
<div class="line"><span class="lineno"> 2008</span> <span class="comment">// V<>rifier si le mod<6F>le existe d<>j<EFBFBD></span></div>
<div class="line"><span class="lineno"> 2009</span> <span class="keyword">auto</span> it = g_model_cache.find(modelName);</div>
<div class="line"><span class="lineno"> 2010</span> <span class="keywordflow">if</span> (it != g_model_cache.end()) {</div>
<div class="line"><span class="lineno"> 2011</span> sharedModel = it-&gt;second;</div>
<div class="line"><span class="lineno"> 2012</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 2013</span> <span class="comment">// copy le string en char*</span></div>
<div class="line"><span class="lineno"> 2014</span> <span class="keywordtype">char</span> model_file[128];</div>
<div class="line"><span class="lineno"> 2015</span> <span class="keywordtype">size_t</span> convertedChars = 0;</div>
<div class="line"><span class="lineno"> 2016</span> (void)wcstombs_s(&amp;convertedChars, model_file, <span class="keyword">sizeof</span>(model_file), std::wstring(modelName.begin(), modelName.end()).c_str(), _TRUNCATE);</div>
<div class="line"><span class="lineno"> 2017</span> </div>
<div class="line"><span class="lineno"> 2018</span> <span class="comment">// Cr<43>er et initialiser le mod<6F>le si non trouv<75></span></div>
<div class="line"><span class="lineno"> 2019</span> <span class="keyword">auto</span> newModel = std::make_shared&lt;model_class&gt;();</div>
<div class="line"><span class="lineno"> 2020</span> <a class="code hl_struct" href="struct_texture_container.html">TextureContainer</a> textures;</div>
<div class="line"><span class="lineno"> 2021</span> textures.diffusePaths.push_back(L<span class="stringliteral">&quot;assets/Texture/Bricks2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 2022</span> textures.normalPaths.push_back(L<span class="stringliteral">&quot;assets/Texture/BricksNRM2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 2023</span> textures.specularPaths.push_back(L<span class="stringliteral">&quot;assets/Texture/BricksGLOSS2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 2024</span> newModel-&gt;PreloadTextures(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), textures);</div>
<div class="line"><span class="lineno"> 2025</span> <span class="keywordflow">if</span> (!newModel-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(),model_file, textures)) {</div>
<div class="line"><span class="lineno"> 2026</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Impossible d&#39;initialiser le mod<6F>le du gros cube&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 2027</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 2028</span> }</div>
<div class="line"><span class="lineno"> 2029</span> g_model_cache[modelName] = newModel;</div>
<div class="line"><span class="lineno"> 2030</span> sharedModel = newModel;</div>
<div class="line"><span class="lineno"> 2031</span> }</div>
<div class="line"><span class="lineno"> 2032</span> </div>
<div class="line"><span class="lineno"> 2033</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; side_count; x++) {</div>
<div class="line"><span class="lineno"> 2034</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; side_count; y++) {</div>
<div class="line"><span class="lineno"> 2035</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> z = 0; z &lt; side_count; z++) {</div>
<div class="line"><span class="lineno"> 2036</span> <span class="comment">// Cr<43>er une entit<69></span></div>
<div class="line"><span class="lineno"> 2037</span> <span class="keyword">auto</span> entity = entity_manager_-&gt;CreateEntity();</div>
<div class="line"><span class="lineno"> 2038</span> </div>
<div class="line"><span class="lineno"> 2039</span> <span class="comment">// Ajouter un composant d&#39;identit<EFBFBD></span></div>
<div class="line"><span class="lineno"> 2040</span> <span class="keyword">auto</span> identity = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;(object_id_++);</div>
<div class="line"><span class="lineno"> 2041</span> identity-&gt;<a class="code hl_function" href="classecs_1_1_identity_component.html#aa04b3e5f2e40271ba50dfd35c3217013">SetName</a>(<span class="stringliteral">&quot;CubePart_&quot;</span> + std::to_string(x) + <span class="stringliteral">&quot;_&quot;</span> + std::to_string(y) + <span class="stringliteral">&quot;_&quot;</span> + std::to_string(z));</div>
<div class="line"><span class="lineno"> 2042</span> identity-&gt;SetType(ecs::ObjectType::Terrain);</div>
<div class="line"><span class="lineno"> 2043</span> </div>
<div class="line"><span class="lineno"> 2044</span> <span class="comment">// Ajouter un composant de transformation</span></div>
<div class="line"><span class="lineno"> 2045</span> <span class="keyword">auto</span> transform = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_transform_component.html">ecs::TransformComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 2046</span> transform-&gt;<a class="code hl_function" href="classecs_1_1_transform_component.html#ad825453d2a065640aa71618c00612249">SetPosition</a>(XMVectorSet(<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(x), <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(y), <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(z), 0.0f));</div>
<div class="line"><span class="lineno"> 2047</span> transform-&gt;SetScale(XMVectorSet(1.0f, 1.0f, 1.0f, 0.0f));</div>
<div class="line"><span class="lineno"> 2048</span> transform-&gt;UpdateWorldMatrix();</div>
<div class="line"><span class="lineno"> 2049</span> </div>
<div class="line"><span class="lineno"> 2050</span> <span class="comment">// Ajouter un composant de rendu</span></div>
<div class="line"><span class="lineno"> 2051</span> <span class="keyword">auto</span> render = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_render_component.html">ecs::RenderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 2052</span> render-&gt;InitializeWithModel(sharedModel);</div>
<div class="line"><span class="lineno"> 2053</span> </div>
<div class="line"><span class="lineno"> 2054</span> <span class="comment">// Ajouter un composant de shader</span></div>
<div class="line"><span class="lineno"> 2055</span> <span class="keyword">auto</span> shader = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_shader_component.html">ecs::ShaderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 2056</span> shader-&gt;<a class="code hl_function" href="classecs_1_1_shader_component.html#a4664380323123817e65900a12fa9496f">SetActiveShader</a>(ecs::ShaderType::LIGHTING);</div>
<div class="line"><span class="lineno"> 2057</span> }</div>
<div class="line"><span class="lineno"> 2058</span> }</div>
<div class="line"><span class="lineno"> 2059</span> }</div>
<div class="line"><span class="lineno"> 2060</span> </div>
<div class="line"><span class="lineno"> 2061</span> <a class="code hl_function" href="#aa453b06f65ab6344907f0c65670de202">update_stats_after_modification</a>();</div>
<div class="line"><span class="lineno"> 2062</span> </div>
<div class="line"><span class="lineno"> 2063</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 2064</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5ade90e873b7b6a31c148672dd0305cb" name="a5ade90e873b7b6a31c148672dd0305cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ade90e873b7b6a31c148672dd0305cb">&#9670;&#160;</a></span>delete_entity_by_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::delete_entity_by_id </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>entity_id</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Delete an entity by its ID. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity_id</td><td>The ID of the entity to delete. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01526">1526</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1527</span>{</div>
<div class="line"><span class="lineno"> 1528</span> std::lock_guard&lt;std::mutex&gt; lock(objects_mutex_);</div>
<div class="line"><span class="lineno"> 1529</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Deleting entity with ID: &quot;</span> + std::to_string(entity_id), __FILE__, __LINE__, Logger::LogLevel::Info);</div>
<div class="line"><span class="lineno"> 1530</span> </div>
<div class="line"><span class="lineno"> 1531</span> <span class="keywordflow">if</span> (entity_manager_) {</div>
<div class="line"><span class="lineno"> 1532</span> <span class="comment">// Rechercher l&#39;entit<EFBFBD> avec l&#39;ID sp<73>cifi<66> via le composant IdentityComponent</span></div>
<div class="line"><span class="lineno"> 1533</span> <span class="keyword">auto</span> entities_with_identity = entity_manager_-&gt;GetEntitiesWithComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1534</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; entity : entities_with_identity) {</div>
<div class="line"><span class="lineno"> 1535</span> <span class="keyword">auto</span> identity = entity-&gt;GetComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1536</span> <span class="keywordflow">if</span> (identity &amp;&amp; identity-&gt;GetId() == entity_id) {</div>
<div class="line"><span class="lineno"> 1537</span> <span class="comment">// Supprimer l&#39;entit<EFBFBD></span></div>
<div class="line"><span class="lineno"> 1538</span> entity_manager_-&gt;DestroyEntity(entity-&gt;GetID());</div>
<div class="line"><span class="lineno"> 1539</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Entity with ID &quot;</span> + std::to_string(entity_id) + <span class="stringliteral">&quot; successfully deleted&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Info);</div>
<div class="line"><span class="lineno"> 1540</span> <span class="keywordflow">break</span>;</div>
<div class="line"><span class="lineno"> 1541</span> }</div>
<div class="line"><span class="lineno"> 1542</span> }</div>
<div class="line"><span class="lineno"> 1543</span> }</div>
<div class="line"><span class="lineno"> 1544</span> </div>
<div class="line"><span class="lineno"> 1545</span> <a class="code hl_function" href="#aa453b06f65ab6344907f0c65670de202">update_stats_after_modification</a>();</div>
<div class="line"><span class="lineno"> 1546</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a69bce73916e1180493ac74030dbb77ba" name="a69bce73916e1180493ac74030dbb77ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69bce73916e1180493ac74030dbb77ba">&#9670;&#160;</a></span>delete_terrain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::delete_terrain </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Delete the flat terrain/Big Cubes from the scene. </p>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01548">1548</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1549</span>{</div>
<div class="line"><span class="lineno"> 1550</span> std::lock_guard&lt;std::mutex&gt; lock(objects_mutex_);</div>
<div class="line"><span class="lineno"> 1551</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Deleting terrain&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Info);</div>
<div class="line"><span class="lineno"> 1552</span> </div>
<div class="line"><span class="lineno"> 1553</span> <span class="comment">// Get all entities with the Terrain type</span></div>
<div class="line"><span class="lineno"> 1554</span> <span class="keyword">auto</span> entities_with_terrain = entity_manager_-&gt;GetEntitiesWithComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1555</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; entity : entities_with_terrain) {</div>
<div class="line"><span class="lineno"> 1556</span> <span class="keyword">auto</span> identity = entity-&gt;GetComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1557</span> <span class="keywordflow">if</span> (identity &amp;&amp; identity-&gt;GetType() == ecs::ObjectType::Terrain) {</div>
<div class="line"><span class="lineno"> 1558</span> <span class="comment">// Destroy the entity</span></div>
<div class="line"><span class="lineno"> 1559</span> entity_manager_-&gt;DestroyEntity(entity-&gt;GetID());</div>
<div class="line"><span class="lineno"> 1560</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Terrain entity with ID &quot;</span> + std::to_string(identity-&gt;GetId()) + <span class="stringliteral">&quot; successfully deleted&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Info);</div>
<div class="line"><span class="lineno"> 1561</span> }</div>
<div class="line"><span class="lineno"> 1562</span> }</div>
<div class="line"><span class="lineno"> 1563</span> </div>
<div class="line"><span class="lineno"> 1564</span> <a class="code hl_function" href="#aa453b06f65ab6344907f0c65670de202">update_stats_after_modification</a>();</div>
<div class="line"><span class="lineno"> 1565</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0d9b9cbfbe1a2efa52606fcbbdfb40ca" name="a0d9b9cbfbe1a2efa52606fcbbdfb40ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d9b9cbfbe1a2efa52606fcbbdfb40ca">&#9670;&#160;</a></span>frame()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool application_class::frame </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classinput__class.html">input_class</a> *</td> <td class="paramname"><span class="paramname"><em>Input</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Run the main loop of the application. This function will handle the main loop, including rendering and updating the application. </p>
<dl class="section return"><dt>Returns</dt><dd>True if the application should continue running, false if it should quit. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l00760">760</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 761</span>{</div>
<div class="line"><span class="lineno"> 762</span> stats_-&gt;reset_draw_call_count();</div>
<div class="line"><span class="lineno"> 763</span> </div>
<div class="line"><span class="lineno"> 764</span> <span class="keywordtype">int</span> mouseX, mouseY, currentMouseX, currentMouseY;</div>
<div class="line"><span class="lineno"> 765</span> <span class="keywordtype">bool</span> result, leftMouseDown, rightMouseDown, buttonQ, buttonD, buttonZ, buttonS, buttonA, buttonE, scrollUp, scrollDown;</div>
<div class="line"><span class="lineno"> 766</span> <span class="keywordtype">float</span> rotationY, rotationX, positionX, positionY, positionZ;</div>
<div class="line"><span class="lineno"> 767</span> <span class="keyword">static</span> <span class="keywordtype">float</span> textureTranslation = 0.0f;</div>
<div class="line"><span class="lineno"> 768</span> </div>
<div class="line"><span class="lineno"> 769</span> <span class="keywordtype">float</span> frameTime;</div>
<div class="line"><span class="lineno"> 770</span> </div>
<div class="line"><span class="lineno"> 771</span> <span class="keyword">static</span> <span class="keywordtype">int</span> lastMouseX = 0, lastMouseY = 0;</div>
<div class="line"><span class="lineno"> 772</span> </div>
<div class="line"><span class="lineno"> 773</span> <span class="keyword">static</span> <span class="keywordtype">float</span> rotation = 360.0f;</div>
<div class="line"><span class="lineno"> 774</span> <span class="keyword">static</span> <span class="keywordtype">float</span> x = 0.0f;</div>
<div class="line"><span class="lineno"> 775</span> <span class="keyword">static</span> <span class="keywordtype">float</span> y = 3.0f;</div>
<div class="line"><span class="lineno"> 776</span> <span class="keyword">static</span> <span class="keywordtype">float</span> z = 0.0f;</div>
<div class="line"><span class="lineno"> 777</span> </div>
<div class="line"><span class="lineno"> 778</span> <span class="comment">// Update the system stats.</span></div>
<div class="line"><span class="lineno"> 779</span> timer_-&gt;Frame();</div>
<div class="line"><span class="lineno"> 780</span> </div>
<div class="line"><span class="lineno"> 781</span> <span class="comment">// Get the current frame time.</span></div>
<div class="line"><span class="lineno"> 782</span> frameTime = timer_-&gt;GetTime();</div>
<div class="line"><span class="lineno"> 783</span> </div>
<div class="line"><span class="lineno"> 784</span> <span class="comment">// Check if the user pressed escape and wants to exit the application.</span></div>
<div class="line"><span class="lineno"> 785</span> <span class="keywordflow">if</span> (Input-&gt;IsEscapePressed())</div>
<div class="line"><span class="lineno"> 786</span> {</div>
<div class="line"><span class="lineno"> 787</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;User pressed escape, exiting application&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Input);</div>
<div class="line"><span class="lineno"> 788</span> should_quit_ = <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 789</span> }</div>
<div class="line"><span class="lineno"> 790</span> </div>
<div class="line"><span class="lineno"> 791</span> <span class="comment">// Get the location of the mouse from the input object,</span></div>
<div class="line"><span class="lineno"> 792</span> Input-&gt;GetMouseLocation(mouseX, mouseY);</div>
<div class="line"><span class="lineno"> 793</span> </div>
<div class="line"><span class="lineno"> 794</span> <span class="comment">// Check if the mouse has been pressed.</span></div>
<div class="line"><span class="lineno"> 795</span> leftMouseDown = Input-&gt;IsLeftMousePressed();</div>
<div class="line"><span class="lineno"> 796</span> rightMouseDown = Input-&gt;IsRightMousePressed();</div>
<div class="line"><span class="lineno"> 797</span> </div>
<div class="line"><span class="lineno"> 798</span> currentMouseX = mouseX;</div>
<div class="line"><span class="lineno"> 799</span> </div>
<div class="line"><span class="lineno"> 800</span> <span class="keywordtype">int</span> deltaX = currentMouseX - lastMouseX; <span class="comment">// Calculate the mouse movement.</span></div>
<div class="line"><span class="lineno"> 801</span> lastMouseX = currentMouseX; <span class="comment">// Update the last mouse position for the next frame</span></div>
<div class="line"><span class="lineno"> 802</span> </div>
<div class="line"><span class="lineno"> 803</span> currentMouseY = mouseY;</div>
<div class="line"><span class="lineno"> 804</span> </div>
<div class="line"><span class="lineno"> 805</span> <span class="keywordtype">int</span> deltaY = currentMouseY - lastMouseY; <span class="comment">// Calculate the mouse movement.</span></div>
<div class="line"><span class="lineno"> 806</span> lastMouseY = currentMouseY; <span class="comment">// Update the last mouse position for the next frame</span></div>
<div class="line"><span class="lineno"> 807</span> </div>
<div class="line"><span class="lineno"> 808</span> <span class="comment">// Set the frame time for calculating the updated position.</span></div>
<div class="line"><span class="lineno"> 809</span> position_-&gt;SetFrameTime(timer_-&gt;GetTime());</div>
<div class="line"><span class="lineno"> 810</span> </div>
<div class="line"><span class="lineno"> 811</span> position_-&gt;TurnMouse((<span class="keywordtype">float</span>)deltaX, (<span class="keywordtype">float</span>)deltaY, 0.1f, rightMouseDown);</div>
<div class="line"><span class="lineno"> 812</span> </div>
<div class="line"><span class="lineno"> 813</span> <span class="comment">// Get the current view point rotation.</span></div>
<div class="line"><span class="lineno"> 814</span> position_-&gt;GetRotation(rotationY, rotationX);</div>
<div class="line"><span class="lineno"> 815</span> </div>
<div class="line"><span class="lineno"> 816</span> scrollUp = Input-&gt;IsScrollUp();</div>
<div class="line"><span class="lineno"> 817</span> scrollDown = Input-&gt;IsScrollDown();</div>
<div class="line"><span class="lineno"> 818</span> </div>
<div class="line"><span class="lineno"> 819</span> <span class="comment">// Check if the a(q), d, w(z), s, q(a), e have been pressed, if so move the camera accordingly.</span></div>
<div class="line"><span class="lineno"> 820</span> buttonQ = Input-&gt;IsAPressed();</div>
<div class="line"><span class="lineno"> 821</span> buttonD = Input-&gt;IsDPressed();</div>
<div class="line"><span class="lineno"> 822</span> buttonZ = Input-&gt;IsWPressed();</div>
<div class="line"><span class="lineno"> 823</span> buttonS = Input-&gt;IsSPressed();</div>
<div class="line"><span class="lineno"> 824</span> buttonA = Input-&gt;IsQPressed();</div>
<div class="line"><span class="lineno"> 825</span> buttonE = Input-&gt;IsEPressed();</div>
<div class="line"><span class="lineno"> 826</span> position_-&gt;MoveCamera(buttonZ, buttonS, buttonQ, buttonD, buttonE, buttonA, scrollUp, scrollDown, rightMouseDown);</div>
<div class="line"><span class="lineno"> 827</span> position_-&gt;GetPosition(positionX, positionY, positionZ);</div>
<div class="line"><span class="lineno"> 828</span> </div>
<div class="line"><span class="lineno"> 829</span> XMFLOAT3 dir = sun_light_-&gt;GetDirection();</div>
<div class="line"><span class="lineno"> 830</span> <span class="keywordtype">float</span> pitch = asinf(-dir.y) * (180.0f / XM_PI); <span class="comment">// en degr<67>s</span></div>
<div class="line"><span class="lineno"> 831</span> <span class="keywordtype">float</span> yaw = atan2f(dir.x, dir.z) * (180.0f / XM_PI); <span class="comment">// en degr<67>s</span></div>
<div class="line"><span class="lineno"> 832</span> <span class="keywordtype">float</span> roll = 0.0f;</div>
<div class="line"><span class="lineno"> 833</span> </div>
<div class="line"><span class="lineno"> 834</span> <span class="keywordflow">if</span> (Input-&gt;is_key_pressed(DIK_TAB)) {</div>
<div class="line"><span class="lineno"> 835</span> <span class="keywordflow">if</span> (!tab_was_pressed_) {</div>
<div class="line"><span class="lineno"> 836</span> <span class="comment">// Alterner la cam<61>ra active</span></div>
<div class="line"><span class="lineno"> 837</span> <span class="keywordflow">if</span> (active_camera_ == camera_)</div>
<div class="line"><span class="lineno"> 838</span> active_camera_ = sun_camera_;</div>
<div class="line"><span class="lineno"> 839</span> <span class="keywordflow">else</span></div>
<div class="line"><span class="lineno"> 840</span> active_camera_ = camera_;</div>
<div class="line"><span class="lineno"> 841</span> tab_was_pressed_ = <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 842</span> }</div>
<div class="line"><span class="lineno"> 843</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 844</span> tab_was_pressed_ = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 845</span> }</div>
<div class="line"><span class="lineno"> 846</span> </div>
<div class="line"><span class="lineno"> 847</span> <span class="keywordflow">if</span> (active_camera_ == camera_) {</div>
<div class="line"><span class="lineno"> 848</span> <span class="comment">// Update the camera position and rotation based on the position class.</span></div>
<div class="line"><span class="lineno"> 849</span> camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a4b9ac7f98297d2007abd1ed3d326d381">set_position</a>(positionX, positionY, positionZ);</div>
<div class="line"><span class="lineno"> 850</span> camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a410c4bbfd5ba10d0785f5ac9178f9b3f">set_rotation</a>(rotationX, rotationY, 0.0f);</div>
<div class="line"><span class="lineno"> 851</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 852</span> <span class="comment">// Update the sun camera position and rotation based on the light position.</span></div>
<div class="line"><span class="lineno"> 853</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a4b9ac7f98297d2007abd1ed3d326d381">set_position</a>(sun_light_-&gt;GetPosition().x, sun_light_-&gt;GetPosition().y, sun_light_-&gt;GetPosition().z);</div>
<div class="line"><span class="lineno"> 854</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a410c4bbfd5ba10d0785f5ac9178f9b3f">set_rotation</a>(pitch, yaw, roll);</div>
<div class="line"><span class="lineno"> 855</span> </div>
<div class="line"><span class="lineno"> 856</span> <span class="comment">// sun_camera_-&gt;set_position(positionX, positionY, positionZ);</span></div>
<div class="line"><span class="lineno"> 857</span> <span class="comment">// sun_camera_-&gt;set_rotation(rotationX, rotationY, 0.0f);</span></div>
<div class="line"><span class="lineno"> 858</span> }</div>
<div class="line"><span class="lineno"> 859</span> </div>
<div class="line"><span class="lineno"> 860</span> active_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a0820187f209f9628e6b2a8af34d71057">render</a>();</div>
<div class="line"><span class="lineno"> 861</span> </div>
<div class="line"><span class="lineno"> 862</span> <span class="comment">// render the static graphics scene.</span></div>
<div class="line"><span class="lineno"> 863</span> result = render(rotation, x, y, z, textureTranslation);</div>
<div class="line"><span class="lineno"> 864</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 865</span> {</div>
<div class="line"><span class="lineno"> 866</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not render the graphics scene&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 867</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 868</span> }</div>
<div class="line"><span class="lineno"> 869</span> </div>
<div class="line"><span class="lineno"> 870</span> <span class="comment">// Update the frames per second each frame.</span></div>
<div class="line"><span class="lineno"> 871</span> result = update_fps();</div>
<div class="line"><span class="lineno"> 872</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 873</span> {</div>
<div class="line"><span class="lineno"> 874</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not update the frames per second&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 875</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 876</span> }</div>
<div class="line"><span class="lineno"> 877</span> </div>
<div class="line"><span class="lineno"> 878</span> <span class="comment">// Update the rotation variable each frame.</span></div>
<div class="line"><span class="lineno"> 879</span> rotation -= 0.0174532925f * speed_;</div>
<div class="line"><span class="lineno"> 880</span> <span class="keywordflow">if</span> (rotation &lt; 0.0f)</div>
<div class="line"><span class="lineno"> 881</span> {</div>
<div class="line"><span class="lineno"> 882</span> rotation += 360.0f;</div>
<div class="line"><span class="lineno"> 883</span> }</div>
<div class="line"><span class="lineno"> 884</span> </div>
<div class="line"><span class="lineno"> 885</span> <span class="comment">// Update the position of the water to simulate motion.</span></div>
<div class="line"><span class="lineno"> 886</span> water_translation_ += 0.001f;</div>
<div class="line"><span class="lineno"> 887</span> <span class="keywordflow">if</span> (water_translation_ &gt; 1.0f)</div>
<div class="line"><span class="lineno"> 888</span> {</div>
<div class="line"><span class="lineno"> 889</span> water_translation_ -= 1.0f;</div>
<div class="line"><span class="lineno"> 890</span> }</div>
<div class="line"><span class="lineno"> 891</span> </div>
<div class="line"><span class="lineno"> 892</span> <span class="comment">// render the refraction of the scene to a texture.</span></div>
<div class="line"><span class="lineno"> 893</span> result = render_refraction_to_texture();</div>
<div class="line"><span class="lineno"> 894</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 895</span> {</div>
<div class="line"><span class="lineno"> 896</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 897</span> }</div>
<div class="line"><span class="lineno"> 898</span> </div>
<div class="line"><span class="lineno"> 899</span> <span class="comment">// render the reflection of the scene to a texture.</span></div>
<div class="line"><span class="lineno"> 900</span> result = render_reflection_to_texture();</div>
<div class="line"><span class="lineno"> 901</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 902</span> {</div>
<div class="line"><span class="lineno"> 903</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 904</span> }</div>
<div class="line"><span class="lineno"> 905</span> </div>
<div class="line"><span class="lineno"> 906</span> inputs_.key_left = Input-&gt;IsLeftArrowPressed();</div>
<div class="line"><span class="lineno"> 907</span> inputs_.key_right = Input-&gt;IsRightArrowPressed();</div>
<div class="line"><span class="lineno"> 908</span> inputs_.key_up = Input-&gt;IsUpArrowPressed();</div>
<div class="line"><span class="lineno"> 909</span> inputs_.key_down = Input-&gt;IsDownArrowPressed();</div>
<div class="line"><span class="lineno"> 910</span> </div>
<div class="line"><span class="lineno"> 911</span> <span class="comment">// render the scene to a render texture.</span></div>
<div class="line"><span class="lineno"> 912</span> result = render_scene_to_texture(rotation);</div>
<div class="line"><span class="lineno"> 913</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 914</span> {</div>
<div class="line"><span class="lineno"> 915</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not render the scene to the render texture&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 916</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 917</span> }</div>
<div class="line"><span class="lineno"> 918</span> </div>
<div class="line"><span class="lineno"> 919</span> <span class="comment">// Update the mouse strings each frame.</span></div>
<div class="line"><span class="lineno"> 920</span> result = update_mouse_strings(mouseX, mouseY, leftMouseDown);</div>
<div class="line"><span class="lineno"> 921</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 922</span> {</div>
<div class="line"><span class="lineno"> 923</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not update the mouse strings&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 924</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 925</span> }</div>
<div class="line"><span class="lineno"> 926</span> </div>
<div class="line"><span class="lineno"> 927</span> <span class="comment">// Update the sprite object using the frame time.</span></div>
<div class="line"><span class="lineno"> 928</span> sprite_-&gt;Update(frameTime);</div>
<div class="line"><span class="lineno"> 929</span> </div>
<div class="line"><span class="lineno"> 930</span> <span class="comment">// Increment the texture translation.</span></div>
<div class="line"><span class="lineno"> 931</span> textureTranslation += 0.01f;</div>
<div class="line"><span class="lineno"> 932</span> <span class="keywordflow">if</span> (textureTranslation &gt; 1.0f)</div>
<div class="line"><span class="lineno"> 933</span> {</div>
<div class="line"><span class="lineno"> 934</span> textureTranslation -= 1.0f;</div>
<div class="line"><span class="lineno"> 935</span> }</div>
<div class="line"><span class="lineno"> 936</span> </div>
<div class="line"><span class="lineno"> 937</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 938</span>}</div>
<div class="ttc" id="aclasscamera__class_html_a0820187f209f9628e6b2a8af34d71057"><div class="ttname"><a href="classcamera__class.html#a0820187f209f9628e6b2a8af34d71057">camera_class::render</a></div><div class="ttdeci">void render()</div><div class="ttdoc">Updates the camera's view matrix based on its position and rotation. This method recalculates the vie...</div><div class="ttdef"><b>Definition</b> <a href="camera__class_8cpp_source.html#l00055">camera_class.cpp:55</a></div></div>
<div class="ttc" id="aclasscamera__class_html_a410c4bbfd5ba10d0785f5ac9178f9b3f"><div class="ttname"><a href="classcamera__class.html#a410c4bbfd5ba10d0785f5ac9178f9b3f">camera_class::set_rotation</a></div><div class="ttdeci">void set_rotation(float, float, float)</div><div class="ttdoc">Sets the rotation of the camera in 3D space.</div><div class="ttdef"><b>Definition</b> <a href="camera__class_8cpp_source.html#l00036">camera_class.cpp:36</a></div></div>
<div class="ttc" id="aclasscamera__class_html_a4b9ac7f98297d2007abd1ed3d326d381"><div class="ttname"><a href="classcamera__class.html#a4b9ac7f98297d2007abd1ed3d326d381">camera_class::set_position</a></div><div class="ttdeci">void set_position(float, float, float)</div><div class="ttdoc">Sets the position of the camera in 3D space.</div><div class="ttdef"><b>Definition</b> <a href="camera__class_8cpp_source.html#l00027">camera_class.cpp:27</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aca20ad22e0c95f5404e3c47a11317025" name="aca20ad22e0c95f5404e3c47a11317025"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca20ad22e0c95f5404e3c47a11317025">&#9670;&#160;</a></span>generate_terrain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::generate_terrain </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generate a flat terrain for test purposes using plane entities. </p>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01293">1293</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1294</span>{</div>
<div class="line"><span class="lineno"> 1295</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;G<EFBFBD>n<EFBFBD>ration du terrain avec ECS&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Info);</div>
<div class="line"><span class="lineno"> 1296</span> </div>
<div class="line"><span class="lineno"> 1297</span> <span class="comment">// delete previous terrain if it exists</span></div>
<div class="line"><span class="lineno"> 1298</span> <a class="code hl_function" href="#a69bce73916e1180493ac74030dbb77ba">delete_terrain</a>();</div>
<div class="line"><span class="lineno"> 1299</span> </div>
<div class="line"><span class="lineno"> 1300</span> <span class="comment">// Dimensions du terrain</span></div>
<div class="line"><span class="lineno"> 1301</span> <span class="keywordtype">float</span> scaleX = 10.0f;</div>
<div class="line"><span class="lineno"> 1302</span> <span class="keywordtype">float</span> scaleY = 1.0f;</div>
<div class="line"><span class="lineno"> 1303</span> <span class="keywordtype">float</span> scaleZ = 10.0f;</div>
<div class="line"><span class="lineno"> 1304</span> <span class="keywordtype">int</span> gridSizeX = 20;</div>
<div class="line"><span class="lineno"> 1305</span> <span class="keywordtype">int</span> gridSizeZ = 20;</div>
<div class="line"><span class="lineno"> 1306</span> </div>
<div class="line"><span class="lineno"> 1307</span> <span class="comment">// V<>rifier si le mod<6F>le existe d<>j<EFBFBD> dans le cache</span></div>
<div class="line"><span class="lineno"> 1308</span> std::string modelName = <span class="stringliteral">&quot;assets/Model/OBJ/plane.obj&quot;</span>;</div>
<div class="line"><span class="lineno"> 1309</span> std::shared_ptr&lt;model_class&gt; sharedModel;</div>
<div class="line"><span class="lineno"> 1310</span> </div>
<div class="line"><span class="lineno"> 1311</span> <span class="keyword">auto</span> it = g_model_cache.find(modelName);</div>
<div class="line"><span class="lineno"> 1312</span> <span class="keywordflow">if</span> (it != g_model_cache.end()) {</div>
<div class="line"><span class="lineno"> 1313</span> <span class="comment">// Utiliser le mod<6F>le existant du cache</span></div>
<div class="line"><span class="lineno"> 1314</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Using cached model for terrain: &quot;</span> + modelName, __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1315</span> sharedModel = it-&gt;second;</div>
<div class="line"><span class="lineno"> 1316</span> }</div>
<div class="line"><span class="lineno"> 1317</span> <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 1318</span> <span class="comment">// Cr<43>er un conteneur de textures partag<61></span></div>
<div class="line"><span class="lineno"> 1319</span> <a class="code hl_struct" href="struct_texture_container.html">TextureContainer</a> textureContainer;</div>
<div class="line"><span class="lineno"> 1320</span> textureContainer.diffusePaths.push_back(L<span class="stringliteral">&quot;assets/Texture/Bricks2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 1321</span> textureContainer.normalPaths.push_back(L<span class="stringliteral">&quot;assets/Texture/BricksNRM2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 1322</span> textureContainer.specularPaths.push_back(L<span class="stringliteral">&quot;assets/Texture/BricksGLOSS2K.png&quot;</span>);</div>
<div class="line"><span class="lineno"> 1323</span> </div>
<div class="line"><span class="lineno"> 1324</span> <span class="comment">// Cr<43>er et initialiser le mod<6F>le si non trouv<75></span></div>
<div class="line"><span class="lineno"> 1325</span> <span class="keywordtype">char</span> modelFilename[128];</div>
<div class="line"><span class="lineno"> 1326</span> strcpy_s(modelFilename, modelName.c_str());</div>
<div class="line"><span class="lineno"> 1327</span> </div>
<div class="line"><span class="lineno"> 1328</span> <span class="keyword">auto</span> newModel = std::make_shared&lt;model_class&gt;();</div>
<div class="line"><span class="lineno"> 1329</span> newModel-&gt;PreloadTextures(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), textureContainer);</div>
<div class="line"><span class="lineno"> 1330</span> </div>
<div class="line"><span class="lineno"> 1331</span> <span class="keywordflow">if</span> (!newModel-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), modelFilename, textureContainer)) {</div>
<div class="line"><span class="lineno"> 1332</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Impossible d&#39;initialiser le mod<6F>le du terrain&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 1333</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 1334</span> }</div>
<div class="line"><span class="lineno"> 1335</span> </div>
<div class="line"><span class="lineno"> 1336</span> <span class="comment">// Ajouter le mod<6F>le au cache</span></div>
<div class="line"><span class="lineno"> 1337</span> g_model_cache[modelName] = newModel;</div>
<div class="line"><span class="lineno"> 1338</span> sharedModel = newModel;</div>
<div class="line"><span class="lineno"> 1339</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Added terrain model to cache: &quot;</span> + modelName, __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1340</span> }</div>
<div class="line"><span class="lineno"> 1341</span> </div>
<div class="line"><span class="lineno"> 1342</span> <span class="comment">// V<>rifier si l&#39;entity manager est disponible</span></div>
<div class="line"><span class="lineno"> 1343</span> <span class="keywordflow">if</span> (entity_manager_) {</div>
<div class="line"><span class="lineno"> 1344</span> <span class="comment">// G<>n<EFBFBD>rer les tuiles de terrain avec le syst<73>me ECS</span></div>
<div class="line"><span class="lineno"> 1345</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; gridSizeX; i++) {</div>
<div class="line"><span class="lineno"> 1346</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; gridSizeZ; j++) {</div>
<div class="line"><span class="lineno"> 1347</span> <span class="comment">// Cr<43>er une entit<69></span></div>
<div class="line"><span class="lineno"> 1348</span> <span class="keyword">auto</span> entity = entity_manager_-&gt;CreateEntity();</div>
<div class="line"><span class="lineno"> 1349</span> </div>
<div class="line"><span class="lineno"> 1350</span> <span class="comment">// Ajouter un composant d&#39;identit<EFBFBD></span></div>
<div class="line"><span class="lineno"> 1351</span> <span class="keyword">auto</span> identity = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;(object_id_++);</div>
<div class="line"><span class="lineno"> 1352</span> identity-&gt;<a class="code hl_function" href="classecs_1_1_identity_component.html#aa04b3e5f2e40271ba50dfd35c3217013">SetName</a>(<span class="stringliteral">&quot;TerrainTile_&quot;</span> + std::to_string(i) + <span class="stringliteral">&quot;_&quot;</span> + std::to_string(j));</div>
<div class="line"><span class="lineno"> 1353</span> identity-&gt;SetType(ecs::ObjectType::Terrain);</div>
<div class="line"><span class="lineno"> 1354</span> </div>
<div class="line"><span class="lineno"> 1355</span> <span class="comment">// Ajouter un composant de transformation</span></div>
<div class="line"><span class="lineno"> 1356</span> <span class="keyword">auto</span> transform = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_transform_component.html">ecs::TransformComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1357</span> transform-&gt;<a class="code hl_function" href="classecs_1_1_transform_component.html#ad825453d2a065640aa71618c00612249">SetPosition</a>(XMVectorSet(i * scaleX, -12.0f, j * scaleZ, 0.0f));</div>
<div class="line"><span class="lineno"> 1358</span> transform-&gt;SetScale(XMVectorSet(scaleX, scaleY, scaleZ, 0.0f));</div>
<div class="line"><span class="lineno"> 1359</span> transform-&gt;UpdateWorldMatrix();</div>
<div class="line"><span class="lineno"> 1360</span> </div>
<div class="line"><span class="lineno"> 1361</span> <span class="comment">// Ajouter un composant de rendu</span></div>
<div class="line"><span class="lineno"> 1362</span> <span class="keyword">auto</span> render = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_render_component.html">ecs::RenderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1363</span> render-&gt;InitializeWithModel(sharedModel);</div>
<div class="line"><span class="lineno"> 1364</span> </div>
<div class="line"><span class="lineno"> 1365</span> <span class="comment">// Ajouter un composant de shader</span></div>
<div class="line"><span class="lineno"> 1366</span> <span class="keyword">auto</span> shader = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_shader_component.html">ecs::ShaderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 1367</span> shader-&gt;<a class="code hl_function" href="classecs_1_1_shader_component.html#a4664380323123817e65900a12fa9496f">SetActiveShader</a>(ecs::ShaderType::SUNLIGHT);</div>
<div class="line"><span class="lineno"> 1368</span> }</div>
<div class="line"><span class="lineno"> 1369</span> }</div>
<div class="line"><span class="lineno"> 1370</span> }</div>
<div class="line"><span class="lineno"> 1371</span> </div>
<div class="line"><span class="lineno"> 1372</span> <a class="code hl_function" href="#aa453b06f65ab6344907f0c65670de202">update_stats_after_modification</a>();</div>
<div class="line"><span class="lineno"> 1373</span> </div>
<div class="line"><span class="lineno"> 1374</span> <span class="keywordtype">int</span> totalTiles = gridSizeX * gridSizeZ;</div>
<div class="line"><span class="lineno"> 1375</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Terrain g<>n<EFBFBD>r<EFBFBD> avec &quot;</span> + std::to_string(totalTiles) + <span class="stringliteral">&quot; tuiles&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Info);</div>
<div class="line"><span class="lineno"> 1376</span>}</div>
<div class="ttc" id="aclassapplication__class_html_a69bce73916e1180493ac74030dbb77ba"><div class="ttname"><a href="#a69bce73916e1180493ac74030dbb77ba">application_class::delete_terrain</a></div><div class="ttdeci">void delete_terrain()</div><div class="ttdef"><b>Definition</b> <a href="application__class_8cpp_source.html#l01548">application_class.cpp:1548</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a1bbbc70e5a68278f410e9b2b93942230" name="a1bbbc70e5a68278f410e9b2b93942230"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1bbbc70e5a68278f410e9b2b93942230">&#9670;&#160;</a></span>get_aspect_ratio()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float application_class::get_aspect_ratio </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 aspect ratio of the screen. </p><dl class="section return"><dt>Returns</dt><dd>The aspect ratio as a float. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00355">355</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 355</span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(screen_width_) / <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(screen_height_); };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0e7b21b1421fd52bb3740fb25f26e4a7" name="a0e7b21b1421fd52bb3740fb25f26e4a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e7b21b1421fd52bb3740fb25f26e4a7">&#9670;&#160;</a></span>get_back_buffer_srv()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ID3D11ShaderResourceView * application_class::get_back_buffer_srv </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 Direct3D back buffer texture. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the Direct3D back buffer texture. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00422">422</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 422</span>{<span class="keywordflow">return</span> back_buffer_srv_;};</div>
</div><!-- fragment -->
</div>
</div>
<a id="abf98d275e281e99e54a68d3b53ba7b94" name="abf98d275e281e99e54a68d3b53ba7b94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf98d275e281e99e54a68d3b53ba7b94">&#9670;&#160;</a></span>get_can_fixed_update()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool application_class::get_can_fixed_update </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 flag indicating whether the application can perform fixed updates. </p><dl class="section return"><dt>Returns</dt><dd>True if fixed updates are allowed, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00411">411</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 411</span>{ <span class="keywordflow">return</span> can_fixed_update_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="aefb3a92b91a535798335d29330aaad02" name="aefb3a92b91a535798335d29330aaad02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefb3a92b91a535798335d29330aaad02">&#9670;&#160;</a></span>get_direct_3d()</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="classd__3d__class.html">d_3d_class</a> * application_class::get_direct_3d </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01278">1278</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1279</span>{</div>
<div class="line"><span class="lineno"> 1280</span> <span class="keywordflow">return</span> direct_3d_;</div>
<div class="line"><span class="lineno"> 1281</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab6487040a8f3f90c62eaaeec09504071" name="ab6487040a8f3f90c62eaaeec09504071"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6487040a8f3f90c62eaaeec09504071">&#9670;&#160;</a></span>get_entity_manager()</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="classecs_1_1_entity_manager.html">ecs::EntityManager</a> * application_class::get_entity_manager </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 entity manager instance. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the entity manager instance. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00439">439</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 439</span>{ <span class="keywordflow">return</span> entity_manager_.get(); };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8a2103b81e5a5f73ebce656b96467ee3" name="a8a2103b81e5a5f73ebce656b96467ee3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a2103b81e5a5f73ebce656b96467ee3">&#9670;&#160;</a></span>get_fps()</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="classfps__class.html">fps_class</a> * application_class::get_fps </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 FPS manager instance. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the FPS manager instance. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00433">433</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 433</span>{ <span class="keywordflow">return</span> fps_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a29f11f9f0ab0f41af7b1b657d9310209" name="a29f11f9f0ab0f41af7b1b657d9310209"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29f11f9f0ab0f41af7b1b657d9310209">&#9670;&#160;</a></span>get_frustum()</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="classfrustum.html">frustum</a> application_class::get_frustum </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 frustum used for culling. </p><dl class="section return"><dt>Returns</dt><dd>The frustum used for culling as a frustum object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00371">371</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 371</span>{ <span class="keywordflow">return</span> frustum_culling_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa271ce1d2803a5a1fcd9becad215ecb0" name="aa271ce1d2803a5a1fcd9becad215ecb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa271ce1d2803a5a1fcd9becad215ecb0">&#9670;&#160;</a></span>get_frustum_tolerance()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float application_class::get_frustum_tolerance </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 frustum culling tolerance. This value is used to determine how much an object must be outside the frustum to be culled. </p><dl class="section return"><dt>Returns</dt><dd>The frustum culling tolerance as a float. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00399">399</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 399</span>{ <span class="keywordflow">return</span> frustum_culling_tolerance_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a692f521b7d27a89a95848dd912342c1f" name="a692f521b7d27a89a95848dd912342c1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a692f521b7d27a89a95848dd912342c1f">&#9670;&#160;</a></span>get_hwnd()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HWND application_class::get_hwnd </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 handle to the window. </p><dl class="section return"><dt>Returns</dt><dd>The handle to the window as an HWND. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00321">321</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 321</span>{ <span class="keywordflow">return</span> hwnd_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a85c04a3f2d050cb750d7986ebc7e76a5" name="a85c04a3f2d050cb750d7986ebc7e76a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85c04a3f2d050cb750d7986ebc7e76a5">&#9670;&#160;</a></span>get_light_color()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">XMVECTOR application_class::get_light_color </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the color for a specific light index. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The color of the light as an XMVECTOR. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01722">1722</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1723</span>{</div>
<div class="line"><span class="lineno"> 1724</span> <span class="comment">//convert to XMVECTOR</span></div>
<div class="line"><span class="lineno"> 1725</span> XMVECTOR lightColor = XMVectorSet(lights_[index]-&gt;GetDiffuseColor().x, lights_[index]-&gt;GetDiffuseColor().y, lights_[index]-&gt;GetDiffuseColor().z, 1.0f);</div>
<div class="line"><span class="lineno"> 1726</span> </div>
<div class="line"><span class="lineno"> 1727</span> <span class="keywordflow">return</span> lightColor;</div>
<div class="line"><span class="lineno"> 1728</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a54f4915b1878fde4dc60ff26be5712ee" name="a54f4915b1878fde4dc60ff26be5712ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54f4915b1878fde4dc60ff26be5712ee">&#9670;&#160;</a></span>get_light_position()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">XMVECTOR application_class::get_light_position </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the position for a specific light index. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The position of the light as an XMVECTOR. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01730">1730</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1731</span>{</div>
<div class="line"><span class="lineno"> 1732</span> <span class="comment">//convert to XMVECTOR</span></div>
<div class="line"><span class="lineno"> 1733</span> XMVECTOR lightPosition = XMVectorSet(lights_[index]-&gt;GetPosition().x, lights_[index]-&gt;GetPosition().y, lights_[index]-&gt;GetPosition().z, 1.0f);</div>
<div class="line"><span class="lineno"> 1734</span> </div>
<div class="line"><span class="lineno"> 1735</span> <span class="keywordflow">return</span> lightPosition;</div>
<div class="line"><span class="lineno"> 1736</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9b1ca112e8d8fd01a7061d9a638e9f3e" name="a9b1ca112e8d8fd01a7061d9a638e9f3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b1ca112e8d8fd01a7061d9a638e9f3e">&#9670;&#160;</a></span>get_lights()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classlight__class.html">light_class</a> * &gt; application_class::get_lights </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 all the lights in the scene. </p><dl class="section return"><dt>Returns</dt><dd>A vector of pointers to <a class="el" href="classlight__class.html">light_class</a> objects representing the lights in the scene. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00271">271</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 271</span>{ <span class="keywordflow">return</span> lights_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6eff226c2686a261a394b1c046096c5e" name="a6eff226c2686a261a394b1c046096c5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6eff226c2686a261a394b1c046096c5e">&#9670;&#160;</a></span>get_model_cache()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::map&lt; std::string, std::shared_ptr&lt; <a class="el" href="classmodel__class.html">model_class</a> &gt; &gt; &amp; application_class::get_model_cache </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 the global model cache. The model cache is a static map that stores shared pointers to <a class="el" href="classmodel__class.html">model_class</a> objects. This cache is used to avoid loading the same model multiple times. </p><dl class="section return"><dt>Returns</dt><dd>A reference to the global model cache as a map of strings to shared pointers of <a class="el" href="classmodel__class.html">model_class</a>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00450">450</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 450</span>{ <span class="keywordflow">return</span> g_model_cache; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a32624a7be14230d2120de382c2c2e298" name="a32624a7be14230d2120de382c2c2e298"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32624a7be14230d2120de382c2c2e298">&#9670;&#160;</a></span>get_object_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int application_class::get_object_id </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 object ID. </p><dl class="section return"><dt>Returns</dt><dd>The object ID as an integer. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00227">227</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 227</span>{ <span class="keywordflow">return</span> object_id_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab1924a7177c04594ec5dab7fe4c0104f" name="ab1924a7177c04594ec5dab7fe4c0104f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1924a7177c04594ec5dab7fe4c0104f">&#9670;&#160;</a></span>get_physics()</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="classphysics.html">physics</a> * application_class::get_physics </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 physics engine instance. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the physics engine instance. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00361">361</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 361</span>{ <span class="keywordflow">return</span> physics_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a118113b8ab8ad1065b032d57150fa7dd" name="a118113b8ab8ad1065b032d57150fa7dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a118113b8ab8ad1065b032d57150fa7dd">&#9670;&#160;</a></span>get_physics_tick_rate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int application_class::get_physics_tick_rate </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 physics tick rate. </p><dl class="section return"><dt>Returns</dt><dd>The physics tick rate in frames per second as an integer. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00146">146</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 146</span>{ <span class="keywordflow">return</span> physics_tick_rate_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a25592af930b0ee6c34d667fc0f8d69e1" name="a25592af930b0ee6c34d667fc0f8d69e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25592af930b0ee6c34d667fc0f8d69e1">&#9670;&#160;</a></span>get_reflection_texture()</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="classrender__texture__class.html">render_texture_class</a> * application_class::get_reflection_texture </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 reflection texture used for rendering reflections. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the reflection texture. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00109">109</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 109</span>{ <span class="keywordflow">return</span> reflection_texture_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8d993ac51d86d09c2b03b612ed914a74" name="a8d993ac51d86d09c2b03b612ed914a74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d993ac51d86d09c2b03b612ed914a74">&#9670;&#160;</a></span>get_refraction_texture()</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="classrender__texture__class.html">render_texture_class</a> * application_class::get_refraction_texture </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 refraction texture used for rendering water effects. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the refraction texture. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00104">104</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 104</span>{ <span class="keywordflow">return</span> refraction_texture_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="acc0c095b41d72833d974229cc64d0689" name="acc0c095b41d72833d974229cc64d0689"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc0c095b41d72833d974229cc64d0689">&#9670;&#160;</a></span>get_render_count()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int application_class::get_render_count </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 number of objects rendered in the current frame. </p><dl class="section return"><dt>Returns</dt><dd></dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00388">388</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 388</span>{ <span class="keywordflow">return</span> render_count_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3ec69cb088888911ab1e32490c39f3e6" name="a3ec69cb088888911ab1e32490c39f3e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ec69cb088888911ab1e32490c39f3e6">&#9670;&#160;</a></span>get_render_texture()</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="classrender__texture__class.html">render_texture_class</a> * application_class::get_render_texture </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 display plane used for rendering. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the display plane. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00099">99</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 99</span>{ <span class="keywordflow">return</span> render_texture_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a69a84a1345d56bb8d81e7d3427ce969e" name="a69a84a1345d56bb8d81e7d3427ce969e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69a84a1345d56bb8d81e7d3427ce969e">&#9670;&#160;</a></span>get_scene_texture()</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="classrender__texture__class.html">render_texture_class</a> * application_class::get_scene_texture </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 scene texture, which is used for rendering the scene. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the scene texture. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00094">94</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 94</span>{ <span class="keywordflow">return</span> scene_texture_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a468b1ed714bae99f4f2fcf7a93407bfb" name="a468b1ed714bae99f4f2fcf7a93407bfb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a468b1ed714bae99f4f2fcf7a93407bfb">&#9670;&#160;</a></span>get_screen_height()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int application_class::get_screen_height </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the screen height. </p><dl class="section return"><dt>Returns</dt><dd>The height of the screen in pixels as an integer. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01288">1288</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1289</span>{</div>
<div class="line"><span class="lineno"> 1290</span> <span class="keywordflow">return</span> GetSystemMetrics(SM_CYSCREEN);</div>
<div class="line"><span class="lineno"> 1291</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae4bf8de77c3edaac71aaba75193c3be9" name="ae4bf8de77c3edaac71aaba75193c3be9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4bf8de77c3edaac71aaba75193c3be9">&#9670;&#160;</a></span>get_screen_width()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int application_class::get_screen_width </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the screen width. </p><dl class="section return"><dt>Returns</dt><dd>The width of the screen in pixels as an integer. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01283">1283</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1284</span>{</div>
<div class="line"><span class="lineno"> 1285</span> <span class="keywordflow">return</span> GetSystemMetrics(SM_CXSCREEN);</div>
<div class="line"><span class="lineno"> 1286</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="afea1cdf2706dc45cdae0396b7948f2b0" name="afea1cdf2706dc45cdae0396b7948f2b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afea1cdf2706dc45cdae0396b7948f2b0">&#9670;&#160;</a></span>get_should_quit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool application_class::get_should_quit </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 should_quit flag. This flag indicates whether the application should quit. </p><dl class="section return"><dt>Returns</dt><dd>The should_quit flag as a boolean. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00283">283</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 283</span>{ <span class="keywordflow">return</span> should_quit_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad724a8b8867f487bc602406ae20e1301" name="ad724a8b8867f487bc602406ae20e1301"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad724a8b8867f487bc602406ae20e1301">&#9670;&#160;</a></span>get_speed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float application_class::get_speed </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 speed value. An old value used for the demo spinning object. This value is not used in the current implementation. </p><dl class="section return"><dt>Returns</dt><dd>The speed value as a float. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00180">180</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 180</span>{ <span class="keywordflow">return</span> speed_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="adfd9213758db871e03aada83dee961b3" name="adfd9213758db871e03aada83dee961b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfd9213758db871e03aada83dee961b3">&#9670;&#160;</a></span>get_stats()</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="classstats.html">stats</a> * application_class::get_stats </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 Stats manager instance. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to the Stats manager instance. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00428">428</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 428</span>{ <span class="keywordflow">return</span> stats_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad757f3dc7ad49b74643fca7947889ed6" name="ad757f3dc7ad49b74643fca7947889ed6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad757f3dc7ad49b74643fca7947889ed6">&#9670;&#160;</a></span>get_sun_light()</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="classlight__class.html">light_class</a> * application_class::get_sun_light </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 sun light in the scene. </p><dl class="section return"><dt>Returns</dt><dd>The sun light as a pointer to a <a class="el" href="classlight__class.html">light_class</a> object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00276">276</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 276</span>{ <span class="keywordflow">return</span> sun_light_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="afe1ff7bf39935cae054c8f3743e923e1" name="afe1ff7bf39935cae054c8f3743e923e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe1ff7bf39935cae054c8f3743e923e1">&#9670;&#160;</a></span>get_terrain_entity_count()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int application_class::get_terrain_entity_count </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of entities with the ObjectType set as Terrain in the scene. </p><dl class="section return"><dt>Returns</dt><dd>The count of terrain entities as an integer. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l02074">2074</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 2075</span>{</div>
<div class="line"><span class="lineno"> 2076</span> std::lock_guard&lt;std::mutex&gt; lock(objects_mutex_);</div>
<div class="line"><span class="lineno"> 2077</span> <span class="keywordtype">int</span> terrainCount = 0;</div>
<div class="line"><span class="lineno"> 2078</span> </div>
<div class="line"><span class="lineno"> 2079</span> <span class="comment">// Get all entities with the Terrain type</span></div>
<div class="line"><span class="lineno"> 2080</span> <span class="keyword">auto</span> entities_with_terrain = entity_manager_-&gt;GetEntitiesWithComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 2081</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; entity : entities_with_terrain) {</div>
<div class="line"><span class="lineno"> 2082</span> <span class="keyword">auto</span> identity = entity-&gt;GetComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 2083</span> <span class="keywordflow">if</span> (identity &amp;&amp; identity-&gt;GetType() == ecs::ObjectType::Terrain) {</div>
<div class="line"><span class="lineno"> 2084</span> terrainCount++;</div>
<div class="line"><span class="lineno"> 2085</span> }</div>
<div class="line"><span class="lineno"> 2086</span> }</div>
<div class="line"><span class="lineno"> 2087</span> </div>
<div class="line"><span class="lineno"> 2088</span> <span class="keywordflow">return</span> terrainCount;</div>
<div class="line"><span class="lineno"> 2089</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa79efde57fb87b64bf95b47ee87c3bff" name="aa79efde57fb87b64bf95b47ee87c3bff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa79efde57fb87b64bf95b47ee87c3bff">&#9670;&#160;</a></span>get_vsync()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool application_class::get_vsync </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 V-sync state. </p><dl class="section return"><dt>Returns</dt><dd>The V-sync state as a boolean. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00315">315</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 315</span>{ <span class="keywordflow">return</span> vsync_enabled_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2f6b5156b585944bb912d93fa1595af2" name="a2f6b5156b585944bb912d93fa1595af2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f6b5156b585944bb912d93fa1595af2">&#9670;&#160;</a></span>get_w_folder()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::filesystem::path application_class::get_w_folder </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 working folder of the engine. </p><dl class="section return"><dt>Returns</dt><dd>The working folder as a std::filesystem::path. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00216">216</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 216</span>{ <span class="keywordflow">return</span> w_folder_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3c76d728525b1ee4558a41383f9f2217" name="a3c76d728525b1ee4558a41383f9f2217"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c76d728525b1ee4558a41383f9f2217">&#9670;&#160;</a></span>get_window_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ImVec2 application_class::get_window_size </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 window size for an ImGui window. This isn't used in the current implementation. </p><dl class="section return"><dt>Returns</dt><dd>The window size as an ImVec2. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00350">350</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 350</span>{ <span class="keywordflow">return</span> window_size_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3be4f6532857c72283450ce43907f309" name="a3be4f6532857c72283450ce43907f309"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3be4f6532857c72283450ce43907f309">&#9670;&#160;</a></span>initialize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool application_class::initialize </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>screen_width</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>screen_height</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">HWND</td> <td class="paramname"><span class="paramname"><em>hwdn</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>is_vulkan</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>initialize the application with the given parameters.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">screen_width</td><td>The width of the screen. </td></tr>
<tr><td class="paramname">screen_height</td><td>The height of the screen. </td></tr>
<tr><td class="paramname">hwdn</td><td>The handle to the window. </td></tr>
<tr><td class="paramname">is_vulkan</td><td>Whether to use Vulkan for rendering. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the initialization was successful, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l00070">70</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 71</span>{</div>
<div class="line"><span class="lineno"> 72</span> </div>
<div class="line"><span class="lineno"> 73</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Initializing application class&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Initialize);</div>
<div class="line"><span class="lineno"> 74</span> </div>
<div class="line"><span class="lineno"> 75</span> <span class="keywordflow">try</span> </div>
<div class="line"><span class="lineno"> 76</span> {</div>
<div class="line"><span class="lineno"> 77</span> <span class="keywordtype">char</span> mouseString1[32], mouseString2[32], mouseString3[32];</div>
<div class="line"><span class="lineno"> 78</span> <span class="keywordtype">char</span> modelFilename[128], renderString[32];</div>
<div class="line"><span class="lineno"> 79</span> <span class="keywordtype">char</span> bitmapFilename[128];</div>
<div class="line"><span class="lineno"> 80</span> <span class="keywordtype">char</span> spriteFilename[128];</div>
<div class="line"><span class="lineno"> 81</span> <span class="keywordtype">char</span> fpsString[32];</div>
<div class="line"><span class="lineno"> 82</span> <span class="keywordtype">bool</span> result;</div>
<div class="line"><span class="lineno"> 83</span> HRESULT Hresult;</div>
<div class="line"><span class="lineno"> 84</span> </div>
<div class="line"><span class="lineno"> 85</span> <span class="comment">// create entity manager</span></div>
<div class="line"><span class="lineno"> 86</span> entity_manager_ = std::make_unique&lt;ecs::EntityManager&gt;();</div>
<div class="line"><span class="lineno"> 87</span> </div>
<div class="line"><span class="lineno"> 88</span> screen_width_ = screenWidth;</div>
<div class="line"><span class="lineno"> 89</span> screen_height_ = screenHeight;</div>
<div class="line"><span class="lineno"> 90</span> </div>
<div class="line"><span class="lineno"> 91</span> <a class="code hl_function" href="#a40392869f0ff57982fef8098dd3354fe">set_hwnd</a>(hwnd);</div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_function" href="#a7faa4a3a5150086acaec8bc223a4bf7e">set_windowed</a>(full_screen);</div>
<div class="line"><span class="lineno"> 93</span> <a class="code hl_function" href="#ae5ed92985e95d9f34a152cae2d7345d7">set_screen_height</a>(screenHeight);</div>
<div class="line"><span class="lineno"> 94</span> <a class="code hl_function" href="#aca66fefd8c7c473e2700a69f13a4cb6b">set_screen_width</a>(screenWidth);</div>
<div class="line"><span class="lineno"> 95</span> </div>
<div class="line"><span class="lineno"> 96</span> <span class="comment">// Create the Direct3D object.</span></div>
<div class="line"><span class="lineno"> 97</span> direct_3d_ = <span class="keyword">new</span> <a class="code hl_class" href="classd__3d__class.html">d_3d_class</a>;</div>
<div class="line"><span class="lineno"> 98</span> <span class="keywordflow">if</span> (!direct_3d_)</div>
<div class="line"><span class="lineno"> 99</span> {</div>
<div class="line"><span class="lineno"> 100</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not create the Direct3D object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 101</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 102</span> }</div>
<div class="line"><span class="lineno"> 103</span> </div>
<div class="line"><span class="lineno"> 104</span> result = direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#aeba928a71d4440004fff00603ed06658">initialize</a>(screen_width_, screen_height_, vsync_enabled_, hwnd, full_screen, screen_depth, screen_near);</div>
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 106</span> {</div>
<div class="line"><span class="lineno"> 107</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize Direct3D&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 108</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 109</span> }</div>
<div class="line"><span class="lineno"> 110</span> </div>
<div class="line"><span class="lineno"> 111</span> <span class="comment">// Create the camera object.</span></div>
<div class="line"><span class="lineno"> 112</span> camera_ = <span class="keyword">new</span> <a class="code hl_class" href="classcamera__class.html">camera_class</a>;</div>
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">if</span> (!camera_)</div>
<div class="line"><span class="lineno"> 114</span> {</div>
<div class="line"><span class="lineno"> 115</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not create the camera object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 116</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 117</span> }</div>
<div class="line"><span class="lineno"> 118</span> </div>
<div class="line"><span class="lineno"> 119</span> sun_camera_ = <span class="keyword">new</span> <a class="code hl_class" href="classcamera__class.html">camera_class</a>;</div>
<div class="line"><span class="lineno"> 120</span> <span class="keywordflow">if</span> (!sun_camera_)</div>
<div class="line"><span class="lineno"> 121</span> {</div>
<div class="line"><span class="lineno"> 122</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not create the sun camera object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 123</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 124</span> }</div>
<div class="line"><span class="lineno"> 125</span> </div>
<div class="line"><span class="lineno"> 126</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a4b9ac7f98297d2007abd1ed3d326d381">set_position</a>(0.0f,0.0f,0.0f);</div>
<div class="line"><span class="lineno"> 127</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a410c4bbfd5ba10d0785f5ac9178f9b3f">set_rotation</a>(0.0f, 0.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 128</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a0820187f209f9628e6b2a8af34d71057">render</a>();</div>
<div class="line"><span class="lineno"> 129</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#ac17736821f337ce7fd52b9857095de68">get_view_matrix</a>(base_view_matrix_);</div>
<div class="line"><span class="lineno"> 130</span> </div>
<div class="line"><span class="lineno"> 131</span> <span class="comment">// Set the initial position of the camera.</span></div>
<div class="line"><span class="lineno"> 132</span> camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a4b9ac7f98297d2007abd1ed3d326d381">set_position</a>(0.0f, 0.0f, -12.0f);</div>
<div class="line"><span class="lineno"> 133</span> camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a410c4bbfd5ba10d0785f5ac9178f9b3f">set_rotation</a>(0.0f, 0.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 134</span> camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a0820187f209f9628e6b2a8af34d71057">render</a>();</div>
<div class="line"><span class="lineno"> 135</span> camera_-&gt;<a class="code hl_function" href="classcamera__class.html#ac17736821f337ce7fd52b9857095de68">get_view_matrix</a>(base_view_matrix_);</div>
<div class="line"><span class="lineno"> 136</span> </div>
<div class="line"><span class="lineno"> 137</span> active_camera_ = camera_;</div>
<div class="line"><span class="lineno"> 138</span> </div>
<div class="line"><span class="lineno"> 139</span> <span class="comment">// Create and initialize the font shader object.</span></div>
<div class="line"><span class="lineno"> 140</span> font_shader_ = <span class="keyword">new</span> <a class="code hl_class" href="classfont__shader__class.html">font_shader_class</a>;</div>
<div class="line"><span class="lineno"> 141</span> </div>
<div class="line"><span class="lineno"> 142</span> result = font_shader_-&gt;initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), hwnd);</div>
<div class="line"><span class="lineno"> 143</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 144</span> {</div>
<div class="line"><span class="lineno"> 145</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the font shader object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 146</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 147</span> }</div>
<div class="line"><span class="lineno"> 148</span> </div>
<div class="line"><span class="lineno"> 149</span> <span class="comment">// Create and initialize the font object.</span></div>
<div class="line"><span class="lineno"> 150</span> font_ = <span class="keyword">new</span> <a class="code hl_class" href="classfont__class.html">font_class</a>;</div>
<div class="line"><span class="lineno"> 151</span> </div>
<div class="line"><span class="lineno"> 152</span> result = font_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), 0);</div>
<div class="line"><span class="lineno"> 153</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 154</span> {</div>
<div class="line"><span class="lineno"> 155</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the font object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 156</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 157</span> }</div>
<div class="line"><span class="lineno"> 158</span> </div>
<div class="line"><span class="lineno"> 159</span> <span class="comment">// Create and initialize the render to texture object.</span></div>
<div class="line"><span class="lineno"> 160</span> render_texture_ = <span class="keyword">new</span> <a class="code hl_class" href="classrender__texture__class.html">render_texture_class</a>;</div>
<div class="line"><span class="lineno"> 161</span> </div>
<div class="line"><span class="lineno"> 162</span> result = render_texture_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), 256, 256, screen_depth, screen_near, 1);</div>
<div class="line"><span class="lineno"> 163</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 164</span> {</div>
<div class="line"><span class="lineno"> 165</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the render texture object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 166</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 167</span> }</div>
<div class="line"><span class="lineno"> 168</span> </div>
<div class="line"><span class="lineno"> 169</span> <span class="comment">//ImVec2 availableSize = ImGui::GetContentRegionAvail();</span></div>
<div class="line"><span class="lineno"> 170</span> </div>
<div class="line"><span class="lineno"> 171</span> <span class="comment">// Create and initialize the scene render to texture object.</span></div>
<div class="line"><span class="lineno"> 172</span> scene_texture_ = <span class="keyword">new</span> <a class="code hl_class" href="classrender__texture__class.html">render_texture_class</a>();</div>
<div class="line"><span class="lineno"> 173</span> result = scene_texture_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), 256, 256, screen_depth, screen_near, 1);</div>
<div class="line"><span class="lineno"> 174</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 175</span> {</div>
<div class="line"><span class="lineno"> 176</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the render texture object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 177</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 178</span> }</div>
<div class="line"><span class="lineno"> 179</span> </div>
<div class="line"><span class="lineno"> 180</span> <span class="comment">// Create and initialize the display plane object.</span></div>
<div class="line"><span class="lineno"> 181</span> display_plane_ = <span class="keyword">new</span> <a class="code hl_class" href="classdisplay__plane__class.html">display_plane_class</a>;</div>
<div class="line"><span class="lineno"> 182</span> </div>
<div class="line"><span class="lineno"> 183</span> result = display_plane_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), 1.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 184</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 185</span> {</div>
<div class="line"><span class="lineno"> 186</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the display plane object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 187</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 188</span> }</div>
<div class="line"><span class="lineno"> 189</span> </div>
<div class="line"><span class="lineno"> 190</span> </div>
<div class="line"><span class="lineno"> 191</span> <span class="comment">// Set the sprite info file we will be using.</span></div>
<div class="line"><span class="lineno"> 192</span> <span class="comment">//</span></div>
<div class="line"><span class="lineno"> 193</span> strcpy_s(spriteFilename, <span class="stringliteral">&quot;sprite_data_01.txt&quot;</span>);</div>
<div class="line"><span class="lineno"> 194</span> </div>
<div class="line"><span class="lineno"> 195</span> <span class="comment">// Create and initialize the sprite object.</span></div>
<div class="line"><span class="lineno"> 196</span> sprite_ = <span class="keyword">new</span> <a class="code hl_class" href="classsprite__class.html">sprite_class</a>;</div>
<div class="line"><span class="lineno"> 197</span> </div>
<div class="line"><span class="lineno"> 198</span> result = sprite_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), screenWidth, screenHeight, spriteFilename, 50, 50);</div>
<div class="line"><span class="lineno"> 199</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 200</span> {</div>
<div class="line"><span class="lineno"> 201</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the sprite object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 202</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 203</span> }</div>
<div class="line"><span class="lineno"> 204</span> </div>
<div class="line"><span class="lineno"> 205</span> <span class="comment">// Set the initial mouse strings.</span></div>
<div class="line"><span class="lineno"> 206</span> strcpy_s(mouseString1, <span class="stringliteral">&quot;Mouse X: 0&quot;</span>);</div>
<div class="line"><span class="lineno"> 207</span> strcpy_s(mouseString2, <span class="stringliteral">&quot;Mouse Y: 0&quot;</span>);</div>
<div class="line"><span class="lineno"> 208</span> strcpy_s(mouseString3, <span class="stringliteral">&quot;Mouse Button: No&quot;</span>);</div>
<div class="line"><span class="lineno"> 209</span> </div>
<div class="line"><span class="lineno"> 210</span> <span class="comment">// Create and initialize the text objects for the mouse strings.</span></div>
<div class="line"><span class="lineno"> 211</span> mouse_strings_ = <span class="keyword">new</span> <a class="code hl_class" href="classtext__class.html">text_class</a>[3];</div>
<div class="line"><span class="lineno"> 212</span> </div>
<div class="line"><span class="lineno"> 213</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div>
<div class="line"><span class="lineno"> 214</span> {</div>
<div class="line"><span class="lineno"> 215</span> <span class="keywordtype">int</span> y = 10 + (i * 25);</div>
<div class="line"><span class="lineno"> 216</span> result = mouse_strings_[i].Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), screenWidth, screenHeight, 32, font_, mouseString1, 10, y, 1.0f, 1.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 217</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 218</span> {</div>
<div class="line"><span class="lineno"> 219</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the mouse strings&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 220</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 221</span> }</div>
<div class="line"><span class="lineno"> 222</span> }</div>
<div class="line"><span class="lineno"> 223</span> </div>
<div class="line"><span class="lineno"> 224</span> <span class="comment">// Set the file name of the bitmap file.</span></div>
<div class="line"><span class="lineno"> 225</span> strcpy_s(bitmapFilename, <span class="stringliteral">&quot;assets/Texture/stone01.tga&quot;</span>);</div>
<div class="line"><span class="lineno"> 226</span> </div>
<div class="line"><span class="lineno"> 227</span> <span class="comment">// Create and initialize the bitmap object.</span></div>
<div class="line"><span class="lineno"> 228</span> bitmap_ = <span class="keyword">new</span> <a class="code hl_class" href="classbitmap__class.html">bitmap_class</a>;</div>
<div class="line"><span class="lineno"> 229</span> </div>
<div class="line"><span class="lineno"> 230</span> result = bitmap_-&gt;initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), screenWidth, screenHeight, bitmapFilename, 50, 50);</div>
<div class="line"><span class="lineno"> 231</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 232</span> {</div>
<div class="line"><span class="lineno"> 233</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the bitmap object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 234</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 235</span> }</div>
<div class="line"><span class="lineno"> 236</span> </div>
<div class="line"><span class="lineno"> 237</span> <span class="comment">// Set the file name of the model.</span></div>
<div class="line"><span class="lineno"> 238</span> strcpy_s(modelFilename, <span class="stringliteral">&quot;assets/Model/TXT/cube.txt&quot;</span>);</div>
<div class="line"><span class="lineno"> 239</span> </div>
<div class="line"><span class="lineno"> 240</span> <span class="comment">// Charger les textures_</span></div>
<div class="line"><span class="lineno"> 241</span> std::vector&lt;std::wstring&gt; textureFilenames = {</div>
<div class="line"><span class="lineno"> 242</span> L<span class="stringliteral">&quot;assets/Texture/stone01.png&quot;</span></div>
<div class="line"><span class="lineno"> 243</span> };</div>
<div class="line"><span class="lineno"> 244</span> </div>
<div class="line"><span class="lineno"> 245</span> <a class="code hl_struct" href="struct_texture_container.html">TextureContainer</a> CubeTextures;</div>
<div class="line"><span class="lineno"> 246</span> </div>
<div class="line"><span class="lineno"> 247</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; textureFilename : textureFilenames)</div>
<div class="line"><span class="lineno"> 248</span> {</div>
<div class="line"><span class="lineno"> 249</span> ID3D11ShaderResourceView* texture = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 250</span> Hresult = DirectX::CreateWICTextureFromFile(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), textureFilename.c_str(), <span class="keyword">nullptr</span>, &amp;texture);</div>
<div class="line"><span class="lineno"> 251</span> <span class="keywordflow">if</span> (FAILED(Hresult))</div>
<div class="line"><span class="lineno"> 252</span> {</div>
<div class="line"><span class="lineno"> 253</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Failed to load texture: &quot;</span> + std::string(textureFilename.begin(), textureFilename.end()), __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 254</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 255</span> }</div>
<div class="line"><span class="lineno"> 256</span> CubeTextures.diffuse.push_back(texture);</div>
<div class="line"><span class="lineno"> 257</span> }</div>
<div class="line"><span class="lineno"> 258</span> </div>
<div class="line"><span class="lineno"> 259</span> <span class="comment">// Create and initialize the model object.</span></div>
<div class="line"><span class="lineno"> 260</span> model_ = <span class="keyword">new</span> <a class="code hl_class" href="classmodel__class.html">model_class</a>;</div>
<div class="line"><span class="lineno"> 261</span> </div>
<div class="line"><span class="lineno"> 262</span> </div>
<div class="line"><span class="lineno"> 263</span> result = model_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), modelFilename, CubeTextures);</div>
<div class="line"><span class="lineno"> 264</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 265</span> {</div>
<div class="line"><span class="lineno"> 266</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the model object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 267</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 268</span> }</div>
<div class="line"><span class="lineno"> 269</span> </div>
<div class="line"><span class="lineno"> 270</span> <span class="comment">// Create and initialize the light object.</span></div>
<div class="line"><span class="lineno"> 271</span> m_light_ = <span class="keyword">new</span> <a class="code hl_class" href="classlight__class.html">light_class</a>;</div>
<div class="line"><span class="lineno"> 272</span> </div>
<div class="line"><span class="lineno"> 273</span> m_light_-&gt;SetDiffuseColor(1.0f, 1.0f, 1.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 274</span> m_light_-&gt;SetDirection(0.0f, 0.0f, -1.0f);</div>
<div class="line"><span class="lineno"> 275</span> m_light_-&gt;SetAmbientColor(0.15f, 0.15f, 0.15f, 1.0f);</div>
<div class="line"><span class="lineno"> 276</span> m_light_-&gt;SetSpecularColor(1.0f, 1.0f, 1.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 277</span> m_light_-&gt;SetSpecularPower(16.0f);</div>
<div class="line"><span class="lineno"> 278</span> </div>
<div class="line"><span class="lineno"> 279</span> <span class="comment">// Set the number of lights we will use.</span></div>
<div class="line"><span class="lineno"> 280</span> num_lights_ = 4;</div>
<div class="line"><span class="lineno"> 281</span> <span class="comment">// Create and initialize the light objects array.</span></div>
<div class="line"><span class="lineno"> 282</span> lights_.resize(num_lights_);</div>
<div class="line"><span class="lineno"> 283</span> </div>
<div class="line"><span class="lineno"> 284</span> lights_[0] = <span class="keyword">new</span> <a class="code hl_class" href="classlight__class.html">light_class</a>;</div>
<div class="line"><span class="lineno"> 285</span> lights_[0]-&gt;SetDiffuseColor(1.0f, 1.0f, 1.0f, 1.0f); <span class="comment">// White</span></div>
<div class="line"><span class="lineno"> 286</span> lights_[0]-&gt;SetDirection(0.0f, 0.0f, -1.0f);</div>
<div class="line"><span class="lineno"> 287</span> lights_[0]-&gt;SetAmbientColor(0.15f, 0.15f, 0.15f, 1.0f);</div>
<div class="line"><span class="lineno"> 288</span> lights_[0]-&gt;SetSpecularColor(1.0f, 1.0f, 1.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 289</span> lights_[0]-&gt;SetSpecularPower(16.0f);</div>
<div class="line"><span class="lineno"> 290</span> lights_[0]-&gt;SetPosition(10.0f, 7.0f, -5.0f);</div>
<div class="line"><span class="lineno"> 291</span> </div>
<div class="line"><span class="lineno"> 292</span> lights_[1] = <span class="keyword">new</span> <a class="code hl_class" href="classlight__class.html">light_class</a>;</div>
<div class="line"><span class="lineno"> 293</span> lights_[1]-&gt;SetDiffuseColor(1.0f, 0.0f, 0.0f, 1.0f); <span class="comment">// Red</span></div>
<div class="line"><span class="lineno"> 294</span> lights_[1]-&gt;SetDirection(0.0f, 0.0f, -1.0f);</div>
<div class="line"><span class="lineno"> 295</span> lights_[1]-&gt;SetAmbientColor(0.15f, 0.15f, 0.15f, 1.0f);</div>
<div class="line"><span class="lineno"> 296</span> lights_[1]-&gt;SetSpecularColor(1.0f, 0.0f, 0.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 297</span> lights_[1]-&gt;SetSpecularPower(16.0f);</div>
<div class="line"><span class="lineno"> 298</span> lights_[1]-&gt;SetPosition(-10.0f, 7.0f, -5.0f);</div>
<div class="line"><span class="lineno"> 299</span> </div>
<div class="line"><span class="lineno"> 300</span> lights_[2] = <span class="keyword">new</span> <a class="code hl_class" href="classlight__class.html">light_class</a>;</div>
<div class="line"><span class="lineno"> 301</span> lights_[2]-&gt;SetDiffuseColor(0.0f, 1.0f, 0.0f, 1.0f); <span class="comment">// Green</span></div>
<div class="line"><span class="lineno"> 302</span> lights_[2]-&gt;SetDirection(0.0f, 0.0f, -1.0f);</div>
<div class="line"><span class="lineno"> 303</span> lights_[2]-&gt;SetAmbientColor(0.15f, 0.15f, 0.15f, 1.0f);</div>
<div class="line"><span class="lineno"> 304</span> lights_[2]-&gt;SetSpecularColor(0.0f, 1.0f, 0.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 305</span> lights_[2]-&gt;SetSpecularPower(16.0f);</div>
<div class="line"><span class="lineno"> 306</span> lights_[2]-&gt;SetPosition(10.0f, 7.0f, 5.0f);</div>
<div class="line"><span class="lineno"> 307</span> </div>
<div class="line"><span class="lineno"> 308</span> lights_[3] = <span class="keyword">new</span> <a class="code hl_class" href="classlight__class.html">light_class</a>;</div>
<div class="line"><span class="lineno"> 309</span> lights_[3]-&gt;SetDiffuseColor(0.0f, 0.0f, 1.0f, 1.0f); <span class="comment">// Blue</span></div>
<div class="line"><span class="lineno"> 310</span> lights_[3]-&gt;SetDirection(0.0f, 0.0f, -1.0f);</div>
<div class="line"><span class="lineno"> 311</span> lights_[3]-&gt;SetAmbientColor(0.15f, 0.15f, 0.15f, 1.0f);</div>
<div class="line"><span class="lineno"> 312</span> lights_[3]-&gt;SetSpecularColor(0.0f, 0.0f, 1.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 313</span> lights_[3]-&gt;SetSpecularPower(16.0f);</div>
<div class="line"><span class="lineno"> 314</span> lights_[3]-&gt;SetPosition(-10.0f, 7.0f, 5.0f);</div>
<div class="line"><span class="lineno"> 315</span> </div>
<div class="line"><span class="lineno"> 316</span> <span class="comment">// ------------------------------------------------------------- //</span></div>
<div class="line"><span class="lineno"> 317</span> <span class="comment">// ----------------------- || THE SUN || ----------------------- //</span></div>
<div class="line"><span class="lineno"> 318</span> <span class="comment">// ------------------------------------------------------------- //</span></div>
<div class="line"><span class="lineno"> 319</span> </div>
<div class="line"><span class="lineno"> 320</span> sun_light_ = <span class="keyword">new</span> <a class="code hl_class" href="classlight__class.html">light_class</a>;</div>
<div class="line"><span class="lineno"> 321</span> sun_light_-&gt;SetDiffuseColor(1.0f, 1.0f, 1.0f, 1.0f); <span class="comment">// White</span></div>
<div class="line"><span class="lineno"> 322</span> sun_light_-&gt;SetDirection(0.0f, -1.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 323</span> sun_light_-&gt;SetAmbientColor(0.15f, 0.15f, 0.15f, 1.0f);</div>
<div class="line"><span class="lineno"> 324</span> sun_light_-&gt;SetPosition(0.0f, 100.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 325</span> sun_light_-&gt;SetIntensity(1.0f);</div>
<div class="line"><span class="lineno"> 326</span> </div>
<div class="line"><span class="lineno"> 327</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a4b9ac7f98297d2007abd1ed3d326d381">set_position</a>(sun_light_-&gt;GetPosition().x, sun_light_-&gt;GetPosition().y, sun_light_-&gt;GetPosition().z);</div>
<div class="line"><span class="lineno"> 328</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a410c4bbfd5ba10d0785f5ac9178f9b3f">set_rotation</a>(0.0f, 0.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 329</span> sun_camera_-&gt;<a class="code hl_function" href="classcamera__class.html#a0820187f209f9628e6b2a8af34d71057">render</a>();</div>
<div class="line"><span class="lineno"> 330</span> </div>
<div class="line"><span class="lineno"> 331</span> <span class="comment">// Create and initialize the normal map shader object.</span></div>
<div class="line"><span class="lineno"> 332</span> shader_manager_ = <span class="keyword">new</span> <a class="code hl_class" href="classshader__manager__class.html">shader_manager_class</a>;</div>
<div class="line"><span class="lineno"> 333</span> </div>
<div class="line"><span class="lineno"> 334</span> result = shader_manager_-&gt;initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), hwnd);</div>
<div class="line"><span class="lineno"> 335</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 336</span> {</div>
<div class="line"><span class="lineno"> 337</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the shader manager object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 338</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 339</span> }</div>
<div class="line"><span class="lineno"> 340</span> </div>
<div class="line"><span class="lineno"> 341</span> <span class="comment">// Set the initial render count string.</span></div>
<div class="line"><span class="lineno"> 342</span> strcpy_s(renderString, <span class="stringliteral">&quot;render Count: 0&quot;</span>);</div>
<div class="line"><span class="lineno"> 343</span> </div>
<div class="line"><span class="lineno"> 344</span> <span class="comment">// Create and initialize the text object for the render count string.</span></div>
<div class="line"><span class="lineno"> 345</span> render_count_string_ = <span class="keyword">new</span> <a class="code hl_class" href="classtext__class.html">text_class</a>;</div>
<div class="line"><span class="lineno"> 346</span> </div>
<div class="line"><span class="lineno"> 347</span> result = render_count_string_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), screenWidth, screenHeight, 32, font_, renderString, 10, 10, 1.0f, 1.0f, 1.0f);</div>
<div class="line"><span class="lineno"> 348</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 349</span> {</div>
<div class="line"><span class="lineno"> 350</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the render count string&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 351</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 352</span> }</div>
<div class="line"><span class="lineno"> 353</span> </div>
<div class="line"><span class="lineno"> 354</span> <span class="comment">// Create and initialize the model list object.</span></div>
<div class="line"><span class="lineno"> 355</span> model_list_ = <span class="keyword">new</span> <a class="code hl_class" href="class_model_list_class.html">ModelListClass</a>;</div>
<div class="line"><span class="lineno"> 356</span> model_list_-&gt;Initialize(25);</div>
<div class="line"><span class="lineno"> 357</span> </div>
<div class="line"><span class="lineno"> 358</span> <span class="comment">// Charger les textures_ initiales pour bath_model_</span></div>
<div class="line"><span class="lineno"> 359</span> std::vector&lt;std::wstring&gt; bathTextures = {</div>
<div class="line"><span class="lineno"> 360</span> L<span class="stringliteral">&quot;assets/Texture/marble01.png&quot;</span></div>
<div class="line"><span class="lineno"> 361</span> };</div>
<div class="line"><span class="lineno"> 362</span> </div>
<div class="line"><span class="lineno"> 363</span> <a class="code hl_struct" href="struct_texture_container.html">TextureContainer</a> BathTextures;</div>
<div class="line"><span class="lineno"> 364</span> </div>
<div class="line"><span class="lineno"> 365</span> textures.clear();</div>
<div class="line"><span class="lineno"> 366</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; textureFilename : bathTextures)</div>
<div class="line"><span class="lineno"> 367</span> {</div>
<div class="line"><span class="lineno"> 368</span> ID3D11ShaderResourceView* texture = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 369</span> Hresult = DirectX::CreateWICTextureFromFile(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), textureFilename.c_str(), <span class="keyword">nullptr</span>, &amp;texture);</div>
<div class="line"><span class="lineno"> 370</span> <span class="keywordflow">if</span> (FAILED(Hresult))</div>
<div class="line"><span class="lineno"> 371</span> {</div>
<div class="line"><span class="lineno"> 372</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Failed to load texture: &quot;</span> + std::string(textureFilename.begin(), textureFilename.end()), __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 373</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 374</span> }</div>
<div class="line"><span class="lineno"> 375</span> BathTextures.diffuse.push_back(texture);</div>
<div class="line"><span class="lineno"> 376</span> }</div>
<div class="line"><span class="lineno"> 377</span> </div>
<div class="line"><span class="lineno"> 378</span> <span class="comment">// Set the file name of the bath model.</span></div>
<div class="line"><span class="lineno"> 379</span> strcpy_s(modelFilename, <span class="stringliteral">&quot;assets/Model/TXT/bath.txt&quot;</span>);</div>
<div class="line"><span class="lineno"> 380</span> </div>
<div class="line"><span class="lineno"> 381</span> <span class="comment">// Create and initialize the bath model object.</span></div>
<div class="line"><span class="lineno"> 382</span> bath_model_ = <span class="keyword">new</span> <a class="code hl_class" href="classmodel__class.html">model_class</a>;</div>
<div class="line"><span class="lineno"> 383</span> </div>
<div class="line"><span class="lineno"> 384</span> result = bath_model_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), modelFilename, BathTextures);</div>
<div class="line"><span class="lineno"> 385</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 386</span> {</div>
<div class="line"><span class="lineno"> 387</span> MessageBox(hwnd, L<span class="stringliteral">&quot;Could not initialize the bath model object.&quot;</span>, L<span class="stringliteral">&quot;Error&quot;</span>, MB_OK);</div>
<div class="line"><span class="lineno"> 388</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 389</span> }</div>
<div class="line"><span class="lineno"> 390</span> </div>
<div class="line"><span class="lineno"> 391</span> <span class="comment">// Set the file names of the water model.</span></div>
<div class="line"><span class="lineno"> 392</span> strcpy_s(modelFilename, <span class="stringliteral">&quot;assets/Model/TXT/water.txt&quot;</span>);</div>
<div class="line"><span class="lineno"> 393</span> <span class="comment">// replace first element with the new filename</span></div>
<div class="line"><span class="lineno"> 394</span> std::vector&lt;std::wstring&gt; waterTextures = {</div>
<div class="line"><span class="lineno"> 395</span> L<span class="stringliteral">&quot;assets/Texture/water01.png&quot;</span></div>
<div class="line"><span class="lineno"> 396</span> };</div>
<div class="line"><span class="lineno"> 397</span> </div>
<div class="line"><span class="lineno"> 398</span> <a class="code hl_struct" href="struct_texture_container.html">TextureContainer</a> WaterTextures;</div>
<div class="line"><span class="lineno"> 399</span> </div>
<div class="line"><span class="lineno"> 400</span> textures.clear();</div>
<div class="line"><span class="lineno"> 401</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; textureFilename : waterTextures)</div>
<div class="line"><span class="lineno"> 402</span> {</div>
<div class="line"><span class="lineno"> 403</span> ID3D11ShaderResourceView* texture = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 404</span> Hresult = DirectX::CreateWICTextureFromFile(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), textureFilename.c_str(), <span class="keyword">nullptr</span>, &amp;texture);</div>
<div class="line"><span class="lineno"> 405</span> <span class="keywordflow">if</span> (FAILED(Hresult))</div>
<div class="line"><span class="lineno"> 406</span> {</div>
<div class="line"><span class="lineno"> 407</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Failed to load texture: &quot;</span> + std::string(textureFilename.begin(), textureFilename.end()), __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 408</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 409</span> }</div>
<div class="line"><span class="lineno"> 410</span> WaterTextures.diffuse.push_back(texture);</div>
<div class="line"><span class="lineno"> 411</span> }</div>
<div class="line"><span class="lineno"> 412</span> </div>
<div class="line"><span class="lineno"> 413</span> <span class="comment">// Create and initialize the water model object.</span></div>
<div class="line"><span class="lineno"> 414</span> water_model_ = <span class="keyword">new</span> <a class="code hl_class" href="classmodel__class.html">model_class</a>;</div>
<div class="line"><span class="lineno"> 415</span> </div>
<div class="line"><span class="lineno"> 416</span> result = water_model_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), modelFilename, WaterTextures);</div>
<div class="line"><span class="lineno"> 417</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 418</span> {</div>
<div class="line"><span class="lineno"> 419</span> MessageBox(hwnd, L<span class="stringliteral">&quot;Could not initialize the water model object.&quot;</span>, L<span class="stringliteral">&quot;Error&quot;</span>, MB_OK);</div>
<div class="line"><span class="lineno"> 420</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 421</span> }</div>
<div class="line"><span class="lineno"> 422</span> </div>
<div class="line"><span class="lineno"> 423</span> <span class="comment">// Create and initialize the refraction render to texture object.</span></div>
<div class="line"><span class="lineno"> 424</span> refraction_texture_ = <span class="keyword">new</span> <a class="code hl_class" href="classrender__texture__class.html">render_texture_class</a>;</div>
<div class="line"><span class="lineno"> 425</span> </div>
<div class="line"><span class="lineno"> 426</span> result = refraction_texture_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), screenWidth, screenHeight, screen_depth, screen_near, 1);</div>
<div class="line"><span class="lineno"> 427</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 428</span> {</div>
<div class="line"><span class="lineno"> 429</span> MessageBox(hwnd, L<span class="stringliteral">&quot;Could not initialize the refraction render texture object.&quot;</span>, L<span class="stringliteral">&quot;Error&quot;</span>, MB_OK);</div>
<div class="line"><span class="lineno"> 430</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 431</span> }</div>
<div class="line"><span class="lineno"> 432</span> </div>
<div class="line"><span class="lineno"> 433</span> <span class="comment">// Create and initialize the reflection render to texture object.</span></div>
<div class="line"><span class="lineno"> 434</span> reflection_texture_ = <span class="keyword">new</span> <a class="code hl_class" href="classrender__texture__class.html">render_texture_class</a>;</div>
<div class="line"><span class="lineno"> 435</span> </div>
<div class="line"><span class="lineno"> 436</span> result = reflection_texture_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), screenWidth, screenHeight, screen_depth, screen_near, 1);</div>
<div class="line"><span class="lineno"> 437</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 438</span> {</div>
<div class="line"><span class="lineno"> 439</span> MessageBox(hwnd, L<span class="stringliteral">&quot;Could not initialize the reflection render texture object.&quot;</span>, L<span class="stringliteral">&quot;Error&quot;</span>, MB_OK);</div>
<div class="line"><span class="lineno"> 440</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 441</span> }</div>
<div class="line"><span class="lineno"> 442</span> </div>
<div class="line"><span class="lineno"> 443</span> <span class="comment">// Set the height of the water.</span></div>
<div class="line"><span class="lineno"> 444</span> water_height_ = -9.25f;</div>
<div class="line"><span class="lineno"> 445</span> </div>
<div class="line"><span class="lineno"> 446</span> <span class="comment">// initialize the position of the water.</span></div>
<div class="line"><span class="lineno"> 447</span> water_translation_ = 100.0f;</div>
<div class="line"><span class="lineno"> 448</span> </div>
<div class="line"><span class="lineno"> 449</span> <span class="comment">// Create and initialize the timer object.</span></div>
<div class="line"><span class="lineno"> 450</span> timer_ = <span class="keyword">new</span> <a class="code hl_class" href="classtimer__class.html">timer_class</a>;</div>
<div class="line"><span class="lineno"> 451</span> </div>
<div class="line"><span class="lineno"> 452</span> result = timer_-&gt;Initialize();</div>
<div class="line"><span class="lineno"> 453</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 454</span> {</div>
<div class="line"><span class="lineno"> 455</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the timer object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 456</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 457</span> }</div>
<div class="line"><span class="lineno"> 458</span> </div>
<div class="line"><span class="lineno"> 459</span> <span class="comment">// Create the position class object.</span></div>
<div class="line"><span class="lineno"> 460</span> position_ = <span class="keyword">new</span> <a class="code hl_class" href="classposition__class.html">position_class</a>;</div>
<div class="line"><span class="lineno"> 461</span> </div>
<div class="line"><span class="lineno"> 462</span> <span class="comment">// Create and initialize the fps object.</span></div>
<div class="line"><span class="lineno"> 463</span> fps_ = <span class="keyword">new</span> <a class="code hl_class" href="classfps__class.html">fps_class</a>();</div>
<div class="line"><span class="lineno"> 464</span> </div>
<div class="line"><span class="lineno"> 465</span> fps_-&gt;Initialize();</div>
<div class="line"><span class="lineno"> 466</span> </div>
<div class="line"><span class="lineno"> 467</span> <span class="comment">// Set the initial fps and fps string.</span></div>
<div class="line"><span class="lineno"> 468</span> previous_fps_ = -1;</div>
<div class="line"><span class="lineno"> 469</span> strcpy_s(fpsString, <span class="stringliteral">&quot;Fps: 0&quot;</span>);</div>
<div class="line"><span class="lineno"> 470</span> </div>
<div class="line"><span class="lineno"> 471</span> <span class="comment">// Create and initialize the text object for the fps string.</span></div>
<div class="line"><span class="lineno"> 472</span> fps_string_ = <span class="keyword">new</span> <a class="code hl_class" href="classtext__class.html">text_class</a>;</div>
<div class="line"><span class="lineno"> 473</span> </div>
<div class="line"><span class="lineno"> 474</span> result = fps_string_-&gt;Initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a4ad87066c014351689f12981234beadb">get_device_context</a>(), screenWidth, screenHeight, 32, font_, fpsString, 10, 10, 0.0f, 1.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 475</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 476</span> {</div>
<div class="line"><span class="lineno"> 477</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the fps string&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 478</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 479</span> }</div>
<div class="line"><span class="lineno"> 480</span> </div>
<div class="line"><span class="lineno"> 481</span> shadow_map_ = <span class="keyword">new</span> <a class="code hl_class" href="classshadow__map.html">shadow_map</a>();</div>
<div class="line"><span class="lineno"> 482</span> <span class="keywordflow">if</span> (!shadow_map_-&gt;initialize(direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#a0979aea3c4bb6815908fbe188fc1c67e">get_device</a>(), 2048, 2048))</div>
<div class="line"><span class="lineno"> 483</span> {</div>
<div class="line"><span class="lineno"> 484</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the shadow map object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 485</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 486</span> }</div>
<div class="line"><span class="lineno"> 487</span> </div>
<div class="line"><span class="lineno"> 488</span> stats_ = <span class="keyword">new</span> <a class="code hl_class" href="classstats.html">stats</a>();</div>
<div class="line"><span class="lineno"> 489</span> <span class="keywordflow">if</span> (!stats_-&gt;initialize(<span class="keyword">this</span>))</div>
<div class="line"><span class="lineno"> 490</span> {</div>
<div class="line"><span class="lineno"> 491</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not initialize the stats object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 492</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 493</span> }</div>
<div class="line"><span class="lineno"> 494</span> </div>
<div class="line"><span class="lineno"> 495</span> physics_ = <span class="keyword">new</span> <a class="code hl_class" href="classphysics.html">physics</a>;</div>
<div class="line"><span class="lineno"> 496</span> </div>
<div class="line"><span class="lineno"> 497</span> physics_thread_ = std::thread(&amp;<a class="code hl_function" href="#aa583e172e6a2d45cb9b4841634b9eea4">application_class::physics_thread_function</a>, <span class="keyword">this</span>);</div>
<div class="line"><span class="lineno"> 498</span> </div>
<div class="line"><span class="lineno"> 499</span> <span class="comment">//ConstructSkyboxWithPlanes();</span></div>
<div class="line"><span class="lineno"> 500</span> <a class="code hl_class" href="class_skybox.html">Skybox</a>* skybox = <span class="keyword">new</span> <a class="code hl_class" href="class_skybox.html">Skybox</a>;</div>
<div class="line"><span class="lineno"> 501</span> skybox-&gt;<a class="code hl_function" href="class_skybox.html#af048306ba3fc893e485393452e8af429">Initialize</a>(direct_3d_);</div>
<div class="line"><span class="lineno"> 502</span> skybox_.push_back(skybox-&gt;<a class="code hl_function" href="class_skybox.html#a583a0753edede891759ecb62cf82a86f">ConstructSkybox</a>(<span class="keyword">this</span>));</div>
<div class="line"><span class="lineno"> 503</span> </div>
<div class="line"><span class="lineno"> 504</span> culling_active_ = <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 505</span> culling_thread_ = std::thread(&amp;application_class::culling_thread_function, <span class="keyword">this</span>);</div>
<div class="line"><span class="lineno"> 506</span> </div>
<div class="line"><span class="lineno"> 507</span> }</div>
<div class="line"><span class="lineno"> 508</span> <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception&amp; e)</div>
<div class="line"><span class="lineno"> 509</span> {</div>
<div class="line"><span class="lineno"> 510</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(std::string(<span class="stringliteral">&quot;Exception caught during initialization: &quot;</span>) + e.what(), __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 511</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 512</span> }</div>
<div class="line"><span class="lineno"> 513</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Application class initialized&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Initialize);</div>
<div class="line"><span class="lineno"> 514</span> </div>
<div class="line"><span class="lineno"> 515</span> </div>
<div class="line"><span class="lineno"> 516</span> </div>
<div class="line"><span class="lineno"> 517</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 518</span>}</div>
<div class="ttc" id="aclass_model_list_class_html"><div class="ttname"><a href="class_model_list_class.html">ModelListClass</a></div><div class="ttdef"><b>Definition</b> <a href="_modellistclass_8h_source.html#l00015">Modellistclass.h:16</a></div></div>
<div class="ttc" id="aclass_skybox_html"><div class="ttname"><a href="class_skybox.html">Skybox</a></div><div class="ttdef"><b>Definition</b> <a href="_skybox_8h_source.html#l00007">Skybox.h:8</a></div></div>
<div class="ttc" id="aclass_skybox_html_a583a0753edede891759ecb62cf82a86f"><div class="ttname"><a href="class_skybox.html#a583a0753edede891759ecb62cf82a86f">Skybox::ConstructSkybox</a></div><div class="ttdeci">object * ConstructSkybox(application_class *app)</div><div class="ttdef"><b>Definition</b> <a href="_skybox_8cpp_source.html#l00026">Skybox.cpp:26</a></div></div>
<div class="ttc" id="aclass_skybox_html_af048306ba3fc893e485393452e8af429"><div class="ttname"><a href="class_skybox.html#af048306ba3fc893e485393452e8af429">Skybox::Initialize</a></div><div class="ttdeci">void Initialize(d_3d_class *d3dClassRef)</div><div class="ttdef"><b>Definition</b> <a href="_skybox_8cpp_source.html#l00021">Skybox.cpp:21</a></div></div>
<div class="ttc" id="aclassapplication__class_html_a40392869f0ff57982fef8098dd3354fe"><div class="ttname"><a href="#a40392869f0ff57982fef8098dd3354fe">application_class::set_hwnd</a></div><div class="ttdeci">void set_hwnd(HWND hwnd)</div><div class="ttdef"><b>Definition</b> <a href="application__class_8h_source.html#l00326">application_class.h:326</a></div></div>
<div class="ttc" id="aclassapplication__class_html_a7faa4a3a5150086acaec8bc223a4bf7e"><div class="ttname"><a href="#a7faa4a3a5150086acaec8bc223a4bf7e">application_class::set_windowed</a></div><div class="ttdeci">void set_windowed(bool windowed)</div><div class="ttdef"><b>Definition</b> <a href="application__class_8h_source.html#l00337">application_class.h:337</a></div></div>
<div class="ttc" id="aclassapplication__class_html_aa583e172e6a2d45cb9b4841634b9eea4"><div class="ttname"><a href="#aa583e172e6a2d45cb9b4841634b9eea4">application_class::physics_thread_function</a></div><div class="ttdeci">void physics_thread_function()</div><div class="ttdoc">Thread function for handling physics updates. this function will run in a separate thread to handle p...</div><div class="ttdef"><b>Definition</b> <a href="application__class_8cpp_source.html#l01978">application_class.cpp:1978</a></div></div>
<div class="ttc" id="aclassapplication__class_html_aca66fefd8c7c473e2700a69f13a4cb6b"><div class="ttname"><a href="#aca66fefd8c7c473e2700a69f13a4cb6b">application_class::set_screen_width</a></div><div class="ttdeci">void set_screen_width(int screen_width)</div><div class="ttdef"><b>Definition</b> <a href="application__class_8cpp_source.html#l01765">application_class.cpp:1765</a></div></div>
<div class="ttc" id="aclassapplication__class_html_ae5ed92985e95d9f34a152cae2d7345d7"><div class="ttname"><a href="#ae5ed92985e95d9f34a152cae2d7345d7">application_class::set_screen_height</a></div><div class="ttdeci">void set_screen_height(int screen_height)</div><div class="ttdef"><b>Definition</b> <a href="application__class_8cpp_source.html#l01758">application_class.cpp:1758</a></div></div>
<div class="ttc" id="aclassbitmap__class_html"><div class="ttname"><a href="classbitmap__class.html">bitmap_class</a></div><div class="ttdef"><b>Definition</b> <a href="bitmap__class_8h_source.html#l00021">bitmap_class.h:22</a></div></div>
<div class="ttc" id="aclasscamera__class_html"><div class="ttname"><a href="classcamera__class.html">camera_class</a></div><div class="ttdef"><b>Definition</b> <a href="camera__class_8h_source.html#l00018">camera_class.h:19</a></div></div>
<div class="ttc" id="aclassd__3d__class_html"><div class="ttname"><a href="classd__3d__class.html">d_3d_class</a></div><div class="ttdef"><b>Definition</b> <a href="d__3d__class_8h_source.html#l00030">d_3d_class.h:31</a></div></div>
<div class="ttc" id="aclassd__3d__class_html_aeba928a71d4440004fff00603ed06658"><div class="ttname"><a href="classd__3d__class.html#aeba928a71d4440004fff00603ed06658">d_3d_class::initialize</a></div><div class="ttdeci">virtual bool initialize(int, int, bool, HWND, bool, float, float)</div><div class="ttdoc">Initializes the Direct3D device and related resources.</div><div class="ttdef"><b>Definition</b> <a href="d__3d__class_8cpp_source.html#l00033">d_3d_class.cpp:33</a></div></div>
<div class="ttc" id="aclassdisplay__plane__class_html"><div class="ttname"><a href="classdisplay__plane__class.html">display_plane_class</a></div><div class="ttdef"><b>Definition</b> <a href="display__plane__class_8h_source.html#l00014">display_plane_class.h:15</a></div></div>
<div class="ttc" id="aclassfont__class_html"><div class="ttname"><a href="classfont__class.html">font_class</a></div><div class="ttdef"><b>Definition</b> <a href="font__class_8h_source.html#l00022">font_class.h:23</a></div></div>
<div class="ttc" id="aclassfont__shader__class_html"><div class="ttname"><a href="classfont__shader__class.html">font_shader_class</a></div><div class="ttdef"><b>Definition</b> <a href="font__shader__class_8h_source.html#l00020">font_shader_class.h:21</a></div></div>
<div class="ttc" id="aclassfps__class_html"><div class="ttname"><a href="classfps__class.html">fps_class</a></div><div class="ttdef"><b>Definition</b> <a href="fps__class_8h_source.html#l00020">fps_class.h:21</a></div></div>
<div class="ttc" id="aclasslight__class_html"><div class="ttname"><a href="classlight__class.html">light_class</a></div><div class="ttdef"><b>Definition</b> <a href="light__class_8h_source.html#l00019">light_class.h:20</a></div></div>
<div class="ttc" id="aclassmodel__class_html"><div class="ttname"><a href="classmodel__class.html">model_class</a></div><div class="ttdef"><b>Definition</b> <a href="model__class_8h_source.html#l00150">model_class.h:151</a></div></div>
<div class="ttc" id="aclassphysics_html"><div class="ttname"><a href="classphysics.html">physics</a></div><div class="ttdef"><b>Definition</b> <a href="physics_8h_source.html#l00007">physics.h:8</a></div></div>
<div class="ttc" id="aclassposition__class_html"><div class="ttname"><a href="classposition__class.html">position_class</a></div><div class="ttdef"><b>Definition</b> <a href="position__class_8h_source.html#l00014">position_class.h:15</a></div></div>
<div class="ttc" id="aclassrender__texture__class_html"><div class="ttname"><a href="classrender__texture__class.html">render_texture_class</a></div><div class="ttdef"><b>Definition</b> <a href="render__texture__class_8h_source.html#l00020">render_texture_class.h:21</a></div></div>
<div class="ttc" id="aclassshader__manager__class_html"><div class="ttname"><a href="classshader__manager__class.html">shader_manager_class</a></div><div class="ttdef"><b>Definition</b> <a href="shader__manager__class_8h_source.html#l00027">shader_manager_class.h:28</a></div></div>
<div class="ttc" id="aclassshadow__map_html"><div class="ttname"><a href="classshadow__map.html">shadow_map</a></div><div class="ttdef"><b>Definition</b> <a href="shadow__map_8h_source.html#l00005">shadow_map.h:5</a></div></div>
<div class="ttc" id="aclasssprite__class_html"><div class="ttname"><a href="classsprite__class.html">sprite_class</a></div><div class="ttdef"><b>Definition</b> <a href="sprite__class_8h_source.html#l00022">sprite_class.h:23</a></div></div>
<div class="ttc" id="aclassstats_html"><div class="ttname"><a href="classstats.html">stats</a></div><div class="ttdef"><b>Definition</b> <a href="stats_8h_source.html#l00012">stats.h:13</a></div></div>
<div class="ttc" id="aclasstext__class_html"><div class="ttname"><a href="classtext__class.html">text_class</a></div><div class="ttdef"><b>Definition</b> <a href="text__class_8h_source.html#l00012">text_class.h:13</a></div></div>
<div class="ttc" id="aclasstimer__class_html"><div class="ttname"><a href="classtimer__class.html">timer_class</a></div><div class="ttdef"><b>Definition</b> <a href="timer__class_8h_source.html#l00015">timer_class.h:16</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aac1577a0fe08e8007980b6b1778da478" name="aac1577a0fe08e8007980b6b1778da478"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac1577a0fe08e8007980b6b1778da478">&#9670;&#160;</a></span>is_windowed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool application_class::is_windowed </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 application is running in windowed mode. </p><dl class="section return"><dt>Returns</dt><dd>True if the application is in windowed mode, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00332">332</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 332</span>{ <span class="keywordflow">return</span> windowed_; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa583e172e6a2d45cb9b4841634b9eea4" name="aa583e172e6a2d45cb9b4841634b9eea4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa583e172e6a2d45cb9b4841634b9eea4">&#9670;&#160;</a></span>physics_thread_function()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::physics_thread_function </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Thread function for handling physics updates. this function will run in a separate thread to handle physics updates at a fixed rate (50 fps by default). </p>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01978">1978</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1979</span>{</div>
<div class="line"><span class="lineno"> 1980</span> <span class="keyword">auto</span> fixedUpdateInterval = std::chrono::milliseconds(1000 / physics_tick_rate_);</div>
<div class="line"><span class="lineno"> 1981</span> <span class="keyword">auto</span> lastTime = std::chrono::steady_clock::now();</div>
<div class="line"><span class="lineno"> 1982</span> </div>
<div class="line"><span class="lineno"> 1983</span> <span class="keywordflow">while</span> (!should_quit_)</div>
<div class="line"><span class="lineno"> 1984</span> {</div>
<div class="line"><span class="lineno"> 1985</span> <span class="keyword">auto</span> now = std::chrono::steady_clock::now();</div>
<div class="line"><span class="lineno"> 1986</span> <span class="keywordflow">if</span> (now - lastTime &gt;= fixedUpdateInterval)</div>
<div class="line"><span class="lineno"> 1987</span> {</div>
<div class="line"><span class="lineno"> 1988</span> lastTime = now;</div>
<div class="line"><span class="lineno"> 1989</span> </div>
<div class="line"><span class="lineno"> 1990</span> <span class="keywordtype">float</span> deltaTime = 1.0f / <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(physics_tick_rate_);</div>
<div class="line"><span class="lineno"> 1991</span> <span class="keywordtype">bool</span> result = render_physics(deltaTime);</div>
<div class="line"><span class="lineno"> 1992</span> <span class="keywordflow">if</span> (!result)</div>
<div class="line"><span class="lineno"> 1993</span> {</div>
<div class="line"><span class="lineno"> 1994</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Could not render the physics scene&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 1995</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 1996</span> }</div>
<div class="line"><span class="lineno"> 1997</span> }</div>
<div class="line"><span class="lineno"> 1998</span> <span class="comment">// Attendre un peu pour <20>viter de surcharger le CPU</span></div>
<div class="line"><span class="lineno"> 1999</span> std::this_thread::sleep_for(std::chrono::milliseconds(1));</div>
<div class="line"><span class="lineno"> 2000</span> }</div>
<div class="line"><span class="lineno"> 2001</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa0a44059eae0a8df0cb65a7962d598ed" name="aa0a44059eae0a8df0cb65a7962d598ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0a44059eae0a8df0cb65a7962d598ed">&#9670;&#160;</a></span>set_can_fixed_update()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_can_fixed_update </td>
<td>(</td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>can_fixed_update</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>Set the flag indicating whether the application can perform fixed updates. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">can_fixed_update</td><td>True to allow fixed updates, false to disallow them. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00416">416</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 416</span>{ can_fixed_update_ = can_fixed_update; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1bdce1b8c5a23cd60dd35c441a670601" name="a1bdce1b8c5a23cd60dd35c441a670601"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1bdce1b8c5a23cd60dd35c441a670601">&#9670;&#160;</a></span>set_cel_shading()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_cel_shading </td>
<td>(</td>
<td class="paramtype">const bool</td> <td class="paramname"><span class="paramname"><em>enable</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>Set the cel shading mode. This function isn't used in the current implementation. It's an old function that was used for cel shading effects before the complete implementation of the cel shading shader. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">enable</td><td></td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00297">297</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 297</span>{ enable_cel_shading_ = enable; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae214f8bbf3608116f6152a704043a224" name="ae214f8bbf3608116f6152a704043a224"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae214f8bbf3608116f6152a704043a224">&#9670;&#160;</a></span>set_direct_3d()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_direct_3d </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classd__3d__class.html">d_3d_class</a> *</td> <td class="paramname"><span class="paramname"><em>direct_3d</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 class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00088">88</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 88</span>{ direct_3d_ = direct_3d; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="abd47278db9d786b80833c787900c145b" name="abd47278db9d786b80833c787900c145b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd47278db9d786b80833c787900c145b">&#9670;&#160;</a></span>set_frustum()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_frustum </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classfrustum.html">frustum</a> &amp;</td> <td class="paramname"><span class="paramname"><em>frustum</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>Set the frustum used for culling. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">frustum</td><td>The new frustum to set for culling. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00376">376</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 376</span>{ frustum_culling_ = <a class="code hl_class" href="classfrustum.html">frustum</a>; };</div>
<div class="ttc" id="aclassfrustum_html"><div class="ttname"><a href="classfrustum.html">frustum</a></div><div class="ttdef"><b>Definition</b> <a href="frustum_8h_source.html#l00004">frustum.h:5</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a2f41c2a8f5f18aca2859b02e804c7a1a" name="a2f41c2a8f5f18aca2859b02e804c7a1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f41c2a8f5f18aca2859b02e804c7a1a">&#9670;&#160;</a></span>set_frustum_tolerance()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_frustum_tolerance </td>
<td>(</td>
<td class="paramtype">const float</td> <td class="paramname"><span class="paramname"><em>frustum_tolerance</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>Set the frustum culling tolerance. This value is used to determine how much an object must be outside the frustum to be culled. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">frustum_tolerance</td><td>The new frustum culling tolerance as a float. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00405">405</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 405</span>{ frustum_culling_tolerance_ = frustum_tolerance; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a40392869f0ff57982fef8098dd3354fe" name="a40392869f0ff57982fef8098dd3354fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40392869f0ff57982fef8098dd3354fe">&#9670;&#160;</a></span>set_hwnd()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_hwnd </td>
<td>(</td>
<td class="paramtype">HWND</td> <td class="paramname"><span class="paramname"><em>hwnd</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>Set the handle to the window. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hwnd</td><td>The new handle to the window as an HWND. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00326">326</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 326</span>{ hwnd_ = hwnd; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a79b165193754e7361b0a467f5e70c72b" name="a79b165193754e7361b0a467f5e70c72b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79b165193754e7361b0a467f5e70c72b">&#9670;&#160;</a></span>set_light_color()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::set_light_color </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">XMVECTOR</td> <td class="paramname"><span class="paramname"><em>color</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the color for a specific light index. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td>The index of the light to set the color for. </td></tr>
<tr><td class="paramname">color</td><td>The new color as an XMVECTOR. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01738">1738</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1739</span>{</div>
<div class="line"><span class="lineno"> 1740</span> <span class="comment">//convert to XMFLOAT4</span></div>
<div class="line"><span class="lineno"> 1741</span> XMFLOAT4 lightColor;</div>
<div class="line"><span class="lineno"> 1742</span> XMStoreFloat4(&amp;lightColor, color);</div>
<div class="line"><span class="lineno"> 1743</span> </div>
<div class="line"><span class="lineno"> 1744</span> <span class="comment">//set the color</span></div>
<div class="line"><span class="lineno"> 1745</span> lights_[index]-&gt;SetDiffuseColor(lightColor.x, lightColor.y, lightColor.z, 1.0f);</div>
<div class="line"><span class="lineno"> 1746</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1715fe1c06659636399b60e859e6b2ae" name="a1715fe1c06659636399b60e859e6b2ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1715fe1c06659636399b60e859e6b2ae">&#9670;&#160;</a></span>set_light_position()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::set_light_position </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">XMVECTOR</td> <td class="paramname"><span class="paramname"><em>position</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the position for a specific light index. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td>The index of the light to set the position for. </td></tr>
<tr><td class="paramname">position</td><td>The new position as an XMVECTOR. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01748">1748</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1749</span>{</div>
<div class="line"><span class="lineno"> 1750</span> <span class="comment">//convert to XMFLOAT4</span></div>
<div class="line"><span class="lineno"> 1751</span> XMFLOAT4 lightPosition;</div>
<div class="line"><span class="lineno"> 1752</span> XMStoreFloat4(&amp;lightPosition, position);</div>
<div class="line"><span class="lineno"> 1753</span> </div>
<div class="line"><span class="lineno"> 1754</span> <span class="comment">//set the position</span></div>
<div class="line"><span class="lineno"> 1755</span> lights_[index]-&gt;SetPosition(lightPosition.x, lightPosition.y, lightPosition.z);</div>
<div class="line"><span class="lineno"> 1756</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae586e8e9431b6d6168c335a9ae0f08ca" name="ae586e8e9431b6d6168c335a9ae0f08ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae586e8e9431b6d6168c335a9ae0f08ca">&#9670;&#160;</a></span>set_object_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_object_id </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>object_id</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>Set the object ID. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">object_id</td><td>The new object ID as an integer. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00232">232</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 232</span>{ object_id_ = object_id; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4ead7c7ba402fb9619000d201c0cf95f" name="a4ead7c7ba402fb9619000d201c0cf95f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ead7c7ba402fb9619000d201c0cf95f">&#9670;&#160;</a></span>set_path()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_path </td>
<td>(</td>
<td class="paramtype">WCHAR *</td> <td class="paramname"><span class="paramname"><em>path</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>Set the executable path of the engine. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">path</td><td></td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00207">207</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 207</span>{ path_ = path; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8b03fc0a380762e268606262914e55a8" name="a8b03fc0a380762e268606262914e55a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b03fc0a380762e268606262914e55a8">&#9670;&#160;</a></span>set_physics_tick_rate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_physics_tick_rate </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>physics_tick_rate</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>Set the physics tick rate. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">physics_tick_rate</td><td>The new physics tick rate in frames per second. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00151">151</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 151</span>{ physics_tick_rate_ = physics_tick_rate; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1f607939202c0cb805df935eb38dabe7" name="a1f607939202c0cb805df935eb38dabe7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f607939202c0cb805df935eb38dabe7">&#9670;&#160;</a></span>set_render_count()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_render_count </td>
<td>(</td>
<td class="paramtype">const int</td> <td class="paramname"><span class="paramname"><em>render_count</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>Set the number of objects rendered in the current frame. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">render_count</td><td>The new render count as an integer. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00393">393</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 393</span>{ render_count_ = render_count; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae5ed92985e95d9f34a152cae2d7345d7" name="ae5ed92985e95d9f34a152cae2d7345d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5ed92985e95d9f34a152cae2d7345d7">&#9670;&#160;</a></span>set_screen_height()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::set_screen_height </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>screen_height</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the screen height. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">screen_height</td><td>The new height of the screen in pixels as an integer. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01758">1758</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1759</span>{</div>
<div class="line"><span class="lineno"> 1760</span> <span class="comment">// log the new screen height</span></div>
<div class="line"><span class="lineno"> 1761</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Setting screen height to &quot;</span> + std::to_string(height), __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1762</span> screen_height_ = height;</div>
<div class="line"><span class="lineno"> 1763</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aca66fefd8c7c473e2700a69f13a4cb6b" name="aca66fefd8c7c473e2700a69f13a4cb6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca66fefd8c7c473e2700a69f13a4cb6b">&#9670;&#160;</a></span>set_screen_width()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::set_screen_width </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>screen_width</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the screen width. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">screen_width</td><td>The new width of the screen in pixels as an integer. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l01765">1765</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1766</span>{</div>
<div class="line"><span class="lineno"> 1767</span> <span class="comment">// log the new screen width</span></div>
<div class="line"><span class="lineno"> 1768</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Setting screen width to &quot;</span> + std::to_string(width), __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 1769</span> screen_width_ = width;</div>
<div class="line"><span class="lineno"> 1770</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a96068cd56a5bb2ed0c02db3b70272be2" name="a96068cd56a5bb2ed0c02db3b70272be2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96068cd56a5bb2ed0c02db3b70272be2">&#9670;&#160;</a></span>set_should_quit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_should_quit </td>
<td>(</td>
<td class="paramtype">const bool</td> <td class="paramname"><span class="paramname"><em>should_quit</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>Set the should_quit flag. This flag indicates whether the application should quit. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">should_quit</td><td>The new value for the should_quit flag as a boolean. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00289">289</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 289</span>{ should_quit_ = should_quit; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7b1a11759ecc6b80542c7f4f3cf4e8e9" name="a7b1a11759ecc6b80542c7f4f3cf4e8e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b1a11759ecc6b80542c7f4f3cf4e8e9">&#9670;&#160;</a></span>set_speed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_speed </td>
<td>(</td>
<td class="paramtype">const float</td> <td class="paramname"><span class="paramname"><em>speed</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>Set the speed value. An old value used for the demo spinning object. This value is not used in the current implementation. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">speed</td><td>The new speed value as a float. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00187">187</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 187</span>{ this-&gt;speed_ = speed; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a642858510be15dc3d2890ccc5f6df31f" name="a642858510be15dc3d2890ccc5f6df31f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a642858510be15dc3d2890ccc5f6df31f">&#9670;&#160;</a></span>set_vsync()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_vsync </td>
<td>(</td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>vsync</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>Set the V-sync state. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vsync</td><td></td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00303">303</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 303</span> { </div>
<div class="line"><span class="lineno"> 304</span> vsync_enabled_ = vsync; </div>
<div class="line"><span class="lineno"> 305</span> <span class="keywordflow">if</span> (direct_3d_) {</div>
<div class="line"><span class="lineno"> 306</span> direct_3d_-&gt;<a class="code hl_function" href="classd__3d__class.html#ab0f3edaca84f6371ebbdb6291a60b59c">set_vsync</a>(vsync); </div>
<div class="line"><span class="lineno"> 307</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Setting Vsync to &quot;</span> + std::to_string(vsync), __FILE__, __LINE__);</div>
<div class="line"><span class="lineno"> 308</span> }</div>
<div class="line"><span class="lineno"> 309</span> };</div>
<div class="ttc" id="aclassd__3d__class_html_ab0f3edaca84f6371ebbdb6291a60b59c"><div class="ttname"><a href="classd__3d__class.html#ab0f3edaca84f6371ebbdb6291a60b59c">d_3d_class::set_vsync</a></div><div class="ttdeci">void set_vsync(bool vsync)</div><div class="ttdoc">Sets the vertical sync state.</div><div class="ttdef"><b>Definition</b> <a href="d__3d__class_8cpp_source.html#l00771">d_3d_class.cpp:771</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a5dbf967cc3d2a08b07c13b6aa44fafe1" name="a5dbf967cc3d2a08b07c13b6aa44fafe1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5dbf967cc3d2a08b07c13b6aa44fafe1">&#9670;&#160;</a></span>set_w_folder()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_w_folder </td>
<td>(</td>
<td class="paramtype">const std::filesystem::path &amp;</td> <td class="paramname"><span class="paramname"><em>w_folder</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>Set the working folder of the engine. </p>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00211">211</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 211</span>{ w_folder_ = w_folder; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab0418282e11e00cebb3a63747384a24b" name="ab0418282e11e00cebb3a63747384a24b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0418282e11e00cebb3a63747384a24b">&#9670;&#160;</a></span>set_window_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_window_size </td>
<td>(</td>
<td class="paramtype">const ImVec2</td> <td class="paramname"><span class="paramname"><em>size</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>Set the window size for an ImGui window. This isn't used in the current implementation. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td></td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00344">344</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 344</span>{ window_size_ = size; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7faa4a3a5150086acaec8bc223a4bf7e" name="a7faa4a3a5150086acaec8bc223a4bf7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7faa4a3a5150086acaec8bc223a4bf7e">&#9670;&#160;</a></span>set_windowed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void application_class::set_windowed </td>
<td>(</td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>windowed</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>Set the windowed mode state. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">windowed</td><td>True to set the application in windowed mode, false for full screen. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00337">337</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 337</span>{ windowed_ = windowed; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="af2ef20892819f21303002a0f3005e73d" name="af2ef20892819f21303002a0f3005e73d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2ef20892819f21303002a0f3005e73d">&#9670;&#160;</a></span>shutdown()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::shutdown </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Shutdown the application and release resources. </p>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l00520">520</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 521</span>{</div>
<div class="line"><span class="lineno"> 522</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Shutting down application class&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 523</span> </div>
<div class="line"><span class="lineno"> 524</span> <span class="comment">// Release the shader manager object.</span></div>
<div class="line"><span class="lineno"> 525</span> <span class="keywordflow">if</span> (shader_manager_)</div>
<div class="line"><span class="lineno"> 526</span> {</div>
<div class="line"><span class="lineno"> 527</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the shader manager object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 528</span> </div>
<div class="line"><span class="lineno"> 529</span> shader_manager_-&gt;shutdown();</div>
<div class="line"><span class="lineno"> 530</span> <span class="keyword">delete</span> shader_manager_;</div>
<div class="line"><span class="lineno"> 531</span> shader_manager_ = 0;</div>
<div class="line"><span class="lineno"> 532</span> </div>
<div class="line"><span class="lineno"> 533</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Shader manager object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 534</span> }</div>
<div class="line"><span class="lineno"> 535</span> </div>
<div class="line"><span class="lineno"> 536</span> <span class="comment">// Release the reflection render texture object.</span></div>
<div class="line"><span class="lineno"> 537</span> <span class="keywordflow">if</span> (reflection_texture_)</div>
<div class="line"><span class="lineno"> 538</span> {</div>
<div class="line"><span class="lineno"> 539</span> reflection_texture_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 540</span> <span class="keyword">delete</span> reflection_texture_;</div>
<div class="line"><span class="lineno"> 541</span> reflection_texture_ = 0;</div>
<div class="line"><span class="lineno"> 542</span> }</div>
<div class="line"><span class="lineno"> 543</span> </div>
<div class="line"><span class="lineno"> 544</span> <span class="comment">// Release the refraction render texture object.</span></div>
<div class="line"><span class="lineno"> 545</span> <span class="keywordflow">if</span> (refraction_texture_)</div>
<div class="line"><span class="lineno"> 546</span> {</div>
<div class="line"><span class="lineno"> 547</span> refraction_texture_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 548</span> <span class="keyword">delete</span> refraction_texture_;</div>
<div class="line"><span class="lineno"> 549</span> refraction_texture_ = 0;</div>
<div class="line"><span class="lineno"> 550</span> }</div>
<div class="line"><span class="lineno"> 551</span> </div>
<div class="line"><span class="lineno"> 552</span> <span class="comment">// Release the water model object.</span></div>
<div class="line"><span class="lineno"> 553</span> <span class="keywordflow">if</span> (water_model_)</div>
<div class="line"><span class="lineno"> 554</span> {</div>
<div class="line"><span class="lineno"> 555</span> water_model_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 556</span> <span class="keyword">delete</span> water_model_;</div>
<div class="line"><span class="lineno"> 557</span> water_model_ = 0;</div>
<div class="line"><span class="lineno"> 558</span> }</div>
<div class="line"><span class="lineno"> 559</span> </div>
<div class="line"><span class="lineno"> 560</span> <span class="comment">// Release the bath model object.</span></div>
<div class="line"><span class="lineno"> 561</span> <span class="keywordflow">if</span> (bath_model_)</div>
<div class="line"><span class="lineno"> 562</span> {</div>
<div class="line"><span class="lineno"> 563</span> bath_model_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 564</span> <span class="keyword">delete</span> bath_model_;</div>
<div class="line"><span class="lineno"> 565</span> bath_model_ = 0;</div>
<div class="line"><span class="lineno"> 566</span> }</div>
<div class="line"><span class="lineno"> 567</span> <span class="comment">// Release the physics object.</span></div>
<div class="line"><span class="lineno"> 568</span> <span class="keywordflow">if</span> (physics_)</div>
<div class="line"><span class="lineno"> 569</span> {</div>
<div class="line"><span class="lineno"> 570</span> <span class="keyword">delete</span> physics_;</div>
<div class="line"><span class="lineno"> 571</span> physics_ = 0;</div>
<div class="line"><span class="lineno"> 572</span> }</div>
<div class="line"><span class="lineno"> 573</span> </div>
<div class="line"><span class="lineno"> 574</span> <span class="comment">// Release the display plane object.</span></div>
<div class="line"><span class="lineno"> 575</span> <span class="keywordflow">if</span> (display_plane_)</div>
<div class="line"><span class="lineno"> 576</span> {</div>
<div class="line"><span class="lineno"> 577</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the display plane object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 578</span> </div>
<div class="line"><span class="lineno"> 579</span> display_plane_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 580</span> <span class="keyword">delete</span> display_plane_;</div>
<div class="line"><span class="lineno"> 581</span> display_plane_ = 0;</div>
<div class="line"><span class="lineno"> 582</span> </div>
<div class="line"><span class="lineno"> 583</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Display plane object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 584</span> }</div>
<div class="line"><span class="lineno"> 585</span> </div>
<div class="line"><span class="lineno"> 586</span> <span class="comment">// Release the position object.</span></div>
<div class="line"><span class="lineno"> 587</span> <span class="keywordflow">if</span> (position_)</div>
<div class="line"><span class="lineno"> 588</span> {</div>
<div class="line"><span class="lineno"> 589</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the position object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 590</span> </div>
<div class="line"><span class="lineno"> 591</span> <span class="keyword">delete</span> position_;</div>
<div class="line"><span class="lineno"> 592</span> position_ = 0;</div>
<div class="line"><span class="lineno"> 593</span> </div>
<div class="line"><span class="lineno"> 594</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Position object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 595</span> }</div>
<div class="line"><span class="lineno"> 596</span> </div>
<div class="line"><span class="lineno"> 597</span> <span class="comment">// Release the model list object.</span></div>
<div class="line"><span class="lineno"> 598</span> <span class="keywordflow">if</span> (model_list_)</div>
<div class="line"><span class="lineno"> 599</span> {</div>
<div class="line"><span class="lineno"> 600</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the model list object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 601</span> </div>
<div class="line"><span class="lineno"> 602</span> model_list_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 603</span> <span class="keyword">delete</span> model_list_;</div>
<div class="line"><span class="lineno"> 604</span> model_list_ = 0;</div>
<div class="line"><span class="lineno"> 605</span> </div>
<div class="line"><span class="lineno"> 606</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Model list object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 607</span> }</div>
<div class="line"><span class="lineno"> 608</span> </div>
<div class="line"><span class="lineno"> 609</span> <span class="comment">// Release the text objects for the render count string.</span></div>
<div class="line"><span class="lineno"> 610</span> <span class="keywordflow">if</span> (render_count_string_)</div>
<div class="line"><span class="lineno"> 611</span> {</div>
<div class="line"><span class="lineno"> 612</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the render count string object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 613</span> </div>
<div class="line"><span class="lineno"> 614</span> render_count_string_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 615</span> <span class="keyword">delete</span> render_count_string_;</div>
<div class="line"><span class="lineno"> 616</span> render_count_string_ = 0;</div>
<div class="line"><span class="lineno"> 617</span> </div>
<div class="line"><span class="lineno"> 618</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;render count string object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 619</span> }</div>
<div class="line"><span class="lineno"> 620</span> </div>
<div class="line"><span class="lineno"> 621</span> <span class="comment">// Release the text objects for the mouse strings.</span></div>
<div class="line"><span class="lineno"> 622</span> <span class="keywordflow">if</span> (mouse_strings_)</div>
<div class="line"><span class="lineno"> 623</span> {</div>
<div class="line"><span class="lineno"> 624</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the mouse strings&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 625</span> </div>
<div class="line"><span class="lineno"> 626</span> mouse_strings_[0].Shutdown();</div>
<div class="line"><span class="lineno"> 627</span> mouse_strings_[1].Shutdown();</div>
<div class="line"><span class="lineno"> 628</span> mouse_strings_[2].Shutdown();</div>
<div class="line"><span class="lineno"> 629</span> </div>
<div class="line"><span class="lineno"> 630</span> <span class="keyword">delete</span>[] mouse_strings_;</div>
<div class="line"><span class="lineno"> 631</span> mouse_strings_ = 0;</div>
<div class="line"><span class="lineno"> 632</span> </div>
<div class="line"><span class="lineno"> 633</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Mouse strings released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 634</span> }</div>
<div class="line"><span class="lineno"> 635</span> </div>
<div class="line"><span class="lineno"> 636</span> <span class="comment">// Release the text object for the fps string.</span></div>
<div class="line"><span class="lineno"> 637</span> <span class="keywordflow">if</span> (fps_string_)</div>
<div class="line"><span class="lineno"> 638</span> {</div>
<div class="line"><span class="lineno"> 639</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the fps string object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 640</span> </div>
<div class="line"><span class="lineno"> 641</span> fps_string_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 642</span> <span class="keyword">delete</span> fps_string_;</div>
<div class="line"><span class="lineno"> 643</span> fps_string_ = 0;</div>
<div class="line"><span class="lineno"> 644</span> </div>
<div class="line"><span class="lineno"> 645</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Fps string object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 646</span> }</div>
<div class="line"><span class="lineno"> 647</span> </div>
<div class="line"><span class="lineno"> 648</span> <span class="comment">// Release the fps object.</span></div>
<div class="line"><span class="lineno"> 649</span> <span class="keywordflow">if</span> (fps_)</div>
<div class="line"><span class="lineno"> 650</span> {</div>
<div class="line"><span class="lineno"> 651</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the fps object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 652</span> </div>
<div class="line"><span class="lineno"> 653</span> <span class="keyword">delete</span> fps_;</div>
<div class="line"><span class="lineno"> 654</span> fps_ = 0;</div>
<div class="line"><span class="lineno"> 655</span> </div>
<div class="line"><span class="lineno"> 656</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Fps object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 657</span> }</div>
<div class="line"><span class="lineno"> 658</span> </div>
<div class="line"><span class="lineno"> 659</span> <span class="comment">// Release the font object.</span></div>
<div class="line"><span class="lineno"> 660</span> <span class="keywordflow">if</span> (font_)</div>
<div class="line"><span class="lineno"> 661</span> {</div>
<div class="line"><span class="lineno"> 662</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the font object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 663</span> </div>
<div class="line"><span class="lineno"> 664</span> font_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 665</span> <span class="keyword">delete</span> font_;</div>
<div class="line"><span class="lineno"> 666</span> font_ = 0;</div>
<div class="line"><span class="lineno"> 667</span> </div>
<div class="line"><span class="lineno"> 668</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Font object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 669</span> }</div>
<div class="line"><span class="lineno"> 670</span> </div>
<div class="line"><span class="lineno"> 671</span> <span class="comment">// Release the font shader object.</span></div>
<div class="line"><span class="lineno"> 672</span> <span class="keywordflow">if</span> (font_shader_)</div>
<div class="line"><span class="lineno"> 673</span> {</div>
<div class="line"><span class="lineno"> 674</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the font shader object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 675</span> </div>
<div class="line"><span class="lineno"> 676</span> font_shader_-&gt;shutdown();</div>
<div class="line"><span class="lineno"> 677</span> <span class="keyword">delete</span> font_shader_;</div>
<div class="line"><span class="lineno"> 678</span> font_shader_ = 0;</div>
<div class="line"><span class="lineno"> 679</span> </div>
<div class="line"><span class="lineno"> 680</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Font shader object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 681</span> }</div>
<div class="line"><span class="lineno"> 682</span> </div>
<div class="line"><span class="lineno"> 683</span> <span class="comment">// Release the timer object.</span></div>
<div class="line"><span class="lineno"> 684</span> <span class="keywordflow">if</span> (timer_)</div>
<div class="line"><span class="lineno"> 685</span> {</div>
<div class="line"><span class="lineno"> 686</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the timer object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 687</span> </div>
<div class="line"><span class="lineno"> 688</span> <span class="keyword">delete</span> timer_;</div>
<div class="line"><span class="lineno"> 689</span> timer_ = 0;</div>
<div class="line"><span class="lineno"> 690</span> </div>
<div class="line"><span class="lineno"> 691</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Timer object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 692</span> }</div>
<div class="line"><span class="lineno"> 693</span> </div>
<div class="line"><span class="lineno"> 694</span> <span class="comment">// Release the sprite object.</span></div>
<div class="line"><span class="lineno"> 695</span> <span class="keywordflow">if</span> (sprite_)</div>
<div class="line"><span class="lineno"> 696</span> {</div>
<div class="line"><span class="lineno"> 697</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the sprite object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 698</span> </div>
<div class="line"><span class="lineno"> 699</span> sprite_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 700</span> <span class="keyword">delete</span> sprite_;</div>
<div class="line"><span class="lineno"> 701</span> sprite_ = 0;</div>
<div class="line"><span class="lineno"> 702</span> </div>
<div class="line"><span class="lineno"> 703</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Sprite object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 704</span> }</div>
<div class="line"><span class="lineno"> 705</span> </div>
<div class="line"><span class="lineno"> 706</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> light : lights_)</div>
<div class="line"><span class="lineno"> 707</span> {</div>
<div class="line"><span class="lineno"> 708</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the light object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 709</span> <span class="keywordflow">if</span> (light)</div>
<div class="line"><span class="lineno"> 710</span> {</div>
<div class="line"><span class="lineno"> 711</span> <span class="keyword">delete</span> light;</div>
<div class="line"><span class="lineno"> 712</span> light = 0;</div>
<div class="line"><span class="lineno"> 713</span> }</div>
<div class="line"><span class="lineno"> 714</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Light object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 715</span> }</div>
<div class="line"><span class="lineno"> 716</span> </div>
<div class="line"><span class="lineno"> 717</span> <span class="comment">// Release the light object.</span></div>
<div class="line"><span class="lineno"> 718</span> <span class="keywordflow">if</span> (m_light_)</div>
<div class="line"><span class="lineno"> 719</span> {</div>
<div class="line"><span class="lineno"> 720</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the light object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 721</span> <span class="keyword">delete</span> m_light_;</div>
<div class="line"><span class="lineno"> 722</span> m_light_ = 0;</div>
<div class="line"><span class="lineno"> 723</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Light object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 724</span> }</div>
<div class="line"><span class="lineno"> 725</span> </div>
<div class="line"><span class="lineno"> 726</span> <span class="comment">// Release the model object.</span></div>
<div class="line"><span class="lineno"> 727</span> <span class="keywordflow">if</span> (model_)</div>
<div class="line"><span class="lineno"> 728</span> {</div>
<div class="line"><span class="lineno"> 729</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the model object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 730</span> model_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 731</span> <span class="keyword">delete</span> model_;</div>
<div class="line"><span class="lineno"> 732</span> model_ = 0;</div>
<div class="line"><span class="lineno"> 733</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Model object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 734</span> }</div>
<div class="line"><span class="lineno"> 735</span> </div>
<div class="line"><span class="lineno"> 736</span> <span class="keywordflow">if</span> (scene_texture_)</div>
<div class="line"><span class="lineno"> 737</span> {</div>
<div class="line"><span class="lineno"> 738</span> scene_texture_-&gt;Shutdown();</div>
<div class="line"><span class="lineno"> 739</span> <span class="keyword">delete</span> scene_texture_;</div>
<div class="line"><span class="lineno"> 740</span> scene_texture_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 741</span> }</div>
<div class="line"><span class="lineno"> 742</span> </div>
<div class="line"><span class="lineno"> 743</span> <span class="keywordflow">if</span> (sun_camera_)</div>
<div class="line"><span class="lineno"> 744</span> {</div>
<div class="line"><span class="lineno"> 745</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Releasing the sun camera object&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 746</span> <span class="keyword">delete</span> sun_camera_;</div>
<div class="line"><span class="lineno"> 747</span> sun_camera_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 748</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Sun camera object released&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 749</span> }</div>
<div class="line"><span class="lineno"> 750</span> </div>
<div class="line"><span class="lineno"> 751</span> <span class="keywordflow">if</span> (shadow_map_) {</div>
<div class="line"><span class="lineno"> 752</span> shadow_map_-&gt;shutdown();</div>
<div class="line"><span class="lineno"> 753</span> <span class="keyword">delete</span> shadow_map_;</div>
<div class="line"><span class="lineno"> 754</span> shadow_map_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 755</span> }</div>
<div class="line"><span class="lineno"> 756</span> </div>
<div class="line"><span class="lineno"> 757</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Application class shut down&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 758</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa453b06f65ab6344907f0c65670de202" name="aa453b06f65ab6344907f0c65670de202"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa453b06f65ab6344907f0c65670de202">&#9670;&#160;</a></span>update_stats_after_modification()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void application_class::update_stats_after_modification </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update the stats after an update in the scene. </p>
<p class="definition">Definition at line <a class="el" href="application__class_8cpp_source.html#l02066">2066</a> of file <a class="el" href="application__class_8cpp_source.html">application_class.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 2067</span>{</div>
<div class="line"><span class="lineno"> 2068</span> <span class="keywordflow">if</span> (stats_)</div>
<div class="line"><span class="lineno"> 2069</span> {</div>
<div class="line"><span class="lineno"> 2070</span> stats_ -&gt; update_geometric_stats();</div>
<div class="line"><span class="lineno"> 2071</span> }</div>
<div class="line"><span class="lineno"> 2072</span>}</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="adce5c4fa8d064856a893bdf010c66dce" name="adce5c4fa8d064856a893bdf010c66dce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adce5c4fa8d064856a893bdf010c66dce">&#9670;&#160;</a></span>textures</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;ID3D11ShaderResourceView*&gt; application_class::textures</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="application__class_8h_source.html#l00533">533</a> of file <a class="el" href="application__class_8h_source.html">application_class.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>enginecustom/src/inc/system/<a class="el" href="application__class_8h_source.html">application_class.h</a></li>
<li>enginecustom/src/src/system/<a class="el" href="application__class_8cpp_source.html">application_class.cpp</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="classapplication__class.html">application_class</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>