Files
PhysX4.1/physx/documentation/PhysXAPI/files/classPxDeserializationContext.html
2025-11-28 23:13:44 +05:30

437 lines
27 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxDeserializationContext Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classPxDeserializationContext.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classPxDeserializationContext-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">PxDeserializationContext Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__common.html">Common</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Binary deserialization context class.
<a href="classPxDeserializationContext.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PxSerialFramework_8h_source.html">PxSerialFramework.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab190b79866da182afa6f3f23f48d1d37"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classPxBase.html">PxBase</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#ab190b79866da182afa6f3f23f48d1d37">resolveReference</a> (<a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> kind, size_t reference) const =0</td></tr>
<tr class="memdesc:ab190b79866da182afa6f3f23f48d1d37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a pointer to a deserialized <a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> object given a corresponding deserialized reference value. <a href="#ab190b79866da182afa6f3f23f48d1d37">More...</a><br /></td></tr>
<tr class="separator:ab190b79866da182afa6f3f23f48d1d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a155f00275087cb2faf4819bca9d21989"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a155f00275087cb2faf4819bca9d21989"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#a155f00275087cb2faf4819bca9d21989">translatePxBase</a> (T *&amp;base)</td></tr>
<tr class="memdesc:a155f00275087cb2faf4819bca9d21989"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to update <a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> pointer on deserialization. <a href="#a155f00275087cb2faf4819bca9d21989">More...</a><br /></td></tr>
<tr class="separator:a155f00275087cb2faf4819bca9d21989"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a393b7ca347c967d330791d19b2e37006"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#a393b7ca347c967d330791d19b2e37006">readName</a> (const char *&amp;name)</td></tr>
<tr class="memdesc:a393b7ca347c967d330791d19b2e37006"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to read a name from the extra data during deserialization. <a href="#a393b7ca347c967d330791d19b2e37006">More...</a><br /></td></tr>
<tr class="separator:a393b7ca347c967d330791d19b2e37006"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec988e991d65c299c9f4742c0ada3ccc"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aec988e991d65c299c9f4742c0ada3ccc"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#aec988e991d65c299c9f4742c0ada3ccc">readExtraData</a> (<a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> count=1)</td></tr>
<tr class="memdesc:aec988e991d65c299c9f4742c0ada3ccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to read extra data during deserialization. <a href="#aec988e991d65c299c9f4742c0ada3ccc">More...</a><br /></td></tr>
<tr class="separator:aec988e991d65c299c9f4742c0ada3ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c9fff58c41cd679b10359b836851263"><td class="memTemplParams" colspan="2">template&lt;typename T , PxU32 alignment&gt; </td></tr>
<tr class="memitem:a5c9fff58c41cd679b10359b836851263"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#a5c9fff58c41cd679b10359b836851263">readExtraData</a> (<a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> count=1)</td></tr>
<tr class="memdesc:a5c9fff58c41cd679b10359b836851263"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to read extra data during deserialization optionally aligning the extra data stream before reading. <a href="#a5c9fff58c41cd679b10359b836851263">More...</a><br /></td></tr>
<tr class="separator:a5c9fff58c41cd679b10359b836851263"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6b8fa92c606bc4641ef3e06750b4a37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#af6b8fa92c606bc4641ef3e06750b4a37">alignExtraData</a> (<a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> alignment=<a class="el" href="group__common.html#ga2fda99afe264006a8ef8a699aa1328aa">PX_SERIAL_ALIGN</a>)</td></tr>
<tr class="memdesc:af6b8fa92c606bc4641ef3e06750b4a37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to align the extra data stream to a power of 2 alignment. <a href="#af6b8fa92c606bc4641ef3e06750b4a37">More...</a><br /></td></tr>
<tr class="separator:af6b8fa92c606bc4641ef3e06750b4a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a18007433a2cc90ef8ccf4353fb8b123d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#a18007433a2cc90ef8ccf4353fb8b123d">PxDeserializationContext</a> ()</td></tr>
<tr class="separator:a18007433a2cc90ef8ccf4353fb8b123d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2299e472c6c4dc486cbd08385efd31d9"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#a2299e472c6c4dc486cbd08385efd31d9">~PxDeserializationContext</a> ()</td></tr>
<tr class="separator:a2299e472c6c4dc486cbd08385efd31d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a91c4d17f9b7f7acd3cd7a119fe701939"><td class="memItemLeft" align="right" valign="top">PxU8 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxDeserializationContext.html#a91c4d17f9b7f7acd3cd7a119fe701939">mExtraDataAddress</a></td></tr>
<tr class="separator:a91c4d17f9b7f7acd3cd7a119fe701939"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Binary deserialization context class. </p>
<p>This class is used to resolve references and access extra data during deserialization. It is mainly used by the serialization framework. Except for custom serializable types, users should not have to worry about it.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSerializationContext.html" title="Binary serialization context class. ">PxSerializationContext</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a18007433a2cc90ef8ccf4353fb8b123d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18007433a2cc90ef8ccf4353fb8b123d">&#9670;&nbsp;</a></span>PxDeserializationContext()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">PxDeserializationContext::PxDeserializationContext </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2299e472c6c4dc486cbd08385efd31d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2299e472c6c4dc486cbd08385efd31d9">&#9670;&nbsp;</a></span>~PxDeserializationContext()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual PxDeserializationContext::~PxDeserializationContext </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="af6b8fa92c606bc4641ef3e06750b4a37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6b8fa92c606bc4641ef3e06750b4a37">&#9670;&nbsp;</a></span>alignExtraData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> void PxDeserializationContext::alignExtraData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>alignment</em> = <code><a class="el" href="group__common.html#ga2fda99afe264006a8ef8a699aa1328aa">PX_SERIAL_ALIGN</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Function to align the extra data stream to a power of 2 alignment. </p>
<p>This function is assumed to be called within the implementation of <a class="el" href="classPxSerializer.html#a1fadfa942cb290428004ef688825dfb3" title="Create object at a given address, resolve references and import extra data. ">PxSerializer::createObject</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSerializationContext.html#a5d7a1f5789f666908ea28caf166fc609" title="Aligns the serialized data. ">PxSerializationContext::alignData</a>, <a class="el" href="classPxSerializer.html#a1fadfa942cb290428004ef688825dfb3" title="Create object at a given address, resolve references and import extra data. ">PxSerializer::createObject</a> </dd></dl>
</div>
</div>
<a id="aec988e991d65c299c9f4742c0ada3ccc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec988e991d65c299c9f4742c0ada3ccc">&#9670;&nbsp;</a></span>readExtraData() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> T* PxDeserializationContext::readExtraData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>count</em> = <code>1</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Function to read extra data during deserialization. </p>
<p>This function is assumed to be called within the implementation of <a class="el" href="classPxSerializer.html#a1fadfa942cb290428004ef688825dfb3" title="Create object at a given address, resolve references and import extra data. ">PxSerializer::createObject</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSerializationContext.html#a2cb3cc1613a70406c2bf89ec53035a22" title="Serializes object data and object extra data. ">PxSerializationContext::writeData</a>, <a class="el" href="classPxSerializer.html#a1fadfa942cb290428004ef688825dfb3" title="Create object at a given address, resolve references and import extra data. ">PxSerializer::createObject</a> </dd></dl>
</div>
</div>
<a id="a5c9fff58c41cd679b10359b836851263"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c9fff58c41cd679b10359b836851263">&#9670;&nbsp;</a></span>readExtraData() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , PxU32 alignment&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> T* PxDeserializationContext::readExtraData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>count</em> = <code>1</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Function to read extra data during deserialization optionally aligning the extra data stream before reading. </p>
<p>This function is assumed to be called within the implementation of <a class="el" href="classPxSerializer.html#a1fadfa942cb290428004ef688825dfb3" title="Create object at a given address, resolve references and import extra data. ">PxSerializer::createObject</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSerializationContext.html#a2cb3cc1613a70406c2bf89ec53035a22" title="Serializes object data and object extra data. ">PxSerializationContext::writeData</a>, <a class="el" href="classPxDeserializationContext.html#af6b8fa92c606bc4641ef3e06750b4a37" title="Function to align the extra data stream to a power of 2 alignment. ">PxDeserializationContext::alignExtraData</a>, <a class="el" href="classPxSerializer.html#a1fadfa942cb290428004ef688825dfb3" title="Create object at a given address, resolve references and import extra data. ">PxSerializer::createObject</a> </dd></dl>
</div>
</div>
<a id="a393b7ca347c967d330791d19b2e37006"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a393b7ca347c967d330791d19b2e37006">&#9670;&nbsp;</a></span>readName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> void PxDeserializationContext::readName </td>
<td>(</td>
<td class="paramtype">const char *&amp;&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function to read a name from the extra data during deserialization. </p>
<p>This function is assumed to be called within the implementation of <a class="el" href="classPxSerializer.html#a1fadfa942cb290428004ef688825dfb3" title="Create object at a given address, resolve references and import extra data. ">PxSerializer::createObject</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSerializationContext.html#a1a708961bc536693395826a6bc11a8f6" title="Helper function to write a name to the extraData if serialization is configured to save names...">PxSerializationContext::writeName</a> </dd></dl>
</div>
</div>
<a id="ab190b79866da182afa6f3f23f48d1d37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab190b79866da182afa6f3f23f48d1d37">&#9670;&nbsp;</a></span>resolveReference()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classPxBase.html">PxBase</a>* PxDeserializationContext::resolveReference </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>reference</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves a pointer to a deserialized <a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> object given a corresponding deserialized reference value. </p>
<p>This method is assumed to be called in the implementation of <a class="el" href="classPxSerializer.html#a1fadfa942cb290428004ef688825dfb3" title="Create object at a given address, resolve references and import extra data. ">PxSerializer::createObject</a> in order to update reference values on deserialization.</p>
<p>To update a <a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> reference the corresponding deserialized pointer value needs to be provided in order to retrieve the location of the corresponding deserialized <a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> object. (<a class="el" href="classPxDeserializationContext.html#a155f00275087cb2faf4819bca9d21989" title="Helper function to update PxBase pointer on deserialization. ">PxDeserializationContext::translatePxBase</a> simplifies this common case).</p>
<p>For other kinds of references the reverence values need to be updated by deduction given the corresponding <a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> instance.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">kind</td><td>What kind of reference this is (PX_SERIAL_REF_KIND_PXBASE, PX_SERIAL_REF_KIND_MATERIAL_IDX or custom kind) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">reference</td><td>Deserialized reference value </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> object associated with the reference value</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSerializationContext.html#ade8ef3b58a16bab4f4cbd3c04a891817" title="Registers a reference value corresponding to a PxBase object. ">PxSerializationContext::registerReference</a>, <a class="el" href="group__common.html#ga8cd51251f2e11c3b6598b96f32e400f8" title="Reference kind value for PxBase objects. ">PX_SERIAL_REF_KIND_PXBASE</a>, <a class="el" href="group__common.html#ga27914dcd6d0448671eebfeca012cd0b5" title="Reference kind value for material indices. ">PX_SERIAL_REF_KIND_MATERIAL_IDX</a>, <a class="el" href="classPxDeserializationContext.html#a155f00275087cb2faf4819bca9d21989" title="Helper function to update PxBase pointer on deserialization. ">translatePxBase</a> </dd></dl>
</div>
</div>
<a id="a155f00275087cb2faf4819bca9d21989"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a155f00275087cb2faf4819bca9d21989">&#9670;&nbsp;</a></span>translatePxBase()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PxDeserializationContext::translatePxBase </td>
<td>(</td>
<td class="paramtype">T *&amp;&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function to update <a class="el" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. ">PxBase</a> pointer on deserialization. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxDeserializationContext.html#ab190b79866da182afa6f3f23f48d1d37" title="Retrieves a pointer to a deserialized PxBase object given a corresponding deserialized reference valu...">resolveReference</a>, <a class="el" href="group__common.html#ga8cd51251f2e11c3b6598b96f32e400f8" title="Reference kind value for PxBase objects. ">PX_SERIAL_REF_KIND_PXBASE</a> </dd></dl>
<p class="reference">References <a class="el" href="group__common.html#ga8cd51251f2e11c3b6598b96f32e400f8">PX_SERIAL_REF_KIND_PXBASE</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a91c4d17f9b7f7acd3cd7a119fe701939"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91c4d17f9b7f7acd3cd7a119fe701939">&#9670;&nbsp;</a></span>mExtraDataAddress</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">PxU8* PxDeserializationContext::mExtraDataAddress</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PxSerialFramework_8h_source.html">PxSerialFramework.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classPxDeserializationContext.html">PxDeserializationContext</a></li>
<li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
</ul>
</div>
</body>
</html>