class_vehicle_engine.html 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.12.0"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Jolt Physics: VehicleEngine Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <script type="text/javascript" src="clipboard.js"></script>
  13. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript" src="resize.js"></script>
  17. <script type="text/javascript" src="cookie.js"></script>
  18. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  19. <script type="text/javascript" src="search/searchdata.js"></script>
  20. <script type="text/javascript" src="search/search.js"></script>
  21. <script type="text/x-mathjax-config">
  22. MathJax.Hub.Config({
  23. extensions: ["tex2jax.js"],
  24. jax: ["input/TeX","output/HTML-CSS"],
  25. });
  26. </script>
  27. <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
  28. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  29. </head>
  30. <body>
  31. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  32. <div id="titlearea">
  33. <table cellspacing="0" cellpadding="0">
  34. <tbody>
  35. <tr id="projectrow">
  36. <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
  37. <td id="projectalign">
  38. <div id="projectname">Jolt Physics
  39. </div>
  40. <div id="projectbrief">A multi core friendly Game Physics Engine</div>
  41. </td>
  42. </tr>
  43. </tbody>
  44. </table>
  45. </div>
  46. <!-- end header part -->
  47. <!-- Generated by Doxygen 1.12.0 -->
  48. <script type="text/javascript">
  49. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  50. var searchBox = new SearchBox("searchBox", "search/",'.html');
  51. /* @license-end */
  52. </script>
  53. <script type="text/javascript">
  54. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  55. $(function() { codefold.init(0); });
  56. /* @license-end */
  57. </script>
  58. <script type="text/javascript" src="menudata.js"></script>
  59. <script type="text/javascript" src="menu.js"></script>
  60. <script type="text/javascript">
  61. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  62. $(function() {
  63. initMenu('',true,false,'search.php','Search',true);
  64. $(function() { init_search(); });
  65. });
  66. /* @license-end */
  67. </script>
  68. <div id="main-nav"></div>
  69. </div><!-- top -->
  70. <div id="side-nav" class="ui-resizable side-nav-resizable">
  71. <div id="nav-tree">
  72. <div id="nav-tree-contents">
  73. <div id="nav-sync" class="sync"></div>
  74. </div>
  75. </div>
  76. <div id="splitbar" style="-moz-user-select:none;"
  77. class="ui-resizable-handle">
  78. </div>
  79. </div>
  80. <script type="text/javascript">
  81. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  82. $(function(){initNavTree('class_vehicle_engine.html',''); initResizable(true); });
  83. /* @license-end */
  84. </script>
  85. <div id="doc-content">
  86. <!-- window showing the filter options -->
  87. <div id="MSearchSelectWindow"
  88. onmouseover="return searchBox.OnSearchSelectShow()"
  89. onmouseout="return searchBox.OnSearchSelectHide()"
  90. onkeydown="return searchBox.OnSearchSelectKey(event)">
  91. </div>
  92. <!-- iframe showing the search results (closed by default) -->
  93. <div id="MSearchResultsWindow">
  94. <div id="MSearchResults">
  95. <div class="SRPage">
  96. <div id="SRIndex">
  97. <div id="SRResults"></div>
  98. <div class="SRStatus" id="Loading">Loading...</div>
  99. <div class="SRStatus" id="Searching">Searching...</div>
  100. <div class="SRStatus" id="NoMatches">No Matches</div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="header">
  106. <div class="summary">
  107. <a href="#pub-methods">Public Member Functions</a> &#124;
  108. <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
  109. <a href="class_vehicle_engine-members.html">List of all members</a> </div>
  110. <div class="headertitle"><div class="title">VehicleEngine Class Reference</div></div>
  111. </div><!--header-->
  112. <div class="contents">
  113. <p>Runtime data for engine.
  114. <a href="#details">More...</a></p>
  115. <p><code>#include &lt;<a class="el" href="_vehicle_engine_8h_source.html">VehicleEngine.h</a>&gt;</code></p>
  116. <div class="dynheader">
  117. Inheritance diagram for VehicleEngine:</div>
  118. <div class="dyncontent">
  119. <div class="center">
  120. <img src="class_vehicle_engine.png" usemap="#VehicleEngine_map" alt=""/>
  121. <map id="VehicleEngine_map" name="VehicleEngine_map">
  122. <area href="class_vehicle_engine_settings.html" title="Generic properties for a vehicle engine." alt="VehicleEngineSettings" shape="rect" coords="0,0,138,24"/>
  123. </map>
  124. </div></div>
  125. <table class="memberdecls">
  126. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  127. Public Member Functions</h2></td></tr>
  128. <tr class="memitem:a10cc014bfd4c08086fc83ef73948c7ba" id="r_a10cc014bfd4c08086fc83ef73948c7ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a10cc014bfd4c08086fc83ef73948c7ba">ClampRPM</a> ()</td></tr>
  129. <tr class="memdesc:a10cc014bfd4c08086fc83ef73948c7ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clamp the RPM between min and max RPM. <br /></td></tr>
  130. <tr class="separator:a10cc014bfd4c08086fc83ef73948c7ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:ac1f11f381d186b50721cbc058931a2b5" id="r_ac1f11f381d186b50721cbc058931a2b5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac1f11f381d186b50721cbc058931a2b5">GetCurrentRPM</a> () const</td></tr>
  132. <tr class="memdesc:ac1f11f381d186b50721cbc058931a2b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current rotation speed of engine in rounds per minute. <br /></td></tr>
  133. <tr class="separator:ac1f11f381d186b50721cbc058931a2b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:ab37d0e87f872355e595960fa18510861" id="r_ab37d0e87f872355e595960fa18510861"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab37d0e87f872355e595960fa18510861">SetCurrentRPM</a> (float inRPM)</td></tr>
  135. <tr class="memdesc:ab37d0e87f872355e595960fa18510861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update rotation speed of engine in rounds per minute. <br /></td></tr>
  136. <tr class="separator:ab37d0e87f872355e595960fa18510861"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="memitem:ae6735223f4b1d1fc898309e671504731" id="r_ae6735223f4b1d1fc898309e671504731"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae6735223f4b1d1fc898309e671504731">GetAngularVelocity</a> () const</td></tr>
  138. <tr class="memdesc:ae6735223f4b1d1fc898309e671504731"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current angular velocity of the engine in radians / second. <br /></td></tr>
  139. <tr class="separator:ae6735223f4b1d1fc898309e671504731"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:a22815f9d97cb6318b0b6a3df66e0f6d5" id="r_a22815f9d97cb6318b0b6a3df66e0f6d5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a22815f9d97cb6318b0b6a3df66e0f6d5">GetTorque</a> (float inAcceleration) const</td></tr>
  141. <tr class="separator:a22815f9d97cb6318b0b6a3df66e0f6d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:af916ceb8c4a323cee68c72465627901e" id="r_af916ceb8c4a323cee68c72465627901e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af916ceb8c4a323cee68c72465627901e">ApplyTorque</a> (float inTorque, float inDeltaTime)</td></tr>
  143. <tr class="separator:af916ceb8c4a323cee68c72465627901e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:ad61683b9088153079e3e47334c2caf1a" id="r_ad61683b9088153079e3e47334c2caf1a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad61683b9088153079e3e47334c2caf1a">ApplyDamping</a> (float inDeltaTime)</td></tr>
  145. <tr class="separator:ad61683b9088153079e3e47334c2caf1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. <tr class="memitem:a39842ae2cd4c9520f0d194814c92d3d1" id="r_a39842ae2cd4c9520f0d194814c92d3d1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a39842ae2cd4c9520f0d194814c92d3d1">ConvertRPMToAngle</a> (float inRPM) const</td></tr>
  147. <tr class="separator:a39842ae2cd4c9520f0d194814c92d3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:a1b616470faf6ab7c46026706a7c708df" id="r_a1b616470faf6ab7c46026706a7c708df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1b616470faf6ab7c46026706a7c708df">DrawRPM</a> (<a class="el" href="class_debug_renderer.html">DebugRenderer</a> *inRenderer, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inPosition, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inForward, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inUp, float inSize, float inShiftDownRPM, float inShiftUpRPM) const</td></tr>
  149. <tr class="memdesc:a1b616470faf6ab7c46026706a7c708df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debug draw a RPM meter. <br /></td></tr>
  150. <tr class="separator:a1b616470faf6ab7c46026706a7c708df"><td class="memSeparator" colspan="2">&#160;</td></tr>
  151. <tr class="memitem:a542f9131ecce2c3f41526c44759b913b" id="r_a542f9131ecce2c3f41526c44759b913b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a542f9131ecce2c3f41526c44759b913b">AllowSleep</a> () const</td></tr>
  152. <tr class="memdesc:a542f9131ecce2c3f41526c44759b913b"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the engine is idle we allow the vehicle to sleep. <br /></td></tr>
  153. <tr class="separator:a542f9131ecce2c3f41526c44759b913b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:a14fa6274b90508346dedcc3e21864204" id="r_a14fa6274b90508346dedcc3e21864204"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a14fa6274b90508346dedcc3e21864204">SaveState</a> (<a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;inStream) const</td></tr>
  155. <tr class="memdesc:a14fa6274b90508346dedcc3e21864204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saving state for replay. <br /></td></tr>
  156. <tr class="separator:a14fa6274b90508346dedcc3e21864204"><td class="memSeparator" colspan="2">&#160;</td></tr>
  157. <tr class="memitem:a1465f66b9bddf12998cd990c8ba05140" id="r_a1465f66b9bddf12998cd990c8ba05140"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1465f66b9bddf12998cd990c8ba05140">RestoreState</a> (<a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;inStream)</td></tr>
  158. <tr class="separator:a1465f66b9bddf12998cd990c8ba05140"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr class="inherit_header pub_methods_class_vehicle_engine_settings"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_vehicle_engine_settings')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_vehicle_engine_settings.html">VehicleEngineSettings</a></td></tr>
  160. <tr class="memitem:aa326151c7c343427669a4790b84d7697 inherit pub_methods_class_vehicle_engine_settings" id="r_aa326151c7c343427669a4790b84d7697"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#aa326151c7c343427669a4790b84d7697">VehicleEngineSettings</a> ()</td></tr>
  161. <tr class="memdesc:aa326151c7c343427669a4790b84d7697 inherit pub_methods_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
  162. <tr class="separator:aa326151c7c343427669a4790b84d7697 inherit pub_methods_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. <tr class="memitem:a82b4677535f7f39e68081227caf4b547 inherit pub_methods_class_vehicle_engine_settings" id="r_a82b4677535f7f39e68081227caf4b547"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#a82b4677535f7f39e68081227caf4b547">SaveBinaryState</a> (<a class="el" href="class_stream_out.html">StreamOut</a> &amp;inStream) const</td></tr>
  164. <tr class="memdesc:a82b4677535f7f39e68081227caf4b547 inherit pub_methods_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves the contents in binary form to inStream. <br /></td></tr>
  165. <tr class="separator:a82b4677535f7f39e68081227caf4b547 inherit pub_methods_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  166. <tr class="memitem:a07beafb1531780053169dbc05283ed26 inherit pub_methods_class_vehicle_engine_settings" id="r_a07beafb1531780053169dbc05283ed26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#a07beafb1531780053169dbc05283ed26">RestoreBinaryState</a> (<a class="el" href="class_stream_in.html">StreamIn</a> &amp;inStream)</td></tr>
  167. <tr class="memdesc:a07beafb1531780053169dbc05283ed26 inherit pub_methods_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores the contents in binary form to inStream. <br /></td></tr>
  168. <tr class="separator:a07beafb1531780053169dbc05283ed26 inherit pub_methods_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. </table><table class="memberdecls">
  170. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
  171. Static Public Attributes</h2></td></tr>
  172. <tr class="memitem:a0e023a5dd52ec73e3fc43071e52296b2" id="r_a0e023a5dd52ec73e3fc43071e52296b2"><td class="memItemLeft" align="right" valign="top">static constexpr float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0e023a5dd52ec73e3fc43071e52296b2">cAngularVelocityToRPM</a> = 60.0f / (2.0f * JPH_PI)</td></tr>
  173. <tr class="memdesc:a0e023a5dd52ec73e3fc43071e52296b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply an angular velocity (rad/s) with this value to get rounds per minute (RPM) <br /></td></tr>
  174. <tr class="separator:a0e023a5dd52ec73e3fc43071e52296b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  175. </table><table class="memberdecls">
  176. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
  177. Additional Inherited Members</h2></td></tr>
  178. <tr class="inherit_header pub_attribs_class_vehicle_engine_settings"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_attribs_class_vehicle_engine_settings')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="class_vehicle_engine_settings.html">VehicleEngineSettings</a></td></tr>
  179. <tr class="memitem:a406aada0f8bcbf536d743de1f8f77329 inherit pub_attribs_class_vehicle_engine_settings" id="r_a406aada0f8bcbf536d743de1f8f77329"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#a406aada0f8bcbf536d743de1f8f77329">mMaxTorque</a> = 500.0f</td></tr>
  180. <tr class="memdesc:a406aada0f8bcbf536d743de1f8f77329 inherit pub_attribs_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max amount of torque (Nm) that the engine can deliver. <br /></td></tr>
  181. <tr class="separator:a406aada0f8bcbf536d743de1f8f77329 inherit pub_attribs_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <tr class="memitem:a0ac03e624a16d07af8d20dee5a1924bb inherit pub_attribs_class_vehicle_engine_settings" id="r_a0ac03e624a16d07af8d20dee5a1924bb"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#a0ac03e624a16d07af8d20dee5a1924bb">mMinRPM</a> = 1000.0f</td></tr>
  183. <tr class="memdesc:a0ac03e624a16d07af8d20dee5a1924bb inherit pub_attribs_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Min amount of revolutions per minute (rpm) the engine can produce without stalling. <br /></td></tr>
  184. <tr class="separator:a0ac03e624a16d07af8d20dee5a1924bb inherit pub_attribs_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  185. <tr class="memitem:a68b6fa14900e23076bb25b3280fef3c5 inherit pub_attribs_class_vehicle_engine_settings" id="r_a68b6fa14900e23076bb25b3280fef3c5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#a68b6fa14900e23076bb25b3280fef3c5">mMaxRPM</a> = 6000.0f</td></tr>
  186. <tr class="memdesc:a68b6fa14900e23076bb25b3280fef3c5 inherit pub_attribs_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max amount of revolutions per minute (rpm) the engine can generate. <br /></td></tr>
  187. <tr class="separator:a68b6fa14900e23076bb25b3280fef3c5 inherit pub_attribs_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <tr class="memitem:a2aa42e9f8a1eabe44171c7b2344661f0 inherit pub_attribs_class_vehicle_engine_settings" id="r_a2aa42e9f8a1eabe44171c7b2344661f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_linear_curve.html">LinearCurve</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#a2aa42e9f8a1eabe44171c7b2344661f0">mNormalizedTorque</a></td></tr>
  189. <tr class="memdesc:a2aa42e9f8a1eabe44171c7b2344661f0 inherit pub_attribs_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Y-axis: Curve that describes a ratio of the max torque the engine can produce (0 = 0, 1 = mMaxTorque). X-axis: the fraction of the RPM of the engine (0 = mMinRPM, 1 = mMaxRPM) <br /></td></tr>
  190. <tr class="separator:a2aa42e9f8a1eabe44171c7b2344661f0 inherit pub_attribs_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  191. <tr class="memitem:abe75cc5c2522753f6f5e4ffc6035a183 inherit pub_attribs_class_vehicle_engine_settings" id="r_abe75cc5c2522753f6f5e4ffc6035a183"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#abe75cc5c2522753f6f5e4ffc6035a183">mInertia</a> = 0.5f</td></tr>
  192. <tr class="memdesc:abe75cc5c2522753f6f5e4ffc6035a183 inherit pub_attribs_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moment of inertia (kg m^2) of the engine. <br /></td></tr>
  193. <tr class="separator:abe75cc5c2522753f6f5e4ffc6035a183 inherit pub_attribs_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  194. <tr class="memitem:a721c1a1f97766d41844a337ca4ba1e0b inherit pub_attribs_class_vehicle_engine_settings" id="r_a721c1a1f97766d41844a337ca4ba1e0b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_vehicle_engine_settings.html#a721c1a1f97766d41844a337ca4ba1e0b">mAngularDamping</a> = 0.2f</td></tr>
  195. <tr class="memdesc:a721c1a1f97766d41844a337ca4ba1e0b inherit pub_attribs_class_vehicle_engine_settings"><td class="mdescLeft">&#160;</td><td class="mdescRight">Angular damping factor of the wheel: dw/dt = -c * w. Value should be zero or positive and is usually close to 0. <br /></td></tr>
  196. <tr class="separator:a721c1a1f97766d41844a337ca4ba1e0b inherit pub_attribs_class_vehicle_engine_settings"><td class="memSeparator" colspan="2">&#160;</td></tr>
  197. </table>
  198. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  199. <div class="textblock"><p>Runtime data for engine. </p>
  200. </div><h2 class="groupheader">Member Function Documentation</h2>
  201. <a id="a542f9131ecce2c3f41526c44759b913b" name="a542f9131ecce2c3f41526c44759b913b"></a>
  202. <h2 class="memtitle"><span class="permalink"><a href="#a542f9131ecce2c3f41526c44759b913b">&#9670;&#160;</a></span>AllowSleep()</h2>
  203. <div class="memitem">
  204. <div class="memproto">
  205. <table class="mlabels">
  206. <tr>
  207. <td class="mlabels-left">
  208. <table class="memname">
  209. <tr>
  210. <td class="memname">bool VehicleEngine::AllowSleep </td>
  211. <td>(</td>
  212. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  213. <td> const</td>
  214. </tr>
  215. </table>
  216. </td>
  217. <td class="mlabels-right">
  218. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  219. </tr>
  220. </table>
  221. </div><div class="memdoc">
  222. <p>If the engine is idle we allow the vehicle to sleep. </p>
  223. </div>
  224. </div>
  225. <a id="ad61683b9088153079e3e47334c2caf1a" name="ad61683b9088153079e3e47334c2caf1a"></a>
  226. <h2 class="memtitle"><span class="permalink"><a href="#ad61683b9088153079e3e47334c2caf1a">&#9670;&#160;</a></span>ApplyDamping()</h2>
  227. <div class="memitem">
  228. <div class="memproto">
  229. <table class="memname">
  230. <tr>
  231. <td class="memname">void VehicleEngine::ApplyDamping </td>
  232. <td>(</td>
  233. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inDeltaTime</em></span></td><td>)</td>
  234. <td></td>
  235. </tr>
  236. </table>
  237. </div><div class="memdoc">
  238. <p>Update the engine RPM for damping </p><dl class="params"><dt>Parameters</dt><dd>
  239. <table class="params">
  240. <tr><td class="paramname">inDeltaTime</td><td>Delta time in seconds </td></tr>
  241. </table>
  242. </dd>
  243. </dl>
  244. </div>
  245. </div>
  246. <a id="af916ceb8c4a323cee68c72465627901e" name="af916ceb8c4a323cee68c72465627901e"></a>
  247. <h2 class="memtitle"><span class="permalink"><a href="#af916ceb8c4a323cee68c72465627901e">&#9670;&#160;</a></span>ApplyTorque()</h2>
  248. <div class="memitem">
  249. <div class="memproto">
  250. <table class="memname">
  251. <tr>
  252. <td class="memname">void VehicleEngine::ApplyTorque </td>
  253. <td>(</td>
  254. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inTorque</em></span>, </td>
  255. </tr>
  256. <tr>
  257. <td class="paramkey"></td>
  258. <td></td>
  259. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inDeltaTime</em></span>&#160;)</td>
  260. </tr>
  261. </table>
  262. </div><div class="memdoc">
  263. <p>Apply a torque to the engine rotation speed </p><dl class="params"><dt>Parameters</dt><dd>
  264. <table class="params">
  265. <tr><td class="paramname">inTorque</td><td>Torque in N m </td></tr>
  266. <tr><td class="paramname">inDeltaTime</td><td>Delta time in seconds </td></tr>
  267. </table>
  268. </dd>
  269. </dl>
  270. </div>
  271. </div>
  272. <a id="a10cc014bfd4c08086fc83ef73948c7ba" name="a10cc014bfd4c08086fc83ef73948c7ba"></a>
  273. <h2 class="memtitle"><span class="permalink"><a href="#a10cc014bfd4c08086fc83ef73948c7ba">&#9670;&#160;</a></span>ClampRPM()</h2>
  274. <div class="memitem">
  275. <div class="memproto">
  276. <table class="mlabels">
  277. <tr>
  278. <td class="mlabels-left">
  279. <table class="memname">
  280. <tr>
  281. <td class="memname">void VehicleEngine::ClampRPM </td>
  282. <td>(</td>
  283. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  284. <td></td>
  285. </tr>
  286. </table>
  287. </td>
  288. <td class="mlabels-right">
  289. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  290. </tr>
  291. </table>
  292. </div><div class="memdoc">
  293. <p>Clamp the RPM between min and max RPM. </p>
  294. </div>
  295. </div>
  296. <a id="a39842ae2cd4c9520f0d194814c92d3d1" name="a39842ae2cd4c9520f0d194814c92d3d1"></a>
  297. <h2 class="memtitle"><span class="permalink"><a href="#a39842ae2cd4c9520f0d194814c92d3d1">&#9670;&#160;</a></span>ConvertRPMToAngle()</h2>
  298. <div class="memitem">
  299. <div class="memproto">
  300. <table class="mlabels">
  301. <tr>
  302. <td class="mlabels-left">
  303. <table class="memname">
  304. <tr>
  305. <td class="memname">float VehicleEngine::ConvertRPMToAngle </td>
  306. <td>(</td>
  307. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inRPM</em></span></td><td>)</td>
  308. <td> const</td>
  309. </tr>
  310. </table>
  311. </td>
  312. <td class="mlabels-right">
  313. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  314. </tr>
  315. </table>
  316. </div><div class="memdoc">
  317. </div>
  318. </div>
  319. <a id="a1b616470faf6ab7c46026706a7c708df" name="a1b616470faf6ab7c46026706a7c708df"></a>
  320. <h2 class="memtitle"><span class="permalink"><a href="#a1b616470faf6ab7c46026706a7c708df">&#9670;&#160;</a></span>DrawRPM()</h2>
  321. <div class="memitem">
  322. <div class="memproto">
  323. <table class="memname">
  324. <tr>
  325. <td class="memname">void VehicleEngine::DrawRPM </td>
  326. <td>(</td>
  327. <td class="paramtype"><a class="el" href="class_debug_renderer.html">DebugRenderer</a> *</td> <td class="paramname"><span class="paramname"><em>inRenderer</em></span>, </td>
  328. </tr>
  329. <tr>
  330. <td class="paramkey"></td>
  331. <td></td>
  332. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPosition</em></span>, </td>
  333. </tr>
  334. <tr>
  335. <td class="paramkey"></td>
  336. <td></td>
  337. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inForward</em></span>, </td>
  338. </tr>
  339. <tr>
  340. <td class="paramkey"></td>
  341. <td></td>
  342. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inUp</em></span>, </td>
  343. </tr>
  344. <tr>
  345. <td class="paramkey"></td>
  346. <td></td>
  347. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inSize</em></span>, </td>
  348. </tr>
  349. <tr>
  350. <td class="paramkey"></td>
  351. <td></td>
  352. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inShiftDownRPM</em></span>, </td>
  353. </tr>
  354. <tr>
  355. <td class="paramkey"></td>
  356. <td></td>
  357. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inShiftUpRPM</em></span>&#160;) const</td>
  358. </tr>
  359. </table>
  360. </div><div class="memdoc">
  361. <p>Debug draw a RPM meter. </p>
  362. </div>
  363. </div>
  364. <a id="ae6735223f4b1d1fc898309e671504731" name="ae6735223f4b1d1fc898309e671504731"></a>
  365. <h2 class="memtitle"><span class="permalink"><a href="#ae6735223f4b1d1fc898309e671504731">&#9670;&#160;</a></span>GetAngularVelocity()</h2>
  366. <div class="memitem">
  367. <div class="memproto">
  368. <table class="mlabels">
  369. <tr>
  370. <td class="mlabels-left">
  371. <table class="memname">
  372. <tr>
  373. <td class="memname">float VehicleEngine::GetAngularVelocity </td>
  374. <td>(</td>
  375. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  376. <td> const</td>
  377. </tr>
  378. </table>
  379. </td>
  380. <td class="mlabels-right">
  381. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  382. </tr>
  383. </table>
  384. </div><div class="memdoc">
  385. <p>Get current angular velocity of the engine in radians / second. </p>
  386. </div>
  387. </div>
  388. <a id="ac1f11f381d186b50721cbc058931a2b5" name="ac1f11f381d186b50721cbc058931a2b5"></a>
  389. <h2 class="memtitle"><span class="permalink"><a href="#ac1f11f381d186b50721cbc058931a2b5">&#9670;&#160;</a></span>GetCurrentRPM()</h2>
  390. <div class="memitem">
  391. <div class="memproto">
  392. <table class="mlabels">
  393. <tr>
  394. <td class="mlabels-left">
  395. <table class="memname">
  396. <tr>
  397. <td class="memname">float VehicleEngine::GetCurrentRPM </td>
  398. <td>(</td>
  399. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  400. <td> const</td>
  401. </tr>
  402. </table>
  403. </td>
  404. <td class="mlabels-right">
  405. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  406. </tr>
  407. </table>
  408. </div><div class="memdoc">
  409. <p>Current rotation speed of engine in rounds per minute. </p>
  410. </div>
  411. </div>
  412. <a id="a22815f9d97cb6318b0b6a3df66e0f6d5" name="a22815f9d97cb6318b0b6a3df66e0f6d5"></a>
  413. <h2 class="memtitle"><span class="permalink"><a href="#a22815f9d97cb6318b0b6a3df66e0f6d5">&#9670;&#160;</a></span>GetTorque()</h2>
  414. <div class="memitem">
  415. <div class="memproto">
  416. <table class="mlabels">
  417. <tr>
  418. <td class="mlabels-left">
  419. <table class="memname">
  420. <tr>
  421. <td class="memname">float VehicleEngine::GetTorque </td>
  422. <td>(</td>
  423. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inAcceleration</em></span></td><td>)</td>
  424. <td> const</td>
  425. </tr>
  426. </table>
  427. </td>
  428. <td class="mlabels-right">
  429. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  430. </tr>
  431. </table>
  432. </div><div class="memdoc">
  433. <p>Get the amount of torque (N m) that the engine can supply </p><dl class="params"><dt>Parameters</dt><dd>
  434. <table class="params">
  435. <tr><td class="paramname">inAcceleration</td><td>How much the gas pedal is pressed [0, 1] </td></tr>
  436. </table>
  437. </dd>
  438. </dl>
  439. </div>
  440. </div>
  441. <a id="a1465f66b9bddf12998cd990c8ba05140" name="a1465f66b9bddf12998cd990c8ba05140"></a>
  442. <h2 class="memtitle"><span class="permalink"><a href="#a1465f66b9bddf12998cd990c8ba05140">&#9670;&#160;</a></span>RestoreState()</h2>
  443. <div class="memitem">
  444. <div class="memproto">
  445. <table class="memname">
  446. <tr>
  447. <td class="memname">void VehicleEngine::RestoreState </td>
  448. <td>(</td>
  449. <td class="paramtype"><a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span></td><td>)</td>
  450. <td></td>
  451. </tr>
  452. </table>
  453. </div><div class="memdoc">
  454. </div>
  455. </div>
  456. <a id="a14fa6274b90508346dedcc3e21864204" name="a14fa6274b90508346dedcc3e21864204"></a>
  457. <h2 class="memtitle"><span class="permalink"><a href="#a14fa6274b90508346dedcc3e21864204">&#9670;&#160;</a></span>SaveState()</h2>
  458. <div class="memitem">
  459. <div class="memproto">
  460. <table class="memname">
  461. <tr>
  462. <td class="memname">void VehicleEngine::SaveState </td>
  463. <td>(</td>
  464. <td class="paramtype"><a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span></td><td>)</td>
  465. <td> const</td>
  466. </tr>
  467. </table>
  468. </div><div class="memdoc">
  469. <p>Saving state for replay. </p>
  470. </div>
  471. </div>
  472. <a id="ab37d0e87f872355e595960fa18510861" name="ab37d0e87f872355e595960fa18510861"></a>
  473. <h2 class="memtitle"><span class="permalink"><a href="#ab37d0e87f872355e595960fa18510861">&#9670;&#160;</a></span>SetCurrentRPM()</h2>
  474. <div class="memitem">
  475. <div class="memproto">
  476. <table class="mlabels">
  477. <tr>
  478. <td class="mlabels-left">
  479. <table class="memname">
  480. <tr>
  481. <td class="memname">void VehicleEngine::SetCurrentRPM </td>
  482. <td>(</td>
  483. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inRPM</em></span></td><td>)</td>
  484. <td></td>
  485. </tr>
  486. </table>
  487. </td>
  488. <td class="mlabels-right">
  489. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  490. </tr>
  491. </table>
  492. </div><div class="memdoc">
  493. <p>Update rotation speed of engine in rounds per minute. </p>
  494. </div>
  495. </div>
  496. <h2 class="groupheader">Member Data Documentation</h2>
  497. <a id="a0e023a5dd52ec73e3fc43071e52296b2" name="a0e023a5dd52ec73e3fc43071e52296b2"></a>
  498. <h2 class="memtitle"><span class="permalink"><a href="#a0e023a5dd52ec73e3fc43071e52296b2">&#9670;&#160;</a></span>cAngularVelocityToRPM</h2>
  499. <div class="memitem">
  500. <div class="memproto">
  501. <table class="mlabels">
  502. <tr>
  503. <td class="mlabels-left">
  504. <table class="memname">
  505. <tr>
  506. <td class="memname">float VehicleEngine::cAngularVelocityToRPM = 60.0f / (2.0f * JPH_PI)</td>
  507. </tr>
  508. </table>
  509. </td>
  510. <td class="mlabels-right">
  511. <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
  512. </tr>
  513. </table>
  514. </div><div class="memdoc">
  515. <p>Multiply an angular velocity (rad/s) with this value to get rounds per minute (RPM) </p>
  516. </div>
  517. </div>
  518. <hr/>The documentation for this class was generated from the following files:<ul>
  519. <li>Jolt/Physics/Vehicle/<a class="el" href="_vehicle_engine_8h_source.html">VehicleEngine.h</a></li>
  520. <li>Jolt/Physics/Vehicle/<a class="el" href="_vehicle_engine_8cpp.html">VehicleEngine.cpp</a></li>
  521. </ul>
  522. </div><!-- contents -->
  523. </div><!-- doc-content -->
  524. <!-- start footer part -->
  525. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  526. <ul>
  527. <li class="navelem"><a class="el" href="class_vehicle_engine.html">VehicleEngine</a></li>
  528. <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>
  529. </ul>
  530. </div>
  531. </body>
  532. </html>