class_character_vs_character_collision.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  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: CharacterVsCharacterCollision 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_character_vs_character_collision.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="class_character_vs_character_collision-members.html">List of all members</a> </div>
  109. <div class="headertitle"><div class="title">CharacterVsCharacterCollision Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
  110. </div><!--header-->
  111. <div class="contents">
  112. <p><code>#include &lt;<a class="el" href="_character_virtual_8h_source.html">CharacterVirtual.h</a>&gt;</code></p>
  113. <div class="dynheader">
  114. Inheritance diagram for CharacterVsCharacterCollision:</div>
  115. <div class="dyncontent">
  116. <div class="center">
  117. <img src="class_character_vs_character_collision.png" usemap="#CharacterVsCharacterCollision_map" alt=""/>
  118. <map id="CharacterVsCharacterCollision_map" name="CharacterVsCharacterCollision_map">
  119. <area href="class_non_copyable.html" title="Class that makes another class non-copyable. Usage: Inherit from NonCopyable." alt="NonCopyable" shape="rect" coords="0,0,226,24"/>
  120. <area href="class_character_vs_character_collision_simple.html" alt="CharacterVsCharacterCollisionSimple" shape="rect" coords="0,112,226,136"/>
  121. </map>
  122. </div></div>
  123. <table class="memberdecls">
  124. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  125. Public Member Functions</h2></td></tr>
  126. <tr class="memitem:ac761e9773325df331eb599af2f498525" id="r_ac761e9773325df331eb599af2f498525"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac761e9773325df331eb599af2f498525">~CharacterVsCharacterCollision</a> ()=default</td></tr>
  127. <tr class="separator:ac761e9773325df331eb599af2f498525"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:a1336885e4964801d0812b3089faa674b" id="r_a1336885e4964801d0812b3089faa674b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1336885e4964801d0812b3089faa674b">CollideCharacter</a> (const <a class="el" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, const <a class="el" href="class_collide_shape_settings.html">CollideShapeSettings</a> &amp;inCollideShapeSettings, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset, <a class="el" href="_shape_8h.html#af33744a7638d2c8e3ba97737b069f8d2">CollideShapeCollector</a> &amp;ioCollector) const =0</td></tr>
  129. <tr class="separator:a1336885e4964801d0812b3089faa674b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:acaecf7e7bdb70d2cade8e585b64a1b82" id="r_acaecf7e7bdb70d2cade8e585b64a1b82"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acaecf7e7bdb70d2cade8e585b64a1b82">CastCharacter</a> (const <a class="el" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inDirection, const <a class="el" href="class_shape_cast_settings.html">ShapeCastSettings</a> &amp;inShapeCastSettings, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset, <a class="el" href="_shape_8h.html#a501dee38fc3089311c7c9408ceda7401">CastShapeCollector</a> &amp;ioCollector) const =0</td></tr>
  131. <tr class="separator:acaecf7e7bdb70d2cade8e585b64a1b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="inherit_header pub_methods_class_non_copyable"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_non_copyable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_non_copyable.html">NonCopyable</a></td></tr>
  133. <tr class="memitem:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable" id="r_a809b6e4ade7ae32f6d248f2a3b783d45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#a809b6e4ade7ae32f6d248f2a3b783d45">NonCopyable</a> ()=default</td></tr>
  134. <tr class="separator:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable" id="r_a501d34ffcc34b30de6d541887a901057"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#a501d34ffcc34b30de6d541887a901057">NonCopyable</a> (const <a class="el" href="class_non_copyable.html">NonCopyable</a> &amp;)=delete</td></tr>
  136. <tr class="separator:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="memitem:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable" id="r_aaf9b12dcaae80c9d304df7a941d4e21f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#aaf9b12dcaae80c9d304df7a941d4e21f">operator=</a> (const <a class="el" href="class_non_copyable.html">NonCopyable</a> &amp;)=delete</td></tr>
  138. <tr class="separator:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. </table>
  140. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  141. <div class="textblock"><p>Interface class that allows a <a class="el" href="class_character_virtual.html">CharacterVirtual</a> to check collision with other <a class="el" href="class_character_virtual.html">CharacterVirtual</a> instances. Since <a class="el" href="class_character_virtual.html">CharacterVirtual</a> instances are not registered anywhere, it is up to the application to test collision against relevant characters. The characters could be stored in a tree structure to make this more efficient. </p>
  142. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  143. <a id="ac761e9773325df331eb599af2f498525" name="ac761e9773325df331eb599af2f498525"></a>
  144. <h2 class="memtitle"><span class="permalink"><a href="#ac761e9773325df331eb599af2f498525">&#9670;&#160;</a></span>~CharacterVsCharacterCollision()</h2>
  145. <div class="memitem">
  146. <div class="memproto">
  147. <table class="mlabels">
  148. <tr>
  149. <td class="mlabels-left">
  150. <table class="memname">
  151. <tr>
  152. <td class="memname">virtual CharacterVsCharacterCollision::~CharacterVsCharacterCollision </td>
  153. <td>(</td>
  154. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  155. <td></td>
  156. </tr>
  157. </table>
  158. </td>
  159. <td class="mlabels-right">
  160. <span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span> </td>
  161. </tr>
  162. </table>
  163. </div><div class="memdoc">
  164. </div>
  165. </div>
  166. <h2 class="groupheader">Member Function Documentation</h2>
  167. <a id="acaecf7e7bdb70d2cade8e585b64a1b82" name="acaecf7e7bdb70d2cade8e585b64a1b82"></a>
  168. <h2 class="memtitle"><span class="permalink"><a href="#acaecf7e7bdb70d2cade8e585b64a1b82">&#9670;&#160;</a></span>CastCharacter()</h2>
  169. <div class="memitem">
  170. <div class="memproto">
  171. <table class="mlabels">
  172. <tr>
  173. <td class="mlabels-left">
  174. <table class="memname">
  175. <tr>
  176. <td class="memname">virtual void CharacterVsCharacterCollision::CastCharacter </td>
  177. <td>(</td>
  178. <td class="paramtype">const <a class="el" href="class_character_virtual.html">CharacterVirtual</a> *</td> <td class="paramname"><span class="paramname"><em>inCharacter</em></span>, </td>
  179. </tr>
  180. <tr>
  181. <td class="paramkey"></td>
  182. <td></td>
  183. <td class="paramtype"><a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a></td> <td class="paramname"><span class="paramname"><em>inCenterOfMassTransform</em></span>, </td>
  184. </tr>
  185. <tr>
  186. <td class="paramkey"></td>
  187. <td></td>
  188. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inDirection</em></span>, </td>
  189. </tr>
  190. <tr>
  191. <td class="paramkey"></td>
  192. <td></td>
  193. <td class="paramtype">const <a class="el" href="class_shape_cast_settings.html">ShapeCastSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeCastSettings</em></span>, </td>
  194. </tr>
  195. <tr>
  196. <td class="paramkey"></td>
  197. <td></td>
  198. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inBaseOffset</em></span>, </td>
  199. </tr>
  200. <tr>
  201. <td class="paramkey"></td>
  202. <td></td>
  203. <td class="paramtype"><a class="el" href="_shape_8h.html#a501dee38fc3089311c7c9408ceda7401">CastShapeCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>&#160;) const</td>
  204. </tr>
  205. </table>
  206. </td>
  207. <td class="mlabels-right">
  208. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  209. </tr>
  210. </table>
  211. </div><div class="memdoc">
  212. <p>Cast a character against other CharacterVirtuals. </p><dl class="params"><dt>Parameters</dt><dd>
  213. <table class="params">
  214. <tr><td class="paramname">inCharacter</td><td>The character to cast. </td></tr>
  215. <tr><td class="paramname">inCenterOfMassTransform</td><td>Center of mass transform for this character. </td></tr>
  216. <tr><td class="paramname">inDirection</td><td>Direction and length to cast in. </td></tr>
  217. <tr><td class="paramname">inShapeCastSettings</td><td>Settings for the shape cast. </td></tr>
  218. <tr><td class="paramname">inBaseOffset</td><td>All hit results will be returned relative to this offset, can be zero to get results in world position, but when you're testing far from the origin you get better precision by picking a position that's closer e.g. GetPosition() since floats are most accurate near the origin </td></tr>
  219. <tr><td class="paramname">ioCollector</td><td>Collision collector that receives the collision results. </td></tr>
  220. </table>
  221. </dd>
  222. </dl>
  223. <p>Implemented in <a class="el" href="class_character_vs_character_collision_simple.html#a3b514db9cada6a4fbb66cae3d39201bf">CharacterVsCharacterCollisionSimple</a>.</p>
  224. </div>
  225. </div>
  226. <a id="a1336885e4964801d0812b3089faa674b" name="a1336885e4964801d0812b3089faa674b"></a>
  227. <h2 class="memtitle"><span class="permalink"><a href="#a1336885e4964801d0812b3089faa674b">&#9670;&#160;</a></span>CollideCharacter()</h2>
  228. <div class="memitem">
  229. <div class="memproto">
  230. <table class="mlabels">
  231. <tr>
  232. <td class="mlabels-left">
  233. <table class="memname">
  234. <tr>
  235. <td class="memname">virtual void CharacterVsCharacterCollision::CollideCharacter </td>
  236. <td>(</td>
  237. <td class="paramtype">const <a class="el" href="class_character_virtual.html">CharacterVirtual</a> *</td> <td class="paramname"><span class="paramname"><em>inCharacter</em></span>, </td>
  238. </tr>
  239. <tr>
  240. <td class="paramkey"></td>
  241. <td></td>
  242. <td class="paramtype"><a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a></td> <td class="paramname"><span class="paramname"><em>inCenterOfMassTransform</em></span>, </td>
  243. </tr>
  244. <tr>
  245. <td class="paramkey"></td>
  246. <td></td>
  247. <td class="paramtype">const <a class="el" href="class_collide_shape_settings.html">CollideShapeSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inCollideShapeSettings</em></span>, </td>
  248. </tr>
  249. <tr>
  250. <td class="paramkey"></td>
  251. <td></td>
  252. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inBaseOffset</em></span>, </td>
  253. </tr>
  254. <tr>
  255. <td class="paramkey"></td>
  256. <td></td>
  257. <td class="paramtype"><a class="el" href="_shape_8h.html#af33744a7638d2c8e3ba97737b069f8d2">CollideShapeCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>&#160;) const</td>
  258. </tr>
  259. </table>
  260. </td>
  261. <td class="mlabels-right">
  262. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  263. </tr>
  264. </table>
  265. </div><div class="memdoc">
  266. <p>Collide a character against other CharacterVirtuals. </p><dl class="params"><dt>Parameters</dt><dd>
  267. <table class="params">
  268. <tr><td class="paramname">inCharacter</td><td>The character to collide. </td></tr>
  269. <tr><td class="paramname">inCenterOfMassTransform</td><td>Center of mass transform for this character. </td></tr>
  270. <tr><td class="paramname">inCollideShapeSettings</td><td>Settings for the collision check. </td></tr>
  271. <tr><td class="paramname">inBaseOffset</td><td>All hit results will be returned relative to this offset, can be zero to get results in world position, but when you're testing far from the origin you get better precision by picking a position that's closer e.g. GetPosition() since floats are most accurate near the origin </td></tr>
  272. <tr><td class="paramname">ioCollector</td><td>Collision collector that receives the collision results. </td></tr>
  273. </table>
  274. </dd>
  275. </dl>
  276. <p>Implemented in <a class="el" href="class_character_vs_character_collision_simple.html#a7785735e8caff3effb04f2325d661d46">CharacterVsCharacterCollisionSimple</a>.</p>
  277. </div>
  278. </div>
  279. <hr/>The documentation for this class was generated from the following file:<ul>
  280. <li>Jolt/Physics/Character/<a class="el" href="_character_virtual_8h_source.html">CharacterVirtual.h</a></li>
  281. </ul>
  282. </div><!-- contents -->
  283. </div><!-- doc-content -->
  284. <!-- start footer part -->
  285. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  286. <ul>
  287. <li class="navelem"><a class="el" href="class_character_vs_character_collision.html">CharacterVsCharacterCollision</a></li>
  288. <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>
  289. </ul>
  290. </div>
  291. </body>
  292. </html>