SpaghettiKart/SceneManager_8h_source.html

264 lines
40 KiB
HTML

<!-- HTML header for doxygen 1.10.0-->
<!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.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Mario Kart 64: src/engine/editor/SceneManager.h 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>
<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" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
<link href="docs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</script>
</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">Mario Kart 64
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<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('SceneManager_8h_source.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="headertitle"><div class="title">SceneManager.h</div></div>
</div><!--header-->
<div class="contents">
<a href="SceneManager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include &lt;libultraship/libultraship.h&gt;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &quot;<a class="code" href="CoreMath_8h.html">CoreMath.h</a>&quot;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &quot;<a class="code" href="Track_8h.html">engine/tracks/Track.h</a>&quot;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;optional&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;nlohmann/json.hpp&gt;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceTrackEditor.html">TrackEditor</a> {</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#aa6a563244a563bd17d12563a23eadba6">SaveLevel</a>(Track* track, <span class="keyword">const</span> TrackInfo* info);</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#af5a960e46705549c4ff5b8f8f55bc21c">LoadTrackDataFromJson</a>(Track* track, <span class="keyword">const</span> std::string&amp; trackPath);</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#a928be70c491755a0f3c0d3d85640d549">LoadTrackInfo</a>(TrackInfo&amp; info, std::shared_ptr&lt;Ship::Archive&gt; archive, std::string sceneFile);</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#a219704236eea5ff0a1a39c0f53f7538c">Load_AddStaticMeshActor</a>(<span class="keyword">const</span> nlohmann::json&amp; actorJson);</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#a9075bc0d22971dfd312b0557e9d6bec8">LoadMinimap</a>(Track* track, std::string filePath);</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#a045e1f94de546859660d3a8b5f32a42e">SetDefaultMinimap</a>(Track* track);</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#afa2ba235a699aec4dd8136258d23586d">SaveActors</a>(nlohmann::json&amp; actorList);</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#aa7689815ab273744923f046207562067">SaveStaticMeshActors</a>(nlohmann::json&amp; actorList);</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#a7ab33e5d4df5a5dc0b3df27c04de6fcc">SaveTour</a>(Track* track, nlohmann::json&amp; tour);</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#a30c8330a0c072d3da8abbff873f05216">SaveFog</a>(nlohmann::json&amp; fog);</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#aeb5d75978b55f270e27829cffe67d2a4">LoadProps</a>(Track* track, nlohmann::json&amp; data);</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#a9080bcebe7f661f02fd863fea0006aee">LoadPaths</a>(Track* track, <span class="keyword">const</span> std::string&amp; trackPath);</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#af77bf8a4a955ca00b2eef049b54f558d">LoadTrackInfoData</a>(TrackInfo&amp; info, nlohmann::json&amp; data);</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#ad5a075fe1664d7de3addb34768b7c60c">LoadActors</a>(Track* track, nlohmann::json&amp; data);</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#a32d30c3e2c08be0ca763f6323bec6df2">LoadStaticMeshActors</a>(Track* track, nlohmann::json&amp; data);</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#aa8ee12b66dfd279a0898c020b34581b2">LoadTour</a>(Track* track, nlohmann::json&amp; data);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#add90fd8e24d64905c489b256d1e849d5">LoadFog</a>(nlohmann::json&amp; data);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="namespaceTrackEditor.html#ad0035fe3dfdf036a30b099d2e25fc414"> 30</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#ad0035fe3dfdf036a30b099d2e25fc414">SpawnActors</a>(std::vector&lt;std::pair&lt;std::string, SpawnParams&gt;&gt; spawnList);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="foldopen" id="foldopen00032" data-start="{" data-end="}">
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b"> 32</a></span> <span class="keyword">inline</span> nlohmann::json <a class="code hl_function" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">ToJson</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structFVector.html">FVector</a>&amp; v) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> {<span class="stringliteral">&quot;x&quot;</span>, v.<a class="code hl_variable" href="structFVector.html#ab32f423016d7857a2fa713e322404b14">x</a>},</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> {<span class="stringliteral">&quot;y&quot;</span>, v.<a class="code hl_variable" href="structFVector.html#af17cfedf5c997cdf6bb88a01b585780f">y</a>},</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> {<span class="stringliteral">&quot;z&quot;</span>, v.<a class="code hl_variable" href="structFVector.html#aca18ae01ad0d620ac2c03e99a8cc936e">z</a>}</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> };</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="foldopen" id="foldopen00040" data-start="{" data-end="}">
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="namespaceTrackEditor.html#adb1d18a124a6ce0b4729028d21f9ee41"> 40</a></span> <span class="keyword">inline</span> nlohmann::json <a class="code hl_function" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">ToJson</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structTourCamera_1_1KeyFrame.html">TourCamera::KeyFrame</a>&amp; kf) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> {<span class="stringliteral">&quot;Pos&quot;</span>, <a class="code hl_function" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">ToJson</a>(kf.<a class="code hl_variable" href="structTourCamera_1_1KeyFrame.html#af99999f4f8e3f06709ea36ae6bd6e878">Pos</a>)},</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> {<span class="stringliteral">&quot;LookAt&quot;</span>, <a class="code hl_function" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">ToJson</a>(kf.<a class="code hl_variable" href="structTourCamera_1_1KeyFrame.html#a6f6ae910ce875f02ac7928ccf9347182">LookAt</a>)},</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> {<span class="stringliteral">&quot;Duration&quot;</span>, kf.<a class="code hl_variable" href="structTourCamera_1_1KeyFrame.html#ab8d790a421aeab4c21dee6c89bb28a41">Duration</a>}</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> };</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> }</div>
</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="foldopen" id="foldopen00048" data-start="{" data-end="}">
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="namespaceTrackEditor.html#a1d8652c5847136a3a49d76549f87c814"> 48</a></span> <span class="keyword">inline</span> nlohmann::json <a class="code hl_function" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">ToJson</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structTourCamera_1_1CameraShot.html">TourCamera::CameraShot</a>&amp; shot) {</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> nlohmann::json <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;StartPos&quot;</span>] = <a class="code hl_function" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">ToJson</a>(shot.<a class="code hl_variable" href="structTourCamera_1_1CameraShot.html#a5125fff3b886ec1d98869b8a0dea972d">Pos</a>);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;StartLookAt&quot;</span>] = <a class="code hl_function" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">ToJson</a>(shot.<a class="code hl_variable" href="structTourCamera_1_1CameraShot.html#a0be879493f0ff7580598d06d2c4ba9f0">LookAt</a>);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// KeyFrames</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> nlohmann::json keyframes = nlohmann::json::array();</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; kf : shot.<a class="code hl_variable" href="structTourCamera_1_1CameraShot.html#aab50f34b49581e388d1648fd874f95a1">Frames</a>) {</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> keyframes.push_back(<a class="code hl_function" href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">ToJson</a>(kf));</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;KeyFrames&quot;</span>] = keyframes;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="foldopen" id="foldopen00063" data-start="{" data-end="}">
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="namespaceTrackEditor.html#afb750ff9f4121279a8ac0eee3878e483"> 63</a></span> <span class="keyword">inline</span> <a class="code hl_struct" href="structFVector.html">FVector</a> <a class="code hl_function" href="namespaceTrackEditor.html#afb750ff9f4121279a8ac0eee3878e483">FromJsonVec</a>(<span class="keyword">const</span> nlohmann::json&amp; <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_struct" href="structFVector.html">FVector</a> v{};</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;x&quot;</span>)) v.<a class="code hl_variable" href="structFVector.html#ab32f423016d7857a2fa713e322404b14">x</a> = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;x&quot;</span>].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;y&quot;</span>)) v.y = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;y&quot;</span>].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;z&quot;</span>)) v.z = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;z&quot;</span>].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">return</span> v;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> }</div>
</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="foldopen" id="foldopen00071" data-start="{" data-end="}">
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="namespaceTrackEditor.html#a99f257ca9eebe29df775acc71a5a0fee"> 71</a></span> <span class="keyword">inline</span> <a class="code hl_struct" href="structTourCamera_1_1KeyFrame.html">TourCamera::KeyFrame</a> <a class="code hl_function" href="namespaceTrackEditor.html#a99f257ca9eebe29df775acc71a5a0fee">FromJsonKeyFrame</a>(<span class="keyword">const</span> nlohmann::json&amp; <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>) {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_struct" href="structTourCamera_1_1KeyFrame.html">TourCamera::KeyFrame</a> kf{};</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;Pos&quot;</span>)) kf.<a class="code hl_variable" href="structTourCamera_1_1KeyFrame.html#af99999f4f8e3f06709ea36ae6bd6e878">Pos</a> = <a class="code hl_function" href="namespaceTrackEditor.html#afb750ff9f4121279a8ac0eee3878e483">FromJsonVec</a>(<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;Pos&quot;</span>]);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;LookAt&quot;</span>)) kf.LookAt = <a class="code hl_function" href="namespaceTrackEditor.html#afb750ff9f4121279a8ac0eee3878e483">FromJsonVec</a>(<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;LookAt&quot;</span>]);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;Duration&quot;</span>)) kf.Duration = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;Duration&quot;</span>].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> kf;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div>
</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="foldopen" id="foldopen00079" data-start="{" data-end="}">
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="namespaceTrackEditor.html#abc28bd8b6f403b63352ed6c32052352b"> 79</a></span> <span class="keyword">inline</span> <a class="code hl_struct" href="structTourCamera_1_1CameraShot.html">TourCamera::CameraShot</a> <a class="code hl_function" href="namespaceTrackEditor.html#abc28bd8b6f403b63352ed6c32052352b">FromJsonCameraShot</a>(<span class="keyword">const</span> nlohmann::json&amp; <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_struct" href="structTourCamera_1_1CameraShot.html">TourCamera::CameraShot</a> shot{};</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;StartPos&quot;</span>)) shot.<a class="code hl_variable" href="structTourCamera_1_1CameraShot.html#a5125fff3b886ec1d98869b8a0dea972d">Pos</a> = <a class="code hl_function" href="namespaceTrackEditor.html#afb750ff9f4121279a8ac0eee3878e483">FromJsonVec</a>(<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;StartPos&quot;</span>]);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;StartLookAt&quot;</span>)) shot.LookAt = <a class="code hl_function" href="namespaceTrackEditor.html#afb750ff9f4121279a8ac0eee3878e483">FromJsonVec</a>(<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;StartLookAt&quot;</span>]);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.contains(<span class="stringliteral">&quot;KeyFrames&quot;</span>) &amp;&amp; <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;KeyFrames&quot;</span>].is_array()) {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; kfJson : <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;KeyFrames&quot;</span>]) {</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> shot.Frames.push_back(<a class="code hl_function" href="namespaceTrackEditor.html#a99f257ca9eebe29df775acc71a5a0fee">FromJsonKeyFrame</a>(kfJson));</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> }</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> }</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">return</span> shot;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> }</div>
</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>}</div>
<div class="ttc" id="aCoreMath_8h_html"><div class="ttname"><a href="CoreMath_8h.html">CoreMath.h</a></div></div>
<div class="ttc" id="aTrack_8h_html"><div class="ttname"><a href="Track_8h.html">Track.h</a></div></div>
<div class="ttc" id="aload_8c_html_aa8c84707b22bdc99b810d3c7d3ec5d52"><div class="ttname"><a href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a></div><div class="ttdeci">#define j</div></div>
<div class="ttc" id="anamespaceTrackEditor_html"><div class="ttname"><a href="namespaceTrackEditor.html">TrackEditor</a></div><div class="ttdef"><b>Definition</b> Collision.cpp:17</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a045e1f94de546859660d3a8b5f32a42e"><div class="ttname"><a href="namespaceTrackEditor.html#a045e1f94de546859660d3a8b5f32a42e">TrackEditor::SetDefaultMinimap</a></div><div class="ttdeci">void SetDefaultMinimap(Track *track)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:224</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a219704236eea5ff0a1a39c0f53f7538c"><div class="ttname"><a href="namespaceTrackEditor.html#a219704236eea5ff0a1a39c0f53f7538c">TrackEditor::Load_AddStaticMeshActor</a></div><div class="ttdeci">void Load_AddStaticMeshActor(const nlohmann::json &amp;actorJson)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:185</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a30c8330a0c072d3da8abbff873f05216"><div class="ttname"><a href="namespaceTrackEditor.html#a30c8330a0c072d3da8abbff873f05216">TrackEditor::SaveFog</a></div><div class="ttdeci">void SaveFog(nlohmann::json &amp;fog)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:314</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a32d30c3e2c08be0ca763f6323bec6df2"><div class="ttname"><a href="namespaceTrackEditor.html#a32d30c3e2c08be0ca763f6323bec6df2">TrackEditor::LoadStaticMeshActors</a></div><div class="ttdeci">void LoadStaticMeshActors(Track *track, nlohmann::json &amp;data)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:416</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a7ab33e5d4df5a5dc0b3df27c04de6fcc"><div class="ttname"><a href="namespaceTrackEditor.html#a7ab33e5d4df5a5dc0b3df27c04de6fcc">TrackEditor::SaveTour</a></div><div class="ttdeci">void SaveTour(Track *track, nlohmann::json &amp;tour)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:304</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a7e0a8e9ee6341698d3385a2fba05b37b"><div class="ttname"><a href="namespaceTrackEditor.html#a7e0a8e9ee6341698d3385a2fba05b37b">TrackEditor::ToJson</a></div><div class="ttdeci">nlohmann::json ToJson(const FVector &amp;v)</div><div class="ttdef"><b>Definition</b> SceneManager.h:32</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a9075bc0d22971dfd312b0557e9d6bec8"><div class="ttname"><a href="namespaceTrackEditor.html#a9075bc0d22971dfd312b0557e9d6bec8">TrackEditor::LoadMinimap</a></div><div class="ttdeci">void LoadMinimap(Track *track, std::string filePath)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:194</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a9080bcebe7f661f02fd863fea0006aee"><div class="ttname"><a href="namespaceTrackEditor.html#a9080bcebe7f661f02fd863fea0006aee">TrackEditor::LoadPaths</a></div><div class="ttdeci">void LoadPaths(Track *track, const std::string &amp;trackPath)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:342</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a928be70c491755a0f3c0d3d85640d549"><div class="ttname"><a href="namespaceTrackEditor.html#a928be70c491755a0f3c0d3d85640d549">TrackEditor::LoadTrackInfo</a></div><div class="ttdeci">void LoadTrackInfo(TrackInfo &amp;info, std::shared_ptr&lt; Ship::Archive &gt; archive, std::string sceneFile)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:153</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_a99f257ca9eebe29df775acc71a5a0fee"><div class="ttname"><a href="namespaceTrackEditor.html#a99f257ca9eebe29df775acc71a5a0fee">TrackEditor::FromJsonKeyFrame</a></div><div class="ttdeci">TourCamera::KeyFrame FromJsonKeyFrame(const nlohmann::json &amp;j)</div><div class="ttdef"><b>Definition</b> SceneManager.h:71</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_aa6a563244a563bd17d12563a23eadba6"><div class="ttname"><a href="namespaceTrackEditor.html#aa6a563244a563bd17d12563a23eadba6">TrackEditor::SaveLevel</a></div><div class="ttdeci">void SaveLevel(Track *track, const TrackInfo *info)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:37</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_aa7689815ab273744923f046207562067"><div class="ttname"><a href="namespaceTrackEditor.html#aa7689815ab273744923f046207562067">TrackEditor::SaveStaticMeshActors</a></div><div class="ttdeci">void SaveStaticMeshActors(nlohmann::json &amp;actorList)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:298</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_aa8ee12b66dfd279a0898c020b34581b2"><div class="ttname"><a href="namespaceTrackEditor.html#aa8ee12b66dfd279a0898c020b34581b2">TrackEditor::LoadTour</a></div><div class="ttdeci">void LoadTour(Track *track, nlohmann::json &amp;data)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:429</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_abc28bd8b6f403b63352ed6c32052352b"><div class="ttname"><a href="namespaceTrackEditor.html#abc28bd8b6f403b63352ed6c32052352b">TrackEditor::FromJsonCameraShot</a></div><div class="ttdeci">TourCamera::CameraShot FromJsonCameraShot(const nlohmann::json &amp;j)</div><div class="ttdef"><b>Definition</b> SceneManager.h:79</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_ad0035fe3dfdf036a30b099d2e25fc414"><div class="ttname"><a href="namespaceTrackEditor.html#ad0035fe3dfdf036a30b099d2e25fc414">TrackEditor::SpawnActors</a></div><div class="ttdeci">void SpawnActors(std::vector&lt; std::pair&lt; std::string, SpawnParams &gt; &gt; spawnList)</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_ad5a075fe1664d7de3addb34768b7c60c"><div class="ttname"><a href="namespaceTrackEditor.html#ad5a075fe1664d7de3addb34768b7c60c">TrackEditor::LoadActors</a></div><div class="ttdeci">void LoadActors(Track *track, nlohmann::json &amp;data)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:399</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_add90fd8e24d64905c489b256d1e849d5"><div class="ttname"><a href="namespaceTrackEditor.html#add90fd8e24d64905c489b256d1e849d5">TrackEditor::LoadFog</a></div><div class="ttdeci">void LoadFog(nlohmann::json &amp;data)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:454</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_aeb5d75978b55f270e27829cffe67d2a4"><div class="ttname"><a href="namespaceTrackEditor.html#aeb5d75978b55f270e27829cffe67d2a4">TrackEditor::LoadProps</a></div><div class="ttdeci">void LoadProps(Track *track, nlohmann::json &amp;data)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:327</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_af5a960e46705549c4ff5b8f8f55bc21c"><div class="ttname"><a href="namespaceTrackEditor.html#af5a960e46705549c4ff5b8f8f55bc21c">TrackEditor::LoadTrackDataFromJson</a></div><div class="ttdeci">void LoadTrackDataFromJson(Track *track, const std::string &amp;trackPath)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:106</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_af77bf8a4a955ca00b2eef049b54f558d"><div class="ttname"><a href="namespaceTrackEditor.html#af77bf8a4a955ca00b2eef049b54f558d">TrackEditor::LoadTrackInfoData</a></div><div class="ttdeci">void LoadTrackInfoData(TrackInfo &amp;info, nlohmann::json &amp;data)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:373</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_afa2ba235a699aec4dd8136258d23586d"><div class="ttname"><a href="namespaceTrackEditor.html#afa2ba235a699aec4dd8136258d23586d">TrackEditor::SaveActors</a></div><div class="ttdeci">void SaveActors(nlohmann::json &amp;actorList)</div><div class="ttdef"><b>Definition</b> SceneManager.cpp:231</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_afb750ff9f4121279a8ac0eee3878e483"><div class="ttname"><a href="namespaceTrackEditor.html#afb750ff9f4121279a8ac0eee3878e483">TrackEditor::FromJsonVec</a></div><div class="ttdeci">FVector FromJsonVec(const nlohmann::json &amp;j)</div><div class="ttdef"><b>Definition</b> SceneManager.h:63</div></div>
<div class="ttc" id="astructFVector_html"><div class="ttname"><a href="structFVector.html">FVector</a></div><div class="ttdef"><b>Definition</b> CoreMath.h:30</div></div>
<div class="ttc" id="astructFVector_html_ab32f423016d7857a2fa713e322404b14"><div class="ttname"><a href="structFVector.html#ab32f423016d7857a2fa713e322404b14">FVector::x</a></div><div class="ttdeci">float x</div><div class="ttdef"><b>Definition</b> CoreMath.h:31</div></div>
<div class="ttc" id="astructFVector_html_aca18ae01ad0d620ac2c03e99a8cc936e"><div class="ttname"><a href="structFVector.html#aca18ae01ad0d620ac2c03e99a8cc936e">FVector::z</a></div><div class="ttdeci">float z</div><div class="ttdef"><b>Definition</b> CoreMath.h:31</div></div>
<div class="ttc" id="astructFVector_html_af17cfedf5c997cdf6bb88a01b585780f"><div class="ttname"><a href="structFVector.html#af17cfedf5c997cdf6bb88a01b585780f">FVector::y</a></div><div class="ttdeci">float y</div><div class="ttdef"><b>Definition</b> CoreMath.h:31</div></div>
<div class="ttc" id="astructTourCamera_1_1CameraShot_html"><div class="ttname"><a href="structTourCamera_1_1CameraShot.html">TourCamera::CameraShot</a></div><div class="ttdef"><b>Definition</b> TourCamera.h:48</div></div>
<div class="ttc" id="astructTourCamera_1_1CameraShot_html_a0be879493f0ff7580598d06d2c4ba9f0"><div class="ttname"><a href="structTourCamera_1_1CameraShot.html#a0be879493f0ff7580598d06d2c4ba9f0">TourCamera::CameraShot::LookAt</a></div><div class="ttdeci">FVector LookAt</div><div class="ttdef"><b>Definition</b> TourCamera.h:50</div></div>
<div class="ttc" id="astructTourCamera_1_1CameraShot_html_a5125fff3b886ec1d98869b8a0dea972d"><div class="ttname"><a href="structTourCamera_1_1CameraShot.html#a5125fff3b886ec1d98869b8a0dea972d">TourCamera::CameraShot::Pos</a></div><div class="ttdeci">FVector Pos</div><div class="ttdef"><b>Definition</b> TourCamera.h:49</div></div>
<div class="ttc" id="astructTourCamera_1_1CameraShot_html_aab50f34b49581e388d1648fd874f95a1"><div class="ttname"><a href="structTourCamera_1_1CameraShot.html#aab50f34b49581e388d1648fd874f95a1">TourCamera::CameraShot::Frames</a></div><div class="ttdeci">std::vector&lt; KeyFrame &gt; Frames</div><div class="ttdef"><b>Definition</b> TourCamera.h:51</div></div>
<div class="ttc" id="astructTourCamera_1_1KeyFrame_html"><div class="ttname"><a href="structTourCamera_1_1KeyFrame.html">TourCamera::KeyFrame</a></div><div class="ttdef"><b>Definition</b> TourCamera.h:41</div></div>
<div class="ttc" id="astructTourCamera_1_1KeyFrame_html_a6f6ae910ce875f02ac7928ccf9347182"><div class="ttname"><a href="structTourCamera_1_1KeyFrame.html#a6f6ae910ce875f02ac7928ccf9347182">TourCamera::KeyFrame::LookAt</a></div><div class="ttdeci">FVector LookAt</div><div class="ttdef"><b>Definition</b> TourCamera.h:43</div></div>
<div class="ttc" id="astructTourCamera_1_1KeyFrame_html_ab8d790a421aeab4c21dee6c89bb28a41"><div class="ttname"><a href="structTourCamera_1_1KeyFrame.html#ab8d790a421aeab4c21dee6c89bb28a41">TourCamera::KeyFrame::Duration</a></div><div class="ttdeci">f32 Duration</div><div class="ttdef"><b>Definition</b> TourCamera.h:44</div></div>
<div class="ttc" id="astructTourCamera_1_1KeyFrame_html_af99999f4f8e3f06709ea36ae6bd6e878"><div class="ttname"><a href="structTourCamera_1_1KeyFrame.html#af99999f4f8e3f06709ea36ae6bd6e878">TourCamera::KeyFrame::Pos</a></div><div class="ttdeci">FVector Pos</div><div class="ttdef"><b>Definition</b> TourCamera.h:42</div></div>
</div><!-- fragment --></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="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_2052808828190f934b76e979ee65af8a.html">engine</a></li><li class="navelem"><a class="el" href="dir_f4f7efabaac21873a58d10d576a92da6.html">editor</a></li><li class="navelem"><a class="el" href="SceneManager_8h.html">SceneManager.h</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.13.2 </li>
</ul>
</div>
</body>
</html>