Files
Bomberman/Model_8hpp_source.html
2021-06-26 11:31:13 +00:00

214 lines
37 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bomberman: lib/Ray/sources/Model/Model.hpp Source File</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>
<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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bomberman
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- 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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="dir_97e082ce3407cc227854e8f48930bd75.html">Ray</a></li><li class="navelem"><a class="el" href="dir_6a062873ed3e64cc8025242d19396498.html">sources</a></li><li class="navelem"><a class="el" href="dir_79ecb0ce0e948a3a1fecb8bbc85b6cc1.html">Model</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Model.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="Model_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">** EPITECH PROJECT, 2021</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">** Bomberman</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">** File description:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">** Model</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef MODEL_HPP_</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define MODEL_HPP_</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Texture_8hpp.html">Drawables/Texture.hpp</a>&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ADrawable3D_8hpp.html">Drawables/ADrawable3D.hpp</a>&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ModelAnimation_8hpp.html">Model/ModelAnimation.hpp</a>&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Shaders_8hpp.html">Shaders/Shaders.hpp</a>&quot;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;raylib.h&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="AMesh_8hpp.html">Meshes/AMesh.hpp</a>&quot;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;optional&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Cache_8hpp.html">Utils/Cache.hpp</a>&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceRAY_1_1Drawables_1_1Drawables3D.html">RAY::Drawables::Drawables3D</a> {</div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html"> 23</a></span>&#160; <span class="keyword">class </span><a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html">Model</a>: <span class="keyword">public</span> <a class="code" href="classRAY_1_1Drawables_1_1ADrawable3D.html">Drawables::ADrawable3D</a> {</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a14bdaf02a8cfac173b24213bcfae3e53"> 26</a></span>&#160; typedef ::MaterialMapIndex <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a14bdaf02a8cfac173b24213bcfae3e53">MaterialType</a>;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a>(<span class="keyword">const</span> std::string &amp;filePath, <span class="keywordtype">bool</span> lonely = <span class="keyword">false</span>,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; std::optional&lt;std::pair&lt;MaterialType, std::string&gt;&gt; texture = std::nullopt,</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp;scale = <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a>(1, 1, 1),</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">float</span> rotationAngle = 0,</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp;position = {0, 0, 0},</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp;rotationAxis = <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a>(0, 1, 0));</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a>(<span class="keyword">const</span> Mesh::AMesh &amp;mesh,</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::optional&lt;std::pair&lt;MaterialType, std::string&gt;&gt; texture = std::nullopt,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp;scale = <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a>(1, 1, 1),</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">float</span> rotationAngle = 0,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp;position = {0, 0, 0},</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp;rotationAxis = <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a>(0, 1, 0));</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a>(<span class="keyword">const</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a> &amp;model) = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a>&amp; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ae86539dfb5338b900e1251a91d5c4e37">operator=</a>(<span class="keyword">const</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a> &amp;model) = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a180de23e4f2e366b77e8b4a28b554b7a">~Model</a>() <span class="keyword">override</span> = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a6bfa24108eeda19a4383316f0b0a90ba">unloadKeepMeshes</a>();</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a3e4530245a30cb09b2ec4f724b70451b">setAnimation</a>(<span class="keyword">const</span> <a class="code" href="classRAY_1_1ModelAnimation.html">RAY::ModelAnimation</a> &amp;animation);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a2b515d826eecffa17978aae69061a98d">setTextureToMaterial</a>(<a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a14bdaf02a8cfac173b24213bcfae3e53">MaterialType</a> materialType, <span class="keyword">const</span> std::string &amp;texture);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">int</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#adbf8f1e8f62c4b8bb5fc1d017c132055">getBoneCount</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a> &amp;<a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a4f58b7d2c0a5709c2afa311966adbf04">setRotationAngle</a>(<span class="keywordtype">float</span> roationAngle);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">float</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a7762be0d203263b2b9055ed67475cb14">getRotationAngle</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a> &amp;<a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a18c20c76ba3c2b31f0b7dcb2a5af55d2">setRotationAxis</a>(<span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp;rotationAxis);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a10969980437e70743f96178d2be5e317">getRotationAxis</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">Model</a> &amp;<a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ad73398f7ac2707bb118c164f889386c8">setScale</a>(<span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp;scale);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">const</span> <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> &amp; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#af450b0b34b8b04bc29535d94fd2bf4cf">getScale</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#aa93182e649ad1c331245cab3746e1c97">setShader</a>(<span class="keyword">const</span> <a class="code" href="classRAY_1_1Shader.html">RAY::Shader</a> &amp;shader);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a824c0f39f7ca698d8540c5348f143146">resetShader</a>();</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a27002147bc75fafa472ce3b9bf7f056b">drawOn</a>(<a class="code" href="classRAY_1_1Window.html">RAY::Window</a> &amp;) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ad93d4d64ac621fb0b8d05cf3247ae9d8">drawWiresOn</a>(<a class="code" href="classRAY_1_1Window.html">RAY::Window</a> &amp;) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classRAY_1_1Texture.html">Texture</a> &amp;<a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ac16804853b1e708bb77d651ebf9ef869">getTextureByMaterial</a>(<a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a14bdaf02a8cfac173b24213bcfae3e53">MaterialType</a> materialType);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a1769e90ef20601c2e122bebaed737528"> 105</a></span>&#160; std::shared_ptr&lt;::Model&gt; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a1769e90ef20601c2e122bebaed737528">_model</a>;</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#aacf431998d21b936a2edca86791d6a44"> 107</a></span>&#160; std::unordered_map&lt;MaterialType, Texture&gt; <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#aacf431998d21b936a2edca86791d6a44">_textureList</a>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#acf39bcbd5c45dcccf8d3e4e9744cde5e"> 109</a></span>&#160; <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#acf39bcbd5c45dcccf8d3e4e9744cde5e">_rotationAxis</a>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ada107f11175448fbdb81e7019b109aa7"> 111</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ada107f11175448fbdb81e7019b109aa7">_rotationAngle</a>;</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a5cd188a40c88fb4a24292c24ec1d937e"> 113</a></span>&#160; <a class="code" href="classRAY_1_1Vector3.html">RAY::Vector3</a> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a5cd188a40c88fb4a24292c24ec1d937e">_scale</a>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ae36b36299eb2e6702e212d6df72df893"> 115</a></span>&#160; <a class="code" href="classRAY_1_1Shader.html">::Shader</a> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ae36b36299eb2e6702e212d6df72df893">_originalShader</a> = {};</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a05caf3a7d2ebbb20d627ce391b4c8243"> 117</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classRAY_1_1Cache.html">RAY::Cache&lt;::Model&gt;</a> <a class="code" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a05caf3a7d2ebbb20d627ce391b4c8243">_modelsCache</a>;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; INTERNAL:</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a8fb3299e8982fe9c371dc903153c5380"> 121</a></span>&#160; operator ::Model() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;};</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !Model_HPP_ */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassRAY_1_1Vector3_html"><div class="ttname"><a href="classRAY_1_1Vector3.html">RAY::Vector3</a></div><div class="ttdoc">A Three-dimensionnal Vector data type.</div><div class="ttdef"><b>Definition:</b> Vector3.hpp:15</div></div>
<div class="ttc" id="aclassRAY_1_1Texture_html"><div class="ttname"><a href="classRAY_1_1Texture.html">RAY::Texture</a></div><div class="ttdoc">Object representation of a texture.</div><div class="ttdef"><b>Definition:</b> Texture.hpp:19</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_ae36b36299eb2e6702e212d6df72df893"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ae36b36299eb2e6702e212d6df72df893">RAY::Drawables::Drawables3D::Model::_originalShader</a></div><div class="ttdeci">::Shader _originalShader</div><div class="ttdoc">The original shaderId used to disable a shader effect.</div><div class="ttdef"><b>Definition:</b> Model.hpp:115</div></div>
<div class="ttc" id="aCache_8hpp_html"><div class="ttname"><a href="Cache_8hpp.html">Cache.hpp</a></div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a05caf3a7d2ebbb20d627ce391b4c8243"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a05caf3a7d2ebbb20d627ce391b4c8243">RAY::Drawables::Drawables3D::Model::_modelsCache</a></div><div class="ttdeci">static RAY::Cache&lt;::Model &gt; _modelsCache</div><div class="ttdef"><b>Definition:</b> Model.hpp:117</div></div>
<div class="ttc" id="aclassRAY_1_1Window_html"><div class="ttname"><a href="classRAY_1_1Window.html">RAY::Window</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:32</div></div>
<div class="ttc" id="aclassRAY_1_1ModelAnimation_html"><div class="ttname"><a href="classRAY_1_1ModelAnimation.html">RAY::ModelAnimation</a></div><div class="ttdoc">A Holder for Model Animations.</div><div class="ttdef"><b>Definition:</b> ModelAnimation.hpp:16</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a6bfa24108eeda19a4383316f0b0a90ba"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a6bfa24108eeda19a4383316f0b0a90ba">RAY::Drawables::Drawables3D::Model::unloadKeepMeshes</a></div><div class="ttdeci">bool unloadKeepMeshes()</div><div class="ttdoc">Unload model (excluding meshes) from memory (RAM and/or VRAM)</div><div class="ttdef"><b>Definition:</b> Model.cpp:57</div></div>
<div class="ttc" id="aADrawable3D_8hpp_html"><div class="ttname"><a href="ADrawable3D_8hpp.html">ADrawable3D.hpp</a></div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a824c0f39f7ca698d8540c5348f143146"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a824c0f39f7ca698d8540c5348f143146">RAY::Drawables::Drawables3D::Model::resetShader</a></div><div class="ttdeci">void resetShader()</div><div class="ttdoc">Set the original shader (used to disable a shader)</div><div class="ttdef"><b>Definition:</b> Model.cpp:158</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a1769e90ef20601c2e122bebaed737528"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a1769e90ef20601c2e122bebaed737528">RAY::Drawables::Drawables3D::Model::_model</a></div><div class="ttdeci">std::shared_ptr&lt;::Model &gt; _model</div><div class="ttdoc">Raw data from raylib.</div><div class="ttdef"><b>Definition:</b> Model.hpp:105</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_ae86539dfb5338b900e1251a91d5c4e37"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ae86539dfb5338b900e1251a91d5c4e37">RAY::Drawables::Drawables3D::Model::operator=</a></div><div class="ttdeci">Model &amp; operator=(const Model &amp;model)=default</div><div class="ttdoc">A model is assignable.</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a14bdaf02a8cfac173b24213bcfae3e53"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a14bdaf02a8cfac173b24213bcfae3e53">RAY::Drawables::Drawables3D::Model::MaterialType</a></div><div class="ttdeci">::MaterialMapIndex MaterialType</div><div class="ttdef"><b>Definition:</b> Model.hpp:26</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_af450b0b34b8b04bc29535d94fd2bf4cf"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#af450b0b34b8b04bc29535d94fd2bf4cf">RAY::Drawables::Drawables3D::Model::getScale</a></div><div class="ttdeci">const RAY::Vector3 &amp; getScale(void)</div><div class="ttdef"><b>Definition:</b> Model.cpp:123</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a4f58b7d2c0a5709c2afa311966adbf04"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a4f58b7d2c0a5709c2afa311966adbf04">RAY::Drawables::Drawables3D::Model::setRotationAngle</a></div><div class="ttdeci">Model &amp; setRotationAngle(float roationAngle)</div><div class="ttdoc">Set rotation angle.</div><div class="ttdef"><b>Definition:</b> Model.cpp:95</div></div>
<div class="ttc" id="aModelAnimation_8hpp_html"><div class="ttname"><a href="ModelAnimation_8hpp.html">ModelAnimation.hpp</a></div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_ad73398f7ac2707bb118c164f889386c8"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ad73398f7ac2707bb118c164f889386c8">RAY::Drawables::Drawables3D::Model::setScale</a></div><div class="ttdeci">Model &amp; setScale(const RAY::Vector3 &amp;scale)</div><div class="ttdoc">Set Scale.</div><div class="ttdef"><b>Definition:</b> Model.cpp:117</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a180de23e4f2e366b77e8b4a28b554b7a"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a180de23e4f2e366b77e8b4a28b554b7a">RAY::Drawables::Drawables3D::Model::~Model</a></div><div class="ttdeci">~Model() override=default</div><div class="ttdoc">Model destructor, model's data will be deleted if it's the last entity alive.</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_acf39bcbd5c45dcccf8d3e4e9744cde5e"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#acf39bcbd5c45dcccf8d3e4e9744cde5e">RAY::Drawables::Drawables3D::Model::_rotationAxis</a></div><div class="ttdeci">RAY::Vector3 _rotationAxis</div><div class="ttdoc">Rotation property.</div><div class="ttdef"><b>Definition:</b> Model.hpp:109</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1ADrawable3D_html"><div class="ttname"><a href="classRAY_1_1Drawables_1_1ADrawable3D.html">RAY::Drawables::ADrawable3D</a></div><div class="ttdoc">Abstraction of any three-dimensionnal drawable.</div><div class="ttdef"><b>Definition:</b> ADrawable3D.hpp:17</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a10969980437e70743f96178d2be5e317"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a10969980437e70743f96178d2be5e317">RAY::Drawables::Drawables3D::Model::getRotationAxis</a></div><div class="ttdeci">const RAY::Vector3 &amp; getRotationAxis(void)</div><div class="ttdef"><b>Definition:</b> Model.cpp:112</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_ac16804853b1e708bb77d651ebf9ef869"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ac16804853b1e708bb77d651ebf9ef869">RAY::Drawables::Drawables3D::Model::getTextureByMaterial</a></div><div class="ttdeci">Texture &amp; getTextureByMaterial(MaterialType materialType)</div><div class="ttdef"><b>Definition:</b> Model.cpp:80</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_aa93182e649ad1c331245cab3746e1c97"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#aa93182e649ad1c331245cab3746e1c97">RAY::Drawables::Drawables3D::Model::setShader</a></div><div class="ttdeci">void setShader(const RAY::Shader &amp;shader)</div><div class="ttdoc">Set a shader on the model.</div><div class="ttdef"><b>Definition:</b> Model.cpp:152</div></div>
<div class="ttc" id="aTexture_8hpp_html"><div class="ttname"><a href="Texture_8hpp.html">Texture.hpp</a></div></div>
<div class="ttc" id="anamespaceRAY_1_1Drawables_1_1Drawables3D_html"><div class="ttname"><a href="namespaceRAY_1_1Drawables_1_1Drawables3D.html">RAY::Drawables::Drawables3D</a></div><div class="ttdef"><b>Definition:</b> Circle.cpp:10</div></div>
<div class="ttc" id="aAMesh_8hpp_html"><div class="ttname"><a href="AMesh_8hpp.html">AMesh.hpp</a></div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a7762be0d203263b2b9055ed67475cb14"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a7762be0d203263b2b9055ed67475cb14">RAY::Drawables::Drawables3D::Model::getRotationAngle</a></div><div class="ttdeci">float getRotationAngle(void)</div><div class="ttdef"><b>Definition:</b> Model.cpp:101</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a18c20c76ba3c2b31f0b7dcb2a5af55d2"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a18c20c76ba3c2b31f0b7dcb2a5af55d2">RAY::Drawables::Drawables3D::Model::setRotationAxis</a></div><div class="ttdeci">Model &amp; setRotationAxis(const RAY::Vector3 &amp;rotationAxis)</div><div class="ttdoc">Set Rotation Axis.</div><div class="ttdef"><b>Definition:</b> Model.cpp:106</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a988aa2c4ee8c513320285bd458112981"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a988aa2c4ee8c513320285bd458112981">RAY::Drawables::Drawables3D::Model::Model</a></div><div class="ttdeci">Model(const std::string &amp;filePath, bool lonely=false, std::optional&lt; std::pair&lt; MaterialType, std::string &gt;&gt; texture=std::nullopt, const RAY::Vector3 &amp;scale=RAY::Vector3(1, 1, 1), float rotationAngle=0, const RAY::Vector3 &amp;position={0, 0, 0}, const RAY::Vector3 &amp;rotationAxis=RAY::Vector3(0, 1, 0))</div><div class="ttdoc">Create an model, loading a file.</div><div class="ttdef"><b>Definition:</b> Model.cpp:24</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_ad93d4d64ac621fb0b8d05cf3247ae9d8"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ad93d4d64ac621fb0b8d05cf3247ae9d8">RAY::Drawables::Drawables3D::Model::drawWiresOn</a></div><div class="ttdeci">void drawWiresOn(RAY::Window &amp;) override</div><div class="ttdoc">Draw model's wires on window.</div><div class="ttdef"><b>Definition:</b> Model.cpp:138</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_aacf431998d21b936a2edca86791d6a44"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#aacf431998d21b936a2edca86791d6a44">RAY::Drawables::Drawables3D::Model::_textureList</a></div><div class="ttdeci">std::unordered_map&lt; MaterialType, Texture &gt; _textureList</div><div class="ttdoc">The list of textures that can be applied to this model.</div><div class="ttdef"><b>Definition:</b> Model.hpp:107</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_ada107f11175448fbdb81e7019b109aa7"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#ada107f11175448fbdb81e7019b109aa7">RAY::Drawables::Drawables3D::Model::_rotationAngle</a></div><div class="ttdeci">float _rotationAngle</div><div class="ttdoc">Rotation property.</div><div class="ttdef"><b>Definition:</b> Model.hpp:111</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a3e4530245a30cb09b2ec4f724b70451b"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a3e4530245a30cb09b2ec4f724b70451b">RAY::Drawables::Drawables3D::Model::setAnimation</a></div><div class="ttdeci">bool setAnimation(const RAY::ModelAnimation &amp;animation)</div><div class="ttdoc">Update model animation pose.</div><div class="ttdef"><b>Definition:</b> Model.cpp:63</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a27002147bc75fafa472ce3b9bf7f056b"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a27002147bc75fafa472ce3b9bf7f056b">RAY::Drawables::Drawables3D::Model::drawOn</a></div><div class="ttdeci">void drawOn(RAY::Window &amp;) override</div><div class="ttdoc">Draw drawble on window.</div><div class="ttdef"><b>Definition:</b> Model.cpp:128</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a2b515d826eecffa17978aae69061a98d"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a2b515d826eecffa17978aae69061a98d">RAY::Drawables::Drawables3D::Model::setTextureToMaterial</a></div><div class="ttdeci">bool setTextureToMaterial(MaterialType materialType, const std::string &amp;texture)</div><div class="ttdoc">Sets a texture to the Nth material.</div><div class="ttdef"><b>Definition:</b> Model.cpp:71</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html">RAY::Drawables::Drawables3D::Model</a></div><div class="ttdoc">Basic 3D Model type.</div><div class="ttdef"><b>Definition:</b> Model.hpp:23</div></div>
<div class="ttc" id="aclassRAY_1_1Cache_html"><div class="ttname"><a href="classRAY_1_1Cache.html">RAY::Cache</a></div><div class="ttdoc">A templated class used to cache ressources, indexed with a string.</div><div class="ttdef"><b>Definition:</b> Cache.hpp:23</div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_a5cd188a40c88fb4a24292c24ec1d937e"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#a5cd188a40c88fb4a24292c24ec1d937e">RAY::Drawables::Drawables3D::Model::_scale</a></div><div class="ttdeci">RAY::Vector3 _scale</div><div class="ttdoc">Scale of the shape.</div><div class="ttdef"><b>Definition:</b> Model.hpp:113</div></div>
<div class="ttc" id="aclassRAY_1_1Shader_html"><div class="ttname"><a href="classRAY_1_1Shader.html">RAY::Shader</a></div><div class="ttdef"><b>Definition:</b> Shaders.hpp:16</div></div>
<div class="ttc" id="aShaders_8hpp_html"><div class="ttname"><a href="Shaders_8hpp.html">Shaders.hpp</a></div></div>
<div class="ttc" id="aclassRAY_1_1Drawables_1_1Drawables3D_1_1Model_html_adbf8f1e8f62c4b8bb5fc1d017c132055"><div class="ttname"><a href="classRAY_1_1Drawables_1_1Drawables3D_1_1Model.html#adbf8f1e8f62c4b8bb5fc1d017c132055">RAY::Drawables::Drawables3D::Model::getBoneCount</a></div><div class="ttdeci">int getBoneCount() const</div><div class="ttdef"><b>Definition:</b> Model.cpp:90</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>