class_skeleton_mapper.html 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779
  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: SkeletonMapper 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_skeleton_mapper.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="#nested-classes">Classes</a> &#124;
  108. <a href="#pub-types">Public Types</a> &#124;
  109. <a href="#pub-methods">Public Member Functions</a> &#124;
  110. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  111. <a href="class_skeleton_mapper-members.html">List of all members</a> </div>
  112. <div class="headertitle"><div class="title">SkeletonMapper Class Reference</div></div>
  113. </div><!--header-->
  114. <div class="contents">
  115. <p>Class that is able to map a low detail (ragdoll) skeleton to a high detail (animation) skeleton and vice versa.
  116. <a href="#details">More...</a></p>
  117. <p><code>#include &lt;<a class="el" href="_skeleton_mapper_8h_source.html">SkeletonMapper.h</a>&gt;</code></p>
  118. <div class="dynheader">
  119. Inheritance diagram for SkeletonMapper:</div>
  120. <div class="dyncontent">
  121. <div class="center">
  122. <img src="class_skeleton_mapper.png" usemap="#SkeletonMapper_map" alt=""/>
  123. <map id="SkeletonMapper_map" name="SkeletonMapper_map">
  124. <area href="class_ref_target.html" alt="RefTarget&lt; SkeletonMapper &gt;" shape="rect" coords="0,0,183,24"/>
  125. </map>
  126. </div></div>
  127. <table class="memberdecls">
  128. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
  129. Classes</h2></td></tr>
  130. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_skeleton_mapper_1_1_chain.html">Chain</a></td></tr>
  131. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A joint chain that starts with a 1-on-1 mapped joint and ends with a 1-on-1 mapped joint with intermediate joints that cannot be mapped. <a href="class_skeleton_mapper_1_1_chain.html#details">More...</a><br /></td></tr>
  132. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_skeleton_mapper_1_1_locked.html">Locked</a></td></tr>
  134. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Joints that should have their translation locked (fixed) <a href="class_skeleton_mapper_1_1_locked.html#details">More...</a><br /></td></tr>
  135. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_skeleton_mapper_1_1_mapping.html">Mapping</a></td></tr>
  137. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A joint that maps 1-on-1 to a joint in the other skeleton. <a href="class_skeleton_mapper_1_1_mapping.html#details">More...</a><br /></td></tr>
  138. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_skeleton_mapper_1_1_unmapped.html">Unmapped</a></td></tr>
  140. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Joints that could not be mapped from skeleton 1 to 2. <a href="class_skeleton_mapper_1_1_unmapped.html#details">More...</a><br /></td></tr>
  141. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. </table><table class="memberdecls">
  143. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
  144. Public Types</h2></td></tr>
  145. <tr class="memitem:a6d56bcd1cbaecd9f2b9013e6e04b7bf8" id="r_a6d56bcd1cbaecd9f2b9013e6e04b7bf8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6d56bcd1cbaecd9f2b9013e6e04b7bf8">CanMapJoint</a> = function&lt;bool (const <a class="el" href="class_skeleton.html">Skeleton</a> *, int, const <a class="el" href="class_skeleton.html">Skeleton</a> *, int)&gt;</td></tr>
  146. <tr class="memdesc:a6d56bcd1cbaecd9f2b9013e6e04b7bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function that is called to determine if a joint can be mapped from source to target skeleton. <br /></td></tr>
  147. <tr class="separator:a6d56bcd1cbaecd9f2b9013e6e04b7bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:a6f36fb9bc8686b8ec810c5435c03f419" id="r_a6f36fb9bc8686b8ec810c5435c03f419"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6f36fb9bc8686b8ec810c5435c03f419">MappingVector</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="class_skeleton_mapper_1_1_mapping.html">Mapping</a>&gt;</td></tr>
  149. <tr class="separator:a6f36fb9bc8686b8ec810c5435c03f419"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:a33aaf112a5908982c45a27b4c80155ea" id="r_a33aaf112a5908982c45a27b4c80155ea"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a33aaf112a5908982c45a27b4c80155ea">ChainVector</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="class_skeleton_mapper_1_1_chain.html">Chain</a>&gt;</td></tr>
  151. <tr class="separator:a33aaf112a5908982c45a27b4c80155ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:ae6baa7f85525bc34f52e77ac6cd2bbeb" id="r_ae6baa7f85525bc34f52e77ac6cd2bbeb"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae6baa7f85525bc34f52e77ac6cd2bbeb">UnmappedVector</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="class_skeleton_mapper_1_1_unmapped.html">Unmapped</a>&gt;</td></tr>
  153. <tr class="separator:ae6baa7f85525bc34f52e77ac6cd2bbeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:a82c3843686fa3822fd9a5747be2a4b93" id="r_a82c3843686fa3822fd9a5747be2a4b93"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a82c3843686fa3822fd9a5747be2a4b93">LockedVector</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="class_skeleton_mapper_1_1_locked.html">Locked</a>&gt;</td></tr>
  155. <tr class="separator:a82c3843686fa3822fd9a5747be2a4b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. </table><table class="memberdecls">
  157. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  158. Public Member Functions</h2></td></tr>
  159. <tr class="memitem:a4c6938fe3c8557ea55e10cc3c8bfc387" id="r_a4c6938fe3c8557ea55e10cc3c8bfc387"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4c6938fe3c8557ea55e10cc3c8bfc387">Initialize</a> (const <a class="el" href="class_skeleton.html">Skeleton</a> *inSkeleton1, const <a class="el" href="class_mat44.html">Mat44</a> *inNeutralPose1, const <a class="el" href="class_skeleton.html">Skeleton</a> *inSkeleton2, const <a class="el" href="class_mat44.html">Mat44</a> *inNeutralPose2, const <a class="el" href="#a6d56bcd1cbaecd9f2b9013e6e04b7bf8">CanMapJoint</a> &amp;inCanMapJoint=<a class="el" href="#a642ec444197fca150bddcadd5cb85bd5">sDefaultCanMapJoint</a>)</td></tr>
  160. <tr class="separator:a4c6938fe3c8557ea55e10cc3c8bfc387"><td class="memSeparator" colspan="2">&#160;</td></tr>
  161. <tr class="memitem:a2741193b04cb2cbe14996962fbf71b97" id="r_a2741193b04cb2cbe14996962fbf71b97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2741193b04cb2cbe14996962fbf71b97">LockTranslations</a> (const <a class="el" href="class_skeleton.html">Skeleton</a> *inSkeleton2, const bool *inLockedTranslations, const <a class="el" href="class_mat44.html">Mat44</a> *inNeutralPose2)</td></tr>
  162. <tr class="separator:a2741193b04cb2cbe14996962fbf71b97"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. <tr class="memitem:abbaa0b7c3a89c8332342c2cc6aa74262" id="r_abbaa0b7c3a89c8332342c2cc6aa74262"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abbaa0b7c3a89c8332342c2cc6aa74262">LockAllTranslations</a> (const <a class="el" href="class_skeleton.html">Skeleton</a> *inSkeleton2, const <a class="el" href="class_mat44.html">Mat44</a> *inNeutralPose2)</td></tr>
  164. <tr class="separator:abbaa0b7c3a89c8332342c2cc6aa74262"><td class="memSeparator" colspan="2">&#160;</td></tr>
  165. <tr class="memitem:aa5ea82586d40fbdc0d2930e51b008c9c" id="r_aa5ea82586d40fbdc0d2930e51b008c9c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa5ea82586d40fbdc0d2930e51b008c9c">Map</a> (const <a class="el" href="class_mat44.html">Mat44</a> *inPose1ModelSpace, const <a class="el" href="class_mat44.html">Mat44</a> *inPose2LocalSpace, <a class="el" href="class_mat44.html">Mat44</a> *outPose2ModelSpace) const</td></tr>
  166. <tr class="separator:aa5ea82586d40fbdc0d2930e51b008c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  167. <tr class="memitem:a64ebec9cb8e8f0f7a4ec68fa0c30bfd6" id="r_a64ebec9cb8e8f0f7a4ec68fa0c30bfd6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a64ebec9cb8e8f0f7a4ec68fa0c30bfd6">MapReverse</a> (const <a class="el" href="class_mat44.html">Mat44</a> *inPose2ModelSpace, <a class="el" href="class_mat44.html">Mat44</a> *outPose1ModelSpace) const</td></tr>
  168. <tr class="separator:a64ebec9cb8e8f0f7a4ec68fa0c30bfd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. <tr class="memitem:a21b16b76b464cf207878aa382c6cfde4" id="r_a21b16b76b464cf207878aa382c6cfde4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a21b16b76b464cf207878aa382c6cfde4">GetMappedJointIdx</a> (int inJoint1Idx) const</td></tr>
  170. <tr class="memdesc:a21b16b76b464cf207878aa382c6cfde4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Search through the directly mapped joints (mMappings) and find inJoint1Idx, returns the corresponding Joint2Idx or -1 if not found. <br /></td></tr>
  171. <tr class="separator:a21b16b76b464cf207878aa382c6cfde4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. <tr class="memitem:a6fcd34ef9c18a53f65679b5d671e6147" id="r_a6fcd34ef9c18a53f65679b5d671e6147"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6fcd34ef9c18a53f65679b5d671e6147">IsJointTranslationLocked</a> (int inJoint2Idx) const</td></tr>
  173. <tr class="memdesc:a6fcd34ef9c18a53f65679b5d671e6147"><td class="mdescLeft">&#160;</td><td class="mdescRight">Search through the locked translations (mLockedTranslations) and find if joint inJoint2Idx is locked. <br /></td></tr>
  174. <tr class="separator:a6fcd34ef9c18a53f65679b5d671e6147"><td class="memSeparator" colspan="2">&#160;</td></tr>
  175. <tr><td colspan="2"><div class="groupHeader">Access to the mapped joints</div></td></tr>
  176. <tr class="memitem:a13fa458d09dbb5f053aff54bb009d0eb" id="r_a13fa458d09dbb5f053aff54bb009d0eb"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="#a6f36fb9bc8686b8ec810c5435c03f419">MappingVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a13fa458d09dbb5f053aff54bb009d0eb">GetMappings</a> () const</td></tr>
  177. <tr class="separator:a13fa458d09dbb5f053aff54bb009d0eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  178. <tr class="memitem:a120855b77dff525cd820068b115e101f" id="r_a120855b77dff525cd820068b115e101f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a6f36fb9bc8686b8ec810c5435c03f419">MappingVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a120855b77dff525cd820068b115e101f">GetMappings</a> ()</td></tr>
  179. <tr class="separator:a120855b77dff525cd820068b115e101f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <tr class="memitem:ad60ebc6d5ff4c2d1402199c56f698c4a" id="r_ad60ebc6d5ff4c2d1402199c56f698c4a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="#a33aaf112a5908982c45a27b4c80155ea">ChainVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad60ebc6d5ff4c2d1402199c56f698c4a">GetChains</a> () const</td></tr>
  181. <tr class="separator:ad60ebc6d5ff4c2d1402199c56f698c4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <tr class="memitem:a5438aa5e4ec00c89a000a12db4d4c8d4" id="r_a5438aa5e4ec00c89a000a12db4d4c8d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a33aaf112a5908982c45a27b4c80155ea">ChainVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5438aa5e4ec00c89a000a12db4d4c8d4">GetChains</a> ()</td></tr>
  183. <tr class="separator:a5438aa5e4ec00c89a000a12db4d4c8d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. <tr class="memitem:a4b67e8a430be5b9150676f5103ef0974" id="r_a4b67e8a430be5b9150676f5103ef0974"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="#ae6baa7f85525bc34f52e77ac6cd2bbeb">UnmappedVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4b67e8a430be5b9150676f5103ef0974">GetUnmapped</a> () const</td></tr>
  185. <tr class="separator:a4b67e8a430be5b9150676f5103ef0974"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186. <tr class="memitem:ae5c8deb7c2eebbfd0f2088c33f991ec8" id="r_ae5c8deb7c2eebbfd0f2088c33f991ec8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#ae6baa7f85525bc34f52e77ac6cd2bbeb">UnmappedVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae5c8deb7c2eebbfd0f2088c33f991ec8">GetUnmapped</a> ()</td></tr>
  187. <tr class="separator:ae5c8deb7c2eebbfd0f2088c33f991ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <tr class="memitem:ae866ae2bc8b6461888f555b6a9be0d16" id="r_ae866ae2bc8b6461888f555b6a9be0d16"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="#a82c3843686fa3822fd9a5747be2a4b93">LockedVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae866ae2bc8b6461888f555b6a9be0d16">GetLockedTranslations</a> () const</td></tr>
  189. <tr class="separator:ae866ae2bc8b6461888f555b6a9be0d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. <tr class="memitem:a9e9a4605520a2d38d190e0f651b3b6c2" id="r_a9e9a4605520a2d38d190e0f651b3b6c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a82c3843686fa3822fd9a5747be2a4b93">LockedVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9e9a4605520a2d38d190e0f651b3b6c2">GetLockedTranslations</a> ()</td></tr>
  191. <tr class="separator:a9e9a4605520a2d38d190e0f651b3b6c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  192. <tr class="inherit_header pub_methods_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_ref_target')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_ref_target.html">RefTarget&lt; SkeletonMapper &gt;</a></td></tr>
  193. <tr class="memitem:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target" id="r_a4c8a23738e2e1dd6369520a30e250b17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a4c8a23738e2e1dd6369520a30e250b17">RefTarget</a> ()=default</td></tr>
  194. <tr class="memdesc:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
  195. <tr class="separator:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:a50444e3b659c6f93c64aee224a93f6ab inherit pub_methods_class_ref_target" id="r_a50444e3b659c6f93c64aee224a93f6ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a50444e3b659c6f93c64aee224a93f6ab">RefTarget</a> (const <a class="el" href="class_ref_target.html">RefTarget</a> &amp;)</td></tr>
  197. <tr class="separator:a50444e3b659c6f93c64aee224a93f6ab inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  198. <tr class="memitem:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target" id="r_ac3110b9f511287f881d7afaf26871e1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#ac3110b9f511287f881d7afaf26871e1b">~RefTarget</a> ()</td></tr>
  199. <tr class="memdesc:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">assert no one is referencing us <br /></td></tr>
  200. <tr class="separator:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  201. <tr class="memitem:a3befa746ea517453572f6f4f5fc3b099 inherit pub_methods_class_ref_target" id="r_a3befa746ea517453572f6f4f5fc3b099"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a3befa746ea517453572f6f4f5fc3b099">SetEmbedded</a> () const</td></tr>
  202. <tr class="separator:a3befa746ea517453572f6f4f5fc3b099 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  203. <tr class="memitem:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target" id="r_a1fc15bfe979bc43a7fa71c7c34f87ed0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_ref_target.html">RefTarget</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a1fc15bfe979bc43a7fa71c7c34f87ed0">operator=</a> (const <a class="el" href="class_ref_target.html">RefTarget</a> &amp;)</td></tr>
  204. <tr class="memdesc:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <br /></td></tr>
  205. <tr class="separator:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  206. <tr class="memitem:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target" id="r_acaf07366183c51cd8460c7d3dcd07c2d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#acaf07366183c51cd8460c7d3dcd07c2d">GetRefCount</a> () const</td></tr>
  207. <tr class="memdesc:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current refcount of this object. <br /></td></tr>
  208. <tr class="separator:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  209. <tr class="memitem:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target" id="r_acf02c18a343bc9de9d6afb7c966f0363"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#acf02c18a343bc9de9d6afb7c966f0363">AddRef</a> () const</td></tr>
  210. <tr class="memdesc:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add or release a reference to this object. <br /></td></tr>
  211. <tr class="separator:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  212. <tr class="memitem:a0451661dd5d85b01f969319e767993eb inherit pub_methods_class_ref_target" id="r_a0451661dd5d85b01f969319e767993eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a0451661dd5d85b01f969319e767993eb">Release</a> () const</td></tr>
  213. <tr class="separator:a0451661dd5d85b01f969319e767993eb inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  214. </table><table class="memberdecls">
  215. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  216. Static Public Member Functions</h2></td></tr>
  217. <tr class="memitem:a642ec444197fca150bddcadd5cb85bd5" id="r_a642ec444197fca150bddcadd5cb85bd5"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a642ec444197fca150bddcadd5cb85bd5">sDefaultCanMapJoint</a> (const <a class="el" href="class_skeleton.html">Skeleton</a> *inSkeleton1, int inIndex1, const <a class="el" href="class_skeleton.html">Skeleton</a> *inSkeleton2, int inIndex2)</td></tr>
  218. <tr class="memdesc:a642ec444197fca150bddcadd5cb85bd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default function that checks if the names of the joints are equal. <br /></td></tr>
  219. <tr class="separator:a642ec444197fca150bddcadd5cb85bd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  220. <tr class="inherit_header pub_static_methods_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_methods_class_ref_target')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_ref_target.html">RefTarget&lt; SkeletonMapper &gt;</a></td></tr>
  221. <tr class="memitem:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target" id="r_a58b5a94748691b18ecf651ce918ae743"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a58b5a94748691b18ecf651ce918ae743">sInternalGetRefCountOffset</a> ()</td></tr>
  222. <tr class="memdesc:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTERNAL HELPER FUNCTION USED BY SERIALIZATION. <br /></td></tr>
  223. <tr class="separator:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  224. </table><table class="memberdecls">
  225. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
  226. Additional Inherited Members</h2></td></tr>
  227. <tr class="inherit_header pro_attribs_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_attribs_class_ref_target')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_ref_target.html">RefTarget&lt; SkeletonMapper &gt;</a></td></tr>
  228. <tr class="memitem:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target" id="r_a12afba0bdae7706a0afd4d96ac128231"><td class="memItemLeft" align="right" valign="top">atomic&lt; <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a12afba0bdae7706a0afd4d96ac128231">mRefCount</a></td></tr>
  229. <tr class="memdesc:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current reference count. <br /></td></tr>
  230. <tr class="separator:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  231. <tr class="inherit_header pro_static_attribs_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_static_attribs_class_ref_target')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_ref_target.html">RefTarget&lt; SkeletonMapper &gt;</a></td></tr>
  232. <tr class="memitem:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target" id="r_ad37db773efa3c8756f6d95df3862b875"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#ad37db773efa3c8756f6d95df3862b875">cEmbedded</a></td></tr>
  233. <tr class="memdesc:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">A large value that gets added to the refcount to mark the object as embedded. <br /></td></tr>
  234. <tr class="separator:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  235. </table>
  236. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  237. <div class="textblock"><p>Class that is able to map a low detail (ragdoll) skeleton to a high detail (animation) skeleton and vice versa. </p>
  238. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  239. <a id="a6d56bcd1cbaecd9f2b9013e6e04b7bf8" name="a6d56bcd1cbaecd9f2b9013e6e04b7bf8"></a>
  240. <h2 class="memtitle"><span class="permalink"><a href="#a6d56bcd1cbaecd9f2b9013e6e04b7bf8">&#9670;&#160;</a></span>CanMapJoint</h2>
  241. <div class="memitem">
  242. <div class="memproto">
  243. <table class="memname">
  244. <tr>
  245. <td class="memname">using <a class="el" href="#a6d56bcd1cbaecd9f2b9013e6e04b7bf8">SkeletonMapper::CanMapJoint</a> = function&lt;bool (const <a class="el" href="class_skeleton.html">Skeleton</a> *, int, const <a class="el" href="class_skeleton.html">Skeleton</a> *, int)&gt;</td>
  246. </tr>
  247. </table>
  248. </div><div class="memdoc">
  249. <p>A function that is called to determine if a joint can be mapped from source to target skeleton. </p>
  250. </div>
  251. </div>
  252. <a id="a33aaf112a5908982c45a27b4c80155ea" name="a33aaf112a5908982c45a27b4c80155ea"></a>
  253. <h2 class="memtitle"><span class="permalink"><a href="#a33aaf112a5908982c45a27b4c80155ea">&#9670;&#160;</a></span>ChainVector</h2>
  254. <div class="memitem">
  255. <div class="memproto">
  256. <table class="memname">
  257. <tr>
  258. <td class="memname">using <a class="el" href="#a33aaf112a5908982c45a27b4c80155ea">SkeletonMapper::ChainVector</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="class_skeleton_mapper_1_1_chain.html">Chain</a>&gt;</td>
  259. </tr>
  260. </table>
  261. </div><div class="memdoc">
  262. </div>
  263. </div>
  264. <a id="a82c3843686fa3822fd9a5747be2a4b93" name="a82c3843686fa3822fd9a5747be2a4b93"></a>
  265. <h2 class="memtitle"><span class="permalink"><a href="#a82c3843686fa3822fd9a5747be2a4b93">&#9670;&#160;</a></span>LockedVector</h2>
  266. <div class="memitem">
  267. <div class="memproto">
  268. <table class="memname">
  269. <tr>
  270. <td class="memname">using <a class="el" href="#a82c3843686fa3822fd9a5747be2a4b93">SkeletonMapper::LockedVector</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="class_skeleton_mapper_1_1_locked.html">Locked</a>&gt;</td>
  271. </tr>
  272. </table>
  273. </div><div class="memdoc">
  274. </div>
  275. </div>
  276. <a id="a6f36fb9bc8686b8ec810c5435c03f419" name="a6f36fb9bc8686b8ec810c5435c03f419"></a>
  277. <h2 class="memtitle"><span class="permalink"><a href="#a6f36fb9bc8686b8ec810c5435c03f419">&#9670;&#160;</a></span>MappingVector</h2>
  278. <div class="memitem">
  279. <div class="memproto">
  280. <table class="memname">
  281. <tr>
  282. <td class="memname">using <a class="el" href="#a6f36fb9bc8686b8ec810c5435c03f419">SkeletonMapper::MappingVector</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="class_skeleton_mapper_1_1_mapping.html">Mapping</a>&gt;</td>
  283. </tr>
  284. </table>
  285. </div><div class="memdoc">
  286. </div>
  287. </div>
  288. <a id="ae6baa7f85525bc34f52e77ac6cd2bbeb" name="ae6baa7f85525bc34f52e77ac6cd2bbeb"></a>
  289. <h2 class="memtitle"><span class="permalink"><a href="#ae6baa7f85525bc34f52e77ac6cd2bbeb">&#9670;&#160;</a></span>UnmappedVector</h2>
  290. <div class="memitem">
  291. <div class="memproto">
  292. <table class="memname">
  293. <tr>
  294. <td class="memname">using <a class="el" href="#ae6baa7f85525bc34f52e77ac6cd2bbeb">SkeletonMapper::UnmappedVector</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="class_skeleton_mapper_1_1_unmapped.html">Unmapped</a>&gt;</td>
  295. </tr>
  296. </table>
  297. </div><div class="memdoc">
  298. </div>
  299. </div>
  300. <h2 class="groupheader">Member Function Documentation</h2>
  301. <a id="a5438aa5e4ec00c89a000a12db4d4c8d4" name="a5438aa5e4ec00c89a000a12db4d4c8d4"></a>
  302. <h2 class="memtitle"><span class="permalink"><a href="#a5438aa5e4ec00c89a000a12db4d4c8d4">&#9670;&#160;</a></span>GetChains() <span class="overload">[1/2]</span></h2>
  303. <div class="memitem">
  304. <div class="memproto">
  305. <table class="mlabels">
  306. <tr>
  307. <td class="mlabels-left">
  308. <table class="memname">
  309. <tr>
  310. <td class="memname"><a class="el" href="#a33aaf112a5908982c45a27b4c80155ea">ChainVector</a> &amp; SkeletonMapper::GetChains </td>
  311. <td>(</td>
  312. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  313. <td></td>
  314. </tr>
  315. </table>
  316. </td>
  317. <td class="mlabels-right">
  318. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  319. </tr>
  320. </table>
  321. </div><div class="memdoc">
  322. </div>
  323. </div>
  324. <a id="ad60ebc6d5ff4c2d1402199c56f698c4a" name="ad60ebc6d5ff4c2d1402199c56f698c4a"></a>
  325. <h2 class="memtitle"><span class="permalink"><a href="#ad60ebc6d5ff4c2d1402199c56f698c4a">&#9670;&#160;</a></span>GetChains() <span class="overload">[2/2]</span></h2>
  326. <div class="memitem">
  327. <div class="memproto">
  328. <table class="mlabels">
  329. <tr>
  330. <td class="mlabels-left">
  331. <table class="memname">
  332. <tr>
  333. <td class="memname">const <a class="el" href="#a33aaf112a5908982c45a27b4c80155ea">ChainVector</a> &amp; SkeletonMapper::GetChains </td>
  334. <td>(</td>
  335. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  336. <td> const</td>
  337. </tr>
  338. </table>
  339. </td>
  340. <td class="mlabels-right">
  341. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  342. </tr>
  343. </table>
  344. </div><div class="memdoc">
  345. </div>
  346. </div>
  347. <a id="a9e9a4605520a2d38d190e0f651b3b6c2" name="a9e9a4605520a2d38d190e0f651b3b6c2"></a>
  348. <h2 class="memtitle"><span class="permalink"><a href="#a9e9a4605520a2d38d190e0f651b3b6c2">&#9670;&#160;</a></span>GetLockedTranslations() <span class="overload">[1/2]</span></h2>
  349. <div class="memitem">
  350. <div class="memproto">
  351. <table class="mlabels">
  352. <tr>
  353. <td class="mlabels-left">
  354. <table class="memname">
  355. <tr>
  356. <td class="memname"><a class="el" href="#a82c3843686fa3822fd9a5747be2a4b93">LockedVector</a> &amp; SkeletonMapper::GetLockedTranslations </td>
  357. <td>(</td>
  358. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  359. <td></td>
  360. </tr>
  361. </table>
  362. </td>
  363. <td class="mlabels-right">
  364. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  365. </tr>
  366. </table>
  367. </div><div class="memdoc">
  368. </div>
  369. </div>
  370. <a id="ae866ae2bc8b6461888f555b6a9be0d16" name="ae866ae2bc8b6461888f555b6a9be0d16"></a>
  371. <h2 class="memtitle"><span class="permalink"><a href="#ae866ae2bc8b6461888f555b6a9be0d16">&#9670;&#160;</a></span>GetLockedTranslations() <span class="overload">[2/2]</span></h2>
  372. <div class="memitem">
  373. <div class="memproto">
  374. <table class="mlabels">
  375. <tr>
  376. <td class="mlabels-left">
  377. <table class="memname">
  378. <tr>
  379. <td class="memname">const <a class="el" href="#a82c3843686fa3822fd9a5747be2a4b93">LockedVector</a> &amp; SkeletonMapper::GetLockedTranslations </td>
  380. <td>(</td>
  381. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  382. <td> const</td>
  383. </tr>
  384. </table>
  385. </td>
  386. <td class="mlabels-right">
  387. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  388. </tr>
  389. </table>
  390. </div><div class="memdoc">
  391. </div>
  392. </div>
  393. <a id="a21b16b76b464cf207878aa382c6cfde4" name="a21b16b76b464cf207878aa382c6cfde4"></a>
  394. <h2 class="memtitle"><span class="permalink"><a href="#a21b16b76b464cf207878aa382c6cfde4">&#9670;&#160;</a></span>GetMappedJointIdx()</h2>
  395. <div class="memitem">
  396. <div class="memproto">
  397. <table class="memname">
  398. <tr>
  399. <td class="memname">int SkeletonMapper::GetMappedJointIdx </td>
  400. <td>(</td>
  401. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inJoint1Idx</em></span></td><td>)</td>
  402. <td> const</td>
  403. </tr>
  404. </table>
  405. </div><div class="memdoc">
  406. <p>Search through the directly mapped joints (mMappings) and find inJoint1Idx, returns the corresponding Joint2Idx or -1 if not found. </p>
  407. </div>
  408. </div>
  409. <a id="a120855b77dff525cd820068b115e101f" name="a120855b77dff525cd820068b115e101f"></a>
  410. <h2 class="memtitle"><span class="permalink"><a href="#a120855b77dff525cd820068b115e101f">&#9670;&#160;</a></span>GetMappings() <span class="overload">[1/2]</span></h2>
  411. <div class="memitem">
  412. <div class="memproto">
  413. <table class="mlabels">
  414. <tr>
  415. <td class="mlabels-left">
  416. <table class="memname">
  417. <tr>
  418. <td class="memname"><a class="el" href="#a6f36fb9bc8686b8ec810c5435c03f419">MappingVector</a> &amp; SkeletonMapper::GetMappings </td>
  419. <td>(</td>
  420. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  421. <td></td>
  422. </tr>
  423. </table>
  424. </td>
  425. <td class="mlabels-right">
  426. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  427. </tr>
  428. </table>
  429. </div><div class="memdoc">
  430. </div>
  431. </div>
  432. <a id="a13fa458d09dbb5f053aff54bb009d0eb" name="a13fa458d09dbb5f053aff54bb009d0eb"></a>
  433. <h2 class="memtitle"><span class="permalink"><a href="#a13fa458d09dbb5f053aff54bb009d0eb">&#9670;&#160;</a></span>GetMappings() <span class="overload">[2/2]</span></h2>
  434. <div class="memitem">
  435. <div class="memproto">
  436. <table class="mlabels">
  437. <tr>
  438. <td class="mlabels-left">
  439. <table class="memname">
  440. <tr>
  441. <td class="memname">const <a class="el" href="#a6f36fb9bc8686b8ec810c5435c03f419">MappingVector</a> &amp; SkeletonMapper::GetMappings </td>
  442. <td>(</td>
  443. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  444. <td> const</td>
  445. </tr>
  446. </table>
  447. </td>
  448. <td class="mlabels-right">
  449. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  450. </tr>
  451. </table>
  452. </div><div class="memdoc">
  453. </div>
  454. </div>
  455. <a id="ae5c8deb7c2eebbfd0f2088c33f991ec8" name="ae5c8deb7c2eebbfd0f2088c33f991ec8"></a>
  456. <h2 class="memtitle"><span class="permalink"><a href="#ae5c8deb7c2eebbfd0f2088c33f991ec8">&#9670;&#160;</a></span>GetUnmapped() <span class="overload">[1/2]</span></h2>
  457. <div class="memitem">
  458. <div class="memproto">
  459. <table class="mlabels">
  460. <tr>
  461. <td class="mlabels-left">
  462. <table class="memname">
  463. <tr>
  464. <td class="memname"><a class="el" href="#ae6baa7f85525bc34f52e77ac6cd2bbeb">UnmappedVector</a> &amp; SkeletonMapper::GetUnmapped </td>
  465. <td>(</td>
  466. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  467. <td></td>
  468. </tr>
  469. </table>
  470. </td>
  471. <td class="mlabels-right">
  472. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  473. </tr>
  474. </table>
  475. </div><div class="memdoc">
  476. </div>
  477. </div>
  478. <a id="a4b67e8a430be5b9150676f5103ef0974" name="a4b67e8a430be5b9150676f5103ef0974"></a>
  479. <h2 class="memtitle"><span class="permalink"><a href="#a4b67e8a430be5b9150676f5103ef0974">&#9670;&#160;</a></span>GetUnmapped() <span class="overload">[2/2]</span></h2>
  480. <div class="memitem">
  481. <div class="memproto">
  482. <table class="mlabels">
  483. <tr>
  484. <td class="mlabels-left">
  485. <table class="memname">
  486. <tr>
  487. <td class="memname">const <a class="el" href="#ae6baa7f85525bc34f52e77ac6cd2bbeb">UnmappedVector</a> &amp; SkeletonMapper::GetUnmapped </td>
  488. <td>(</td>
  489. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  490. <td> const</td>
  491. </tr>
  492. </table>
  493. </td>
  494. <td class="mlabels-right">
  495. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  496. </tr>
  497. </table>
  498. </div><div class="memdoc">
  499. </div>
  500. </div>
  501. <a id="a4c6938fe3c8557ea55e10cc3c8bfc387" name="a4c6938fe3c8557ea55e10cc3c8bfc387"></a>
  502. <h2 class="memtitle"><span class="permalink"><a href="#a4c6938fe3c8557ea55e10cc3c8bfc387">&#9670;&#160;</a></span>Initialize()</h2>
  503. <div class="memitem">
  504. <div class="memproto">
  505. <table class="memname">
  506. <tr>
  507. <td class="memname"><a class="el" href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a> void SkeletonMapper::Initialize </td>
  508. <td>(</td>
  509. <td class="paramtype">const <a class="el" href="class_skeleton.html">Skeleton</a> *</td> <td class="paramname"><span class="paramname"><em>inSkeleton1</em></span>, </td>
  510. </tr>
  511. <tr>
  512. <td class="paramkey"></td>
  513. <td></td>
  514. <td class="paramtype">const <a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>inNeutralPose1</em></span>, </td>
  515. </tr>
  516. <tr>
  517. <td class="paramkey"></td>
  518. <td></td>
  519. <td class="paramtype">const <a class="el" href="class_skeleton.html">Skeleton</a> *</td> <td class="paramname"><span class="paramname"><em>inSkeleton2</em></span>, </td>
  520. </tr>
  521. <tr>
  522. <td class="paramkey"></td>
  523. <td></td>
  524. <td class="paramtype">const <a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>inNeutralPose2</em></span>, </td>
  525. </tr>
  526. <tr>
  527. <td class="paramkey"></td>
  528. <td></td>
  529. <td class="paramtype">const <a class="el" href="#a6d56bcd1cbaecd9f2b9013e6e04b7bf8">CanMapJoint</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inCanMapJoint</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="#a642ec444197fca150bddcadd5cb85bd5">sDefaultCanMapJoint</a></span>&#160;)</td>
  530. </tr>
  531. </table>
  532. </div><div class="memdoc">
  533. <p>Initialize the skeleton mapper. <a class="el" href="class_skeleton.html" title="Resource that contains the joint hierarchy for a skeleton.">Skeleton</a> 1 should be the (low detail) ragdoll skeleton and skeleton 2 the (high detail) animation skeleton. We assume that each joint in skeleton 1 can be mapped to a joint in skeleton 2 (if not mapping from animation skeleton to ragdoll skeleton will be undefined). <a class="el" href="class_skeleton.html" title="Resource that contains the joint hierarchy for a skeleton.">Skeleton</a> 2 should have the same hierarchy as skeleton 1 but can contain extra joints between those in skeleton 1 and it can have extra joints at the root and leaves of the skeleton. </p><dl class="params"><dt>Parameters</dt><dd>
  534. <table class="params">
  535. <tr><td class="paramname">inSkeleton1</td><td>Source skeleton to map from. </td></tr>
  536. <tr><td class="paramname">inNeutralPose1</td><td>Neutral pose of the source skeleton (model space) </td></tr>
  537. <tr><td class="paramname">inSkeleton2</td><td>Target skeleton to map to. </td></tr>
  538. <tr><td class="paramname">inNeutralPose2</td><td>Neutral pose of the target skeleton (model space), inNeutralPose1 and inNeutralPose2 must match as closely as possible, preferably the position of the mappable joints should be identical. </td></tr>
  539. <tr><td class="paramname">inCanMapJoint</td><td>Function that checks if joints in skeleton 1 and skeleton 2 are equal. </td></tr>
  540. </table>
  541. </dd>
  542. </dl>
  543. </div>
  544. </div>
  545. <a id="a6fcd34ef9c18a53f65679b5d671e6147" name="a6fcd34ef9c18a53f65679b5d671e6147"></a>
  546. <h2 class="memtitle"><span class="permalink"><a href="#a6fcd34ef9c18a53f65679b5d671e6147">&#9670;&#160;</a></span>IsJointTranslationLocked()</h2>
  547. <div class="memitem">
  548. <div class="memproto">
  549. <table class="memname">
  550. <tr>
  551. <td class="memname">bool SkeletonMapper::IsJointTranslationLocked </td>
  552. <td>(</td>
  553. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inJoint2Idx</em></span></td><td>)</td>
  554. <td> const</td>
  555. </tr>
  556. </table>
  557. </div><div class="memdoc">
  558. <p>Search through the locked translations (mLockedTranslations) and find if joint inJoint2Idx is locked. </p>
  559. </div>
  560. </div>
  561. <a id="abbaa0b7c3a89c8332342c2cc6aa74262" name="abbaa0b7c3a89c8332342c2cc6aa74262"></a>
  562. <h2 class="memtitle"><span class="permalink"><a href="#abbaa0b7c3a89c8332342c2cc6aa74262">&#9670;&#160;</a></span>LockAllTranslations()</h2>
  563. <div class="memitem">
  564. <div class="memproto">
  565. <table class="memname">
  566. <tr>
  567. <td class="memname">void SkeletonMapper::LockAllTranslations </td>
  568. <td>(</td>
  569. <td class="paramtype">const <a class="el" href="class_skeleton.html">Skeleton</a> *</td> <td class="paramname"><span class="paramname"><em>inSkeleton2</em></span>, </td>
  570. </tr>
  571. <tr>
  572. <td class="paramkey"></td>
  573. <td></td>
  574. <td class="paramtype">const <a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>inNeutralPose2</em></span>&#160;)</td>
  575. </tr>
  576. </table>
  577. </div><div class="memdoc">
  578. <p>After <a class="el" href="#a4c6938fe3c8557ea55e10cc3c8bfc387">Initialize()</a>, this can be called to lock the translation of all joints in skeleton 2 below the first mapped joint to those of the neutral pose. Because constraints are never 100% rigid, there's always a little bit of stretch in the ragdoll when the ragdoll is under stress. Locking the translations of the pose will remove the visual stretch from the ragdoll but will introduce a difference between the physical simulation and the visual representation. </p><dl class="params"><dt>Parameters</dt><dd>
  579. <table class="params">
  580. <tr><td class="paramname">inSkeleton2</td><td>Target skeleton to map to. </td></tr>
  581. <tr><td class="paramname">inNeutralPose2</td><td>Neutral pose to take reference translations from </td></tr>
  582. </table>
  583. </dd>
  584. </dl>
  585. </div>
  586. </div>
  587. <a id="a2741193b04cb2cbe14996962fbf71b97" name="a2741193b04cb2cbe14996962fbf71b97"></a>
  588. <h2 class="memtitle"><span class="permalink"><a href="#a2741193b04cb2cbe14996962fbf71b97">&#9670;&#160;</a></span>LockTranslations()</h2>
  589. <div class="memitem">
  590. <div class="memproto">
  591. <table class="memname">
  592. <tr>
  593. <td class="memname">void SkeletonMapper::LockTranslations </td>
  594. <td>(</td>
  595. <td class="paramtype">const <a class="el" href="class_skeleton.html">Skeleton</a> *</td> <td class="paramname"><span class="paramname"><em>inSkeleton2</em></span>, </td>
  596. </tr>
  597. <tr>
  598. <td class="paramkey"></td>
  599. <td></td>
  600. <td class="paramtype">const bool *</td> <td class="paramname"><span class="paramname"><em>inLockedTranslations</em></span>, </td>
  601. </tr>
  602. <tr>
  603. <td class="paramkey"></td>
  604. <td></td>
  605. <td class="paramtype">const <a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>inNeutralPose2</em></span>&#160;)</td>
  606. </tr>
  607. </table>
  608. </div><div class="memdoc">
  609. <p>This can be called so lock the translation of a specified set of joints in skeleton 2. Because constraints are never 100% rigid, there's always a little bit of stretch in the ragdoll when the ragdoll is under stress. Locking the translations of the pose will remove the visual stretch from the ragdoll but will introduce a difference between the physical simulation and the visual representation. </p><dl class="params"><dt>Parameters</dt><dd>
  610. <table class="params">
  611. <tr><td class="paramname">inSkeleton2</td><td>Target skeleton to map to. </td></tr>
  612. <tr><td class="paramname">inLockedTranslations</td><td>An array of bools the size of inSkeleton2-&gt;GetJointCount(), for each joint indicating if the joint is locked. </td></tr>
  613. <tr><td class="paramname">inNeutralPose2</td><td>Neutral pose to take reference translations from </td></tr>
  614. </table>
  615. </dd>
  616. </dl>
  617. </div>
  618. </div>
  619. <a id="aa5ea82586d40fbdc0d2930e51b008c9c" name="aa5ea82586d40fbdc0d2930e51b008c9c"></a>
  620. <h2 class="memtitle"><span class="permalink"><a href="#aa5ea82586d40fbdc0d2930e51b008c9c">&#9670;&#160;</a></span>Map()</h2>
  621. <div class="memitem">
  622. <div class="memproto">
  623. <table class="memname">
  624. <tr>
  625. <td class="memname">void SkeletonMapper::Map </td>
  626. <td>(</td>
  627. <td class="paramtype">const <a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>inPose1ModelSpace</em></span>, </td>
  628. </tr>
  629. <tr>
  630. <td class="paramkey"></td>
  631. <td></td>
  632. <td class="paramtype">const <a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>inPose2LocalSpace</em></span>, </td>
  633. </tr>
  634. <tr>
  635. <td class="paramkey"></td>
  636. <td></td>
  637. <td class="paramtype"><a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>outPose2ModelSpace</em></span>&#160;) const</td>
  638. </tr>
  639. </table>
  640. </div><div class="memdoc">
  641. <p>Map a pose. Joints that were directly mappable will be copied in model space from pose 1 to pose 2. Any joints that are only present in skeleton 2 will get their model space transform calculated through the local space transforms of pose 2. Joints that are part of a joint chain between two mapped joints will be reoriented towards the next joint in skeleton 1. This means that it is possible for unmapped joints to have some animation, but very extreme animation poses will show artifacts. </p><dl class="params"><dt>Parameters</dt><dd>
  642. <table class="params">
  643. <tr><td class="paramname">inPose1ModelSpace</td><td>Pose on skeleton 1 in model space </td></tr>
  644. <tr><td class="paramname">inPose2LocalSpace</td><td>Pose on skeleton 2 in local space (used for the joints that cannot be mapped) </td></tr>
  645. <tr><td class="paramname">outPose2ModelSpace</td><td>Model space pose on skeleton 2 (the output of the mapping) </td></tr>
  646. </table>
  647. </dd>
  648. </dl>
  649. </div>
  650. </div>
  651. <a id="a64ebec9cb8e8f0f7a4ec68fa0c30bfd6" name="a64ebec9cb8e8f0f7a4ec68fa0c30bfd6"></a>
  652. <h2 class="memtitle"><span class="permalink"><a href="#a64ebec9cb8e8f0f7a4ec68fa0c30bfd6">&#9670;&#160;</a></span>MapReverse()</h2>
  653. <div class="memitem">
  654. <div class="memproto">
  655. <table class="memname">
  656. <tr>
  657. <td class="memname">void SkeletonMapper::MapReverse </td>
  658. <td>(</td>
  659. <td class="paramtype">const <a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>inPose2ModelSpace</em></span>, </td>
  660. </tr>
  661. <tr>
  662. <td class="paramkey"></td>
  663. <td></td>
  664. <td class="paramtype"><a class="el" href="class_mat44.html">Mat44</a> *</td> <td class="paramname"><span class="paramname"><em>outPose1ModelSpace</em></span>&#160;) const</td>
  665. </tr>
  666. </table>
  667. </div><div class="memdoc">
  668. <p>Reverse map a pose, this will only use the mappings and not the chains (it assumes that all joints in skeleton 1 are mapped) </p><dl class="params"><dt>Parameters</dt><dd>
  669. <table class="params">
  670. <tr><td class="paramname">inPose2ModelSpace</td><td>Model space pose on skeleton 2 </td></tr>
  671. <tr><td class="paramname">outPose1ModelSpace</td><td>When the function returns this will contain the model space pose for skeleton 1 </td></tr>
  672. </table>
  673. </dd>
  674. </dl>
  675. </div>
  676. </div>
  677. <a id="a642ec444197fca150bddcadd5cb85bd5" name="a642ec444197fca150bddcadd5cb85bd5"></a>
  678. <h2 class="memtitle"><span class="permalink"><a href="#a642ec444197fca150bddcadd5cb85bd5">&#9670;&#160;</a></span>sDefaultCanMapJoint()</h2>
  679. <div class="memitem">
  680. <div class="memproto">
  681. <table class="mlabels">
  682. <tr>
  683. <td class="mlabels-left">
  684. <table class="memname">
  685. <tr>
  686. <td class="memname">static bool SkeletonMapper::sDefaultCanMapJoint </td>
  687. <td>(</td>
  688. <td class="paramtype">const <a class="el" href="class_skeleton.html">Skeleton</a> *</td> <td class="paramname"><span class="paramname"><em>inSkeleton1</em></span>, </td>
  689. </tr>
  690. <tr>
  691. <td class="paramkey"></td>
  692. <td></td>
  693. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIndex1</em></span>, </td>
  694. </tr>
  695. <tr>
  696. <td class="paramkey"></td>
  697. <td></td>
  698. <td class="paramtype">const <a class="el" href="class_skeleton.html">Skeleton</a> *</td> <td class="paramname"><span class="paramname"><em>inSkeleton2</em></span>, </td>
  699. </tr>
  700. <tr>
  701. <td class="paramkey"></td>
  702. <td></td>
  703. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIndex2</em></span>&#160;)</td>
  704. </tr>
  705. </table>
  706. </td>
  707. <td class="mlabels-right">
  708. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  709. </tr>
  710. </table>
  711. </div><div class="memdoc">
  712. <p>Default function that checks if the names of the joints are equal. </p>
  713. </div>
  714. </div>
  715. <hr/>The documentation for this class was generated from the following files:<ul>
  716. <li>Jolt/Skeleton/<a class="el" href="_skeleton_mapper_8h_source.html">SkeletonMapper.h</a></li>
  717. <li>Jolt/Skeleton/<a class="el" href="_skeleton_mapper_8cpp.html">SkeletonMapper.cpp</a></li>
  718. </ul>
  719. </div><!-- contents -->
  720. </div><!-- doc-content -->
  721. <!-- start footer part -->
  722. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  723. <ul>
  724. <li class="navelem"><a class="el" href="class_skeleton_mapper.html">SkeletonMapper</a></li>
  725. <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>
  726. </ul>
  727. </div>
  728. </body>
  729. </html>