aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Documentation/PhysXAPI/files/PxSerializer_8h-source.html
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /PhysX_3.4/Documentation/PhysXAPI/files/PxSerializer_8h-source.html
downloadphysx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz
physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip
Initial commit:
PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167]
Diffstat (limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxSerializer_8h-source.html')
-rw-r--r--PhysX_3.4/Documentation/PhysXAPI/files/PxSerializer_8h-source.html195
1 files changed, 195 insertions, 0 deletions
diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxSerializer_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxSerializer_8h-source.html
new file mode 100644
index 00000000..defacc83
--- /dev/null
+++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxSerializer_8h-source.html
@@ -0,0 +1,195 @@
+<html>
+ <head>
+ <title>NVIDIA(R) PhysX(R) SDK 3.4 API Reference: PxSerializer.h Source File</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <LINK HREF="NVIDIA.css" REL="stylesheet" TYPE="text/css">
+ </head>
+
+ <body bgcolor="#FFFFFF">
+ <div id="header">
+ <hr class="first">
+ <img alt="" src="images/PhysXlogo.png" align="middle"> <br>
+ <center>
+ <a class="qindex" href="main.html">Main Page</a> &nbsp;
+ <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp;
+ <a class="qindex" href="annotated.html">Compound List</a> &nbsp;
+ <a class="qindex" href="functions.html">Compound Members</a> &nbsp;
+ </center>
+ <hr class="second">
+ </div>
+<!-- Generated by Doxygen 1.5.8 -->
+<h1>PxSerializer.h</h1><a href="PxSerializer_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span>
+<a name="l00002"></a>00002 <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Notice</span>
+<a name="l00005"></a>00005 <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span>
+<a name="l00006"></a>00006 <span class="comment">// proprietary rights in and to this software and related documentation and</span>
+<a name="l00007"></a>00007 <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span>
+<a name="l00008"></a>00008 <span class="comment">// distribution of this software and related documentation without an express</span>
+<a name="l00009"></a>00009 <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span>
+<a name="l00010"></a>00010 <span class="comment">//</span>
+<a name="l00011"></a>00011 <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span>
+<a name="l00012"></a>00012 <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span>
+<a name="l00013"></a>00013 <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span>
+<a name="l00014"></a>00014 <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span>
+<a name="l00015"></a>00015 <span class="comment">//</span>
+<a name="l00016"></a>00016 <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span>
+<a name="l00017"></a>00017 <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span>
+<a name="l00018"></a>00018 <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span>
+<a name="l00019"></a>00019 <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span>
+<a name="l00020"></a>00020 <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span>
+<a name="l00021"></a>00021 <span class="comment">// This code supersedes and replaces all information previously supplied.</span>
+<a name="l00022"></a>00022 <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span>
+<a name="l00023"></a>00023 <span class="comment">// components in life support devices or systems without express written approval of</span>
+<a name="l00024"></a>00024 <span class="comment">// NVIDIA Corporation.</span>
+<a name="l00025"></a>00025 <span class="comment">//</span>
+<a name="l00026"></a>00026 <span class="comment">// Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved.</span>
+<a name="l00027"></a>00027 <span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span>
+<a name="l00028"></a>00028 <span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved. </span>
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030
+<a name="l00031"></a>00031 <span class="preprocessor">#ifndef PX_SERIALIZER_H</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define PX_SERIALIZER_H</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PxSerialFramework_8h.html">PxSerialFramework.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="PxCollection_8h.html">PxCollection.h</a>"</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="PxAssert_8h.html">foundation/PxAssert.h</a>"</span>
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="preprocessor">#if !PX_DOXYGEN</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="keyword">namespace </span>physx
+<a name="l00043"></a>00043 {
+<a name="l00044"></a>00044 <span class="preprocessor">#endif</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span>
+<a name="l00061"></a><a class="code" href="classPxSerializer.html">00061</a> <span class="keyword">class </span><a class="code" href="classPxSerializer.html" title="Serialization interface class.">PxSerializer</a>
+<a name="l00062"></a>00062 {
+<a name="l00063"></a>00063 <span class="keyword">public</span>:
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="comment">/**********************************************************************************************************************/</span>
+<a name="l00066"></a>00066
+<a name="l00070"></a>00070
+<a name="l00076"></a>00076 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* getConcreteTypeName() <span class="keyword">const</span> = 0;
+<a name="l00077"></a>00077
+<a name="l00085"></a>00085 <span class="keyword">virtual</span> <span class="keywordtype">void</span> requires(<a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>&amp;, <a class="code" href="classPxProcessPxBaseCallback.html" title="Callback class used to process PxBase objects.">PxProcessPxBaseCallback</a>&amp;) <span class="keyword">const</span> = 0;
+<a name="l00086"></a>00086
+<a name="l00096"></a>00096 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSubordinate() <span class="keyword">const</span> = 0;
+<a name="l00097"></a>00097
+<a name="l00099"></a>00099 <span class="comment">/**********************************************************************************************************************/</span>
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <span class="comment">/**********************************************************************************************************************/</span>
+<a name="l00102"></a>00102
+<a name="l00106"></a>00106
+<a name="l00110"></a>00110 <span class="keyword">virtual</span> <span class="keywordtype">void</span> exportExtraData(<a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>&amp;, <a class="code" href="classPxSerializationContext.html" title="Binary serialization context class.">PxSerializationContext</a>&amp;) <span class="keyword">const</span> = 0;
+<a name="l00111"></a>00111
+<a name="l00115"></a>00115 <span class="keyword">virtual</span> <span class="keywordtype">void</span> exportData(<a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>&amp;, <a class="code" href="classPxSerializationContext.html" title="Binary serialization context class.">PxSerializationContext</a>&amp;) <span class="keyword">const</span> = 0;
+<a name="l00116"></a>00116
+<a name="l00120"></a>00120 <span class="keyword">virtual</span> <span class="keywordtype">void</span> registerReferences(<a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>&amp; obj, <a class="code" href="classPxSerializationContext.html" title="Binary serialization context class.">PxSerializationContext</a>&amp; s) <span class="keyword">const</span> = 0;
+<a name="l00121"></a>00121
+<a name="l00127"></a>00127 <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> getClassSize() <span class="keyword">const</span> = 0;
+<a name="l00128"></a>00128
+<a name="l00136"></a>00136 <span class="keyword">virtual</span> <a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>* createObject(<a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>*&amp; address, <a class="code" href="classPxDeserializationContext.html" title="Binary deserialization context class.">PxDeserializationContext</a>&amp; context) <span class="keyword">const</span> = 0;
+<a name="l00137"></a>00137
+<a name="l00139"></a>00139 <span class="comment">/**********************************************************************************************************************/</span>
+<a name="l00140"></a><a class="code" href="classPxSerializer.html#96746551fdacb2df8da8f2887817ff5f">00140</a> <span class="keyword">virtual</span> <a class="code" href="classPxSerializer.html#96746551fdacb2df8da8f2887817ff5f">~PxSerializer</a>() {}
+<a name="l00141"></a>00141 };
+<a name="l00142"></a>00142
+<a name="l00143"></a>00143
+<a name="l00147"></a>00147 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;
+<a name="l00148"></a><a class="code" href="classPxSerializerDefaultAdapter.html">00148</a> <span class="keyword">class </span><a class="code" href="classPxSerializerDefaultAdapter.html" title="Default PxSerializer implementation.">PxSerializerDefaultAdapter</a> : <span class="keyword">public</span> <a class="code" href="classPxSerializer.html" title="Serialization interface class.">PxSerializer</a>
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150 <span class="keyword">public</span>:
+<a name="l00151"></a>00151
+<a name="l00152"></a>00152 <span class="comment">/************************************************************************************************/</span>
+<a name="l00153"></a>00153
+<a name="l00157"></a>00157
+<a name="l00158"></a><a class="code" href="classPxSerializerDefaultAdapter.html#3a59a446ea4fc277d0c224881c2f8658">00158</a> <a class="code" href="classPxSerializerDefaultAdapter.html#3a59a446ea4fc277d0c224881c2f8658">PxSerializerDefaultAdapter</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) : mTypeName(name){}
+<a name="l00159"></a>00159
+<a name="l00160"></a><a class="code" href="classPxSerializerDefaultAdapter.html#eb03db4d0c9703af533696978aa72a27">00160</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* getConcreteTypeName()<span class="keyword"> const</span>
+<a name="l00161"></a>00161 <span class="keyword"> </span>{
+<a name="l00162"></a>00162 <span class="keywordflow">return</span> mTypeName;
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164
+<a name="l00165"></a><a class="code" href="classPxSerializerDefaultAdapter.html#b5e14929bfabcb268f3e6f3e710f5657">00165</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> requires(<a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>&amp; obj, <a class="code" href="classPxProcessPxBaseCallback.html" title="Callback class used to process PxBase objects.">PxProcessPxBaseCallback</a>&amp; c)<span class="keyword"> const</span>
+<a name="l00166"></a>00166 <span class="keyword"> </span>{
+<a name="l00167"></a>00167 T&amp; t = <span class="keyword">static_cast&lt;</span>T&amp;<span class="keyword">&gt;</span>(obj);
+<a name="l00168"></a>00168 t.requires(c);
+<a name="l00169"></a>00169 }
+<a name="l00170"></a>00170
+<a name="l00171"></a><a class="code" href="classPxSerializerDefaultAdapter.html#4d038c573df687220ead4a77727b010f">00171</a> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSubordinate()<span class="keyword"> const</span>
+<a name="l00172"></a>00172 <span class="keyword"> </span>{
+<a name="l00173"></a>00173 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00174"></a>00174 }
+<a name="l00175"></a>00175
+<a name="l00177"></a>00177 <span class="comment">/************************************************************************************************/</span>
+<a name="l00178"></a>00178
+<a name="l00182"></a>00182
+<a name="l00183"></a>00183 <span class="comment">// object methods</span>
+<a name="l00184"></a>00184
+<a name="l00185"></a><a class="code" href="classPxSerializerDefaultAdapter.html#268c6700a8309b22890a882c8b097717">00185</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> exportExtraData(<a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>&amp; obj, <a class="code" href="classPxSerializationContext.html" title="Binary serialization context class.">PxSerializationContext</a>&amp; s)<span class="keyword"> const</span>
+<a name="l00186"></a>00186 <span class="keyword"> </span>{
+<a name="l00187"></a>00187 T&amp; t = <span class="keyword">static_cast&lt;</span>T&amp;<span class="keyword">&gt;</span>(obj);
+<a name="l00188"></a>00188 t.exportExtraData(s);
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190
+<a name="l00191"></a><a class="code" href="classPxSerializerDefaultAdapter.html#38ddac12b78f625e8eadd2a8ea5e5dd2">00191</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> exportData(<a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>&amp; obj, <a class="code" href="classPxSerializationContext.html" title="Binary serialization context class.">PxSerializationContext</a>&amp; s)<span class="keyword"> const</span>
+<a name="l00192"></a>00192 <span class="keyword"> </span>{
+<a name="l00193"></a>00193 s.<a class="code" href="classPxSerializationContext.html#2cb3cc1613a70406c2bf89ec53035a22" title="Serializes object data and object extra data.">writeData</a>(&amp;obj, <span class="keyword">sizeof</span>(T));
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195
+<a name="l00196"></a><a class="code" href="classPxSerializerDefaultAdapter.html#b6b01e18a34aa9ad330ec4602a40dedb">00196</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> registerReferences(<a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>&amp; obj, <a class="code" href="classPxSerializationContext.html" title="Binary serialization context class.">PxSerializationContext</a>&amp; s)<span class="keyword"> const</span>
+<a name="l00197"></a>00197 <span class="keyword"> </span>{
+<a name="l00198"></a>00198 T&amp; t = <span class="keyword">static_cast&lt;</span>T&amp;<span class="keyword">&gt;</span>(obj);
+<a name="l00199"></a>00199
+<a name="l00200"></a>00200 s.<a class="code" href="classPxSerializationContext.html#de8ef3b58a16bab4f4cbd3c04a891817" title="Registers a reference value corresponding to a PxBase object.">registerReference</a>(obj, <a class="code" href="group__common.html#g8cd51251f2e11c3b6598b96f32e400f8" title="Reference kind value for PxBase objects.">PX_SERIAL_REF_KIND_PXBASE</a>, <span class="keywordtype">size_t</span>(&amp;obj));
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 <span class="keyword">struct </span>RequiresCallback : <span class="keyword">public</span> <a class="code" href="classPxProcessPxBaseCallback.html" title="Callback class used to process PxBase objects.">PxProcessPxBaseCallback</a>
+<a name="l00203"></a>00203 {
+<a name="l00204"></a>00204 RequiresCallback(<a class="code" href="classPxSerializationContext.html" title="Binary serialization context class.">PxSerializationContext</a>&amp; c) : context(c) {}
+<a name="l00205"></a>00205 RequiresCallback&amp; operator=(RequiresCallback&amp;) { <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(0); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00206"></a>00206 <span class="keywordtype">void</span> process(physx::PxBase&amp; base)
+<a name="l00207"></a>00207 {
+<a name="l00208"></a>00208 context.registerReference(base, <a class="code" href="group__common.html#g8cd51251f2e11c3b6598b96f32e400f8" title="Reference kind value for PxBase objects.">PX_SERIAL_REF_KIND_PXBASE</a>, <span class="keywordtype">size_t</span>(&amp;base));
+<a name="l00209"></a>00209 }
+<a name="l00210"></a>00210 <a class="code" href="classPxSerializationContext.html" title="Binary serialization context class.">PxSerializationContext</a>&amp; context;
+<a name="l00211"></a>00211 };
+<a name="l00212"></a>00212
+<a name="l00213"></a>00213 RequiresCallback callback(s);
+<a name="l00214"></a>00214 t.requires(callback);
+<a name="l00215"></a>00215 }
+<a name="l00216"></a>00216
+<a name="l00217"></a>00217 <span class="comment">// class methods</span>
+<a name="l00218"></a>00218
+<a name="l00219"></a><a class="code" href="classPxSerializerDefaultAdapter.html#4b95fe59d75cd8482d74211c1844ce19">00219</a> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> getClassSize()<span class="keyword"> const</span>
+<a name="l00220"></a>00220 <span class="keyword"> </span>{
+<a name="l00221"></a>00221 <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(T);
+<a name="l00222"></a>00222 }
+<a name="l00223"></a>00223
+<a name="l00224"></a><a class="code" href="classPxSerializerDefaultAdapter.html#1dfae626a47297bddf597a204c0e4d24">00224</a> <span class="keyword">virtual</span> <a class="code" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection.">PxBase</a>* createObject(<a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>*&amp; address, <a class="code" href="classPxDeserializationContext.html" title="Binary deserialization context class.">PxDeserializationContext</a>&amp; context)<span class="keyword"> const</span>
+<a name="l00225"></a>00225 <span class="keyword"> </span>{
+<a name="l00226"></a>00226 <span class="keywordflow">return</span> T::createObject(address, context);
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229
+<a name="l00231"></a>00231 <span class="comment">/************************************************************************************************/</span>
+<a name="l00232"></a>00232
+<a name="l00233"></a>00233 <span class="keyword">private</span>:
+<a name="l00234"></a><a class="code" href="classPxSerializerDefaultAdapter.html#12385fd1d59f49f27aed66c91b5d647c">00234</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* mTypeName;
+<a name="l00235"></a>00235 };
+<a name="l00236"></a>00236
+<a name="l00242"></a><a class="code" href="group__extensions.html#g8695b63c3fd0f8e29ecce92c64e8f79b">00242</a> <span class="preprocessor">#define PX_NEW_SERIALIZER_ADAPTER(x) \</span>
+<a name="l00243"></a>00243 <span class="preprocessor"> *new( PxGetFoundation().getAllocatorCallback().allocate(sizeof(PxSerializerDefaultAdapter&lt;x&gt;), \</span>
+<a name="l00244"></a>00244 <span class="preprocessor"> "PxSerializerDefaultAdapter", __FILE__, __LINE__ )) PxSerializerDefaultAdapter&lt;x&gt;(#x)</span>
+<a name="l00245"></a>00245 <span class="preprocessor"></span>
+<a name="l00249"></a><a class="code" href="group__extensions.html#gf9d523f77e7143a4c7e49424d9f0081e">00249</a> <span class="preprocessor">#define PX_DELETE_SERIALIZER_ADAPTER(x) \</span>
+<a name="l00250"></a>00250 <span class="preprocessor"> { PxSerializer* s = x; if (s) { s-&gt;~PxSerializer(); PxGetFoundation().getAllocatorCallback().deallocate(s); } }</span>
+<a name="l00251"></a>00251 <span class="preprocessor"></span>
+<a name="l00252"></a>00252 <span class="preprocessor">#if !PX_DOXYGEN</span>
+<a name="l00253"></a>00253 <span class="preprocessor"></span>} <span class="comment">// namespace physx</span>
+<a name="l00254"></a>00254 <span class="preprocessor">#endif</span>
+<a name="l00255"></a>00255 <span class="preprocessor"></span>
+<a name="l00257"></a>00257 <span class="preprocessor">#endif</span>
+</pre></div></div>
+
+<hr style="width: 100%; height: 2px;"><br>
+Copyright &copy; 2008-2016 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a>
+</body>
+</html>