<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://epd.zeldamods.org/wiki/Bphsh/history?feed=atom</id>
	<title>Bphsh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://epd.zeldamods.org/wiki/Bphsh/history?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://epd.zeldamods.org/wiki/Bphsh/history"/>
	<updated>2026-04-28T13:45:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://epd.zeldamods.org/w/index.php?title=Bphsh&amp;diff=159&amp;oldid=prev</id>
		<title>Watertoon: /* Layer Hit Mask Array (Not Fully Confirmed) */</title>
		<link rel="alternate" type="text/html" href="https://epd.zeldamods.org/w/index.php?title=Bphsh&amp;diff=159&amp;oldid=prev"/>
		<updated>2026-02-20T12:02:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Layer Hit Mask Array (Not Fully Confirmed)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:02, 20 February 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l54&quot;&gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|0x8&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|0x8&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|u64&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|u64&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Sub Layer Hit Mask.The PhiveConfig byaml stores an application&#039;s layers under SubLayerEntityCollection for entity rigid bodies and SubLayerSensorCollection for sensor rigid bodies. Each bit in the mask corresponds to a layer in the order they are defined by PhiveConfig.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Sub Layer Hit Mask.The PhiveConfig byaml stores an application&#039;s &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sub &lt;/ins&gt;layers under SubLayerEntityCollection for entity rigid bodies and SubLayerSensorCollection for sensor rigid bodies. Each bit in the mask corresponds to a layer in the order they are defined by PhiveConfig.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key epd_wiki:diff:1.41:old-158:rev-159:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Watertoon</name></author>
	</entry>
	<entry>
		<id>https://epd.zeldamods.org/w/index.php?title=Bphsh&amp;diff=158&amp;oldid=prev</id>
		<title>Watertoon: Add very likely (but not fully confirmed through code yet) guess for second array with caveat. Evidence includes: layer hit mask size change between games, layer hit masks being included in PhiveConfig MaterialPreset, clamping of size to material array</title>
		<link rel="alternate" type="text/html" href="https://epd.zeldamods.org/w/index.php?title=Bphsh&amp;diff=158&amp;oldid=prev"/>
		<updated>2026-02-20T12:02:10Z</updated>

		<summary type="html">&lt;p&gt;Add very likely (but not fully confirmed through code yet) guess for second array with caveat. Evidence includes: layer hit mask size change between games, layer hit masks being included in PhiveConfig MaterialPreset, clamping of size to material array&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:02, 20 February 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l37&quot;&gt;Line 37:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 37:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Unknown &lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Layer Hit Mask Array (Not Fully Confirmed) &lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0x10 sized per structure&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In previous titles from NSO PT the layer hit masks were 32-bits each, making each element 0x8 bytes&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A bphsh may have different counts for materials and layer hit masks. Phive clamps the size of the material array and layer hit mask array to the smaller of the two. HknpMeshShape shapeTags are presumably used to map Havok&#039;s geometry to Phive&#039;s material and layer hit masks.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{| class=&quot;wikitable&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|+&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!Offset&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!Size&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!Type&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!Description&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|0x0&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|0x8&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|u64&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Layer Hit Mask.The PhiveConfig byaml stores an application&#039;s layers under LayerEntityCollection for entity rigid bodies and LayerSensorCollection for sensor rigid bodies. Each bit in the mask corresponds to a layer in the order they are defined by PhiveConfig.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|0x8&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|0x8&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|u64&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Sub Layer Hit Mask.The PhiveConfig byaml stores an application&#039;s layers under SubLayerEntityCollection for entity rigid bodies and SubLayerSensorCollection for sensor rigid bodies. Each bit in the mask corresponds to a layer in the order they are defined by PhiveConfig.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Structures (Havok Physics) ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Structures (Havok Physics) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l122&quot;&gt;Line 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 139:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|+hkReferencedObject&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|+hkReferencedObject &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: hkBaseObject&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!Offset&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!Offset&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!Size&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!Size&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key epd_wiki:diff:1.41:old-152:rev-158:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Watertoon</name></author>
	</entry>
	<entry>
		<id>https://epd.zeldamods.org/w/index.php?title=Bphsh&amp;diff=152&amp;oldid=prev</id>
		<title>Watertoon: Initial page for bphsh</title>
		<link rel="alternate" type="text/html" href="https://epd.zeldamods.org/w/index.php?title=Bphsh&amp;diff=152&amp;oldid=prev"/>
		<updated>2026-01-13T10:50:02Z</updated>

		<summary type="html">&lt;p&gt;Initial page for bphsh&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Bphsh is a &amp;quot;shape&amp;quot; file format. Responsible for storing the underlying physics engine&amp;#039;s collision mesh data as well as relevant phive specific data. This page is focused on the version found in Nintendo Switch Online: Playtest Program (021), and Havok 2023.2.&lt;br /&gt;
&lt;br /&gt;
== File Structure ==&lt;br /&gt;
&lt;br /&gt;
# Header&lt;br /&gt;
# Havok Tag File&lt;br /&gt;
# Material Array&lt;br /&gt;
# Unknown Array&lt;br /&gt;
&lt;br /&gt;
== Structures (phive) ==&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
[[Common Phive|Common phive]] header for shape. The sections consist of the Havok tagfile containing an hknpMeshShape, an array of phive materials, and a currently unknown section.&lt;br /&gt;
&lt;br /&gt;
=== Material Array ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x4&lt;br /&gt;
|u32&lt;br /&gt;
|Material Id. The PhiveConfig byaml stores an application&amp;#039;s materials under MaterialCollection.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|0x4&lt;br /&gt;
|u32&lt;br /&gt;
|Sub Material. The PhiveConfig byaml stores an application&amp;#039;s sub materials under SubMaterialCollection.&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|0x8&lt;br /&gt;
|u64&lt;br /&gt;
|User Shape Tag Mask. Up to 64 tags can be present, each bit denotes whether a tag exists. The PhiveConfig byaml stores an application&amp;#039;s tags under UserShapeTagCollection.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
0x10 sized per structure.&lt;br /&gt;
&lt;br /&gt;
== Structures (Havok Physics) ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== hkEnum&amp;lt;T,B&amp;gt;, hkFlags&amp;lt;T,B&amp;gt; ====&lt;br /&gt;
Enum of type T, with underlying storage of type B.&lt;br /&gt;
&lt;br /&gt;
==== hkRelPtr&amp;lt;T&amp;gt; ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x8&lt;br /&gt;
|hkInt64&lt;br /&gt;
|m_offset; Offset relative to the base address of this object to the template type T.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hkRelArrayView&amp;lt;T,B&amp;gt; ====&lt;br /&gt;
B is an integer type.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|sizeof(B)&lt;br /&gt;
|B&lt;br /&gt;
|m_offset; Offset relative to the base address of this object to the array of template type T.&lt;br /&gt;
|-&lt;br /&gt;
|sizeof(B)&lt;br /&gt;
|sizeof(B)&lt;br /&gt;
|B&lt;br /&gt;
|m_size; Count of elements in the array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hkRelArray&amp;lt;T&amp;gt; ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x8&lt;br /&gt;
|hkInt64&lt;br /&gt;
|m_offset; Offset relative to the base address of this object to the array of template type T.&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|0x4&lt;br /&gt;
|int&lt;br /&gt;
|m_size; Count of elements in the array&lt;br /&gt;
|-&lt;br /&gt;
|0xc&lt;br /&gt;
|0x4&lt;br /&gt;
|int&lt;br /&gt;
|m_capacityAndFlags; Max capacity of elements the array can store, also flags.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== hknpMeshShape ===&lt;br /&gt;
Stores a collision mesh geometry and acceleration structures.&lt;br /&gt;
&lt;br /&gt;
Note; hkBaseObject has an alignment of 8, but hknpMeshShape promotes the alignment to 0x10 due to containing an hkVector4. Unmarked space is padding.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hkBaseObject&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|u64&lt;br /&gt;
|0x8&lt;br /&gt;
|_vft_reserve; Vtable pointer, resolved at runtime.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hkReferencedObject&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|0x8&lt;br /&gt;
|hkUlong&lt;br /&gt;
|m_sizeAndFlags&lt;br /&gt;
|-&lt;br /&gt;
|0x10&lt;br /&gt;
|0x8&lt;br /&gt;
|hkUlong&lt;br /&gt;
|m_refCount&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hknpShape : hkReferencedObject&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x18&lt;br /&gt;
|0x1&lt;br /&gt;
|hkEnum&amp;lt;hknpShapeType::Enum, hkUint8&amp;gt; &lt;br /&gt;
|m_type; Should always be &amp;quot;MESH&amp;quot; (0x8) for an hknpMeshShape.&lt;br /&gt;
|-&lt;br /&gt;
|0x19&lt;br /&gt;
|0x1&lt;br /&gt;
|hkEnum&amp;lt;hknpCollisionDispatchType::Enum, hkUint8&amp;gt; &lt;br /&gt;
|m_dispatchType&lt;br /&gt;
|-&lt;br /&gt;
|0x1a&lt;br /&gt;
|0x2&lt;br /&gt;
|hkFlags&amp;lt;hknpShape::FlagsEnum, hkUint16&amp;gt;&lt;br /&gt;
|m_flags&lt;br /&gt;
|-&lt;br /&gt;
|0x1c&lt;br /&gt;
|0x1&lt;br /&gt;
|hkUint8&lt;br /&gt;
|m_numShapeKeyBits&lt;br /&gt;
|-&lt;br /&gt;
|0x1d&lt;br /&gt;
|0x3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x20&lt;br /&gt;
|0x4&lt;br /&gt;
|hkReal&lt;br /&gt;
|m_convexRadius&lt;br /&gt;
|-&lt;br /&gt;
|0x24&lt;br /&gt;
|0x4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x28&lt;br /&gt;
|0x8&lt;br /&gt;
|hkUint64&lt;br /&gt;
|m_userData, this is set at runtime to a phive structure containing references to the material and unknown array.&lt;br /&gt;
|-&lt;br /&gt;
|0x30&lt;br /&gt;
|0x10&lt;br /&gt;
|hknpShapeProperties&lt;br /&gt;
|m_properties&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hknpCompositeShape : hknpShape&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_shapeTagCodecInfo&lt;br /&gt;
|-&lt;br /&gt;
|0x44&lt;br /&gt;
|0x4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hknpMeshShape : hknpCompositeShape&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x48&lt;br /&gt;
|0x8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0x50&lt;br /&gt;
|0x20&lt;br /&gt;
|hknpMeshShapeVertexConversionUtil&lt;br /&gt;
|m_vertexConversionUtil&lt;br /&gt;
|-&lt;br /&gt;
|0x70&lt;br /&gt;
|0x8&lt;br /&gt;
|hkRelArrayView&amp;lt;hknpMeshShape::ShapeTagTableEntry, int&amp;gt;&lt;br /&gt;
|m_shapeTagTable&lt;br /&gt;
|-&lt;br /&gt;
|0x78&lt;br /&gt;
|0x18&lt;br /&gt;
|hkcdSimdTreeNamespace::hkcdSimdTree&amp;lt;hkcdSimdTreeNamespace::RelArrayStorage&amp;lt;hkcdSimdTreeNamespace::Node&amp;gt;&amp;gt;&lt;br /&gt;
|m_topLevelTree&lt;br /&gt;
|-&lt;br /&gt;
|0x90&lt;br /&gt;
|0x8&lt;br /&gt;
|hkRelArrayView&amp;lt;hknpMeshShape::GeometrySection, int&amp;gt;&lt;br /&gt;
|m_geometrySections; Appears to be a convex decomposition, or at least partitioning, of the mesh shape.&lt;br /&gt;
|-&lt;br /&gt;
|0x98&lt;br /&gt;
|0x8&lt;br /&gt;
|hkRelPtr&amp;lt;hknpMeshShapePrimitiveMapping&amp;gt;&lt;br /&gt;
|m_primitiveMapping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hknpShapeType::Enum ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Name&lt;br /&gt;
!Value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|CONVEX&lt;br /&gt;
|0x0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SPHERE&lt;br /&gt;
|0x1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CAPSULE&lt;br /&gt;
|0x2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CYLINDER&lt;br /&gt;
|0x3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TRIANGLE&lt;br /&gt;
|0x4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|BOX&lt;br /&gt;
|0x5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|COMPOSITE&lt;br /&gt;
|0x6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MESH&lt;br /&gt;
|0x7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EXTERN_MESH&lt;br /&gt;
|0x8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|COMPOUND&lt;br /&gt;
|0x9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|DISTANCE_FIELD_BASE&lt;br /&gt;
|0xa&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HEIGHT_FIELD&lt;br /&gt;
|0xb&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|DISTANCE_FIELD&lt;br /&gt;
|0xc&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PARTICLE_SYSTEM&lt;br /&gt;
|0xd&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TRANSFORMED&lt;br /&gt;
|0xe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MASKED&lt;br /&gt;
|0xf&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MASKED_COMPOUND&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|BREAKABLE_COMPOUND&lt;br /&gt;
|0x11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LOD&lt;br /&gt;
|0x12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|DUMMY&lt;br /&gt;
|0x13&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LEGACY_COMPRESSED_MESH&lt;br /&gt;
|0x14&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_0&lt;br /&gt;
|0x15&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_1&lt;br /&gt;
|0x16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_2&lt;br /&gt;
|0x17&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_3&lt;br /&gt;
|0x18&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_4&lt;br /&gt;
|0x19&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_5&lt;br /&gt;
|0x1b&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_6&lt;br /&gt;
|0x1b&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_7&lt;br /&gt;
|0x1c&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NUM_SHAPE_TYPES&lt;br /&gt;
|0x1d&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|INVALID&lt;br /&gt;
|0x1e&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hknpCollisionDispatchType::Enum ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Name&lt;br /&gt;
!Value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|NONE&lt;br /&gt;
|0x0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CONVEX&lt;br /&gt;
|0x1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|COMPOSITE&lt;br /&gt;
|0x2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|DISTANCE_FIELD&lt;br /&gt;
|0x3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_0&lt;br /&gt;
|0x4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_1&lt;br /&gt;
|0x5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_2&lt;br /&gt;
|0x6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_3&lt;br /&gt;
|0x7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_4&lt;br /&gt;
|0x8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_5&lt;br /&gt;
|0x9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_6&lt;br /&gt;
|0xa&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_7&lt;br /&gt;
|0xb&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NUM_TYPES&lt;br /&gt;
|0xc&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hknpShape::FlagsEnum ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Name&lt;br /&gt;
!Value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|IS_CONVEX_SHAPE&lt;br /&gt;
|0x1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|IS_CONVEX_POLYTOPE_SHAPE&lt;br /&gt;
|0x2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|IS_COMPOSITE_SHAPE&lt;br /&gt;
|0x4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|IS_HEIGHT_FIELD_SHAPE&lt;br /&gt;
|0x8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USE_SINGLE_POINT_MANIFOLD&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|IS_INTERIOR_TRIANGLE&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SUPPORTS_COLLISIONS_WITH_INTERIOR_TRIANGLES&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USE_NORMAL_TO_FIND_SUPPORT_PLANE&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|IS_TRIANGLE_OR_QUAD_SHAPE&lt;br /&gt;
|0x100&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|IS_QUAD_SHAPE&lt;br /&gt;
|0x200&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|IS_SDF_EDGE_COLLISION_ENABLED&lt;br /&gt;
|0x400&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HAS_SURFACE_VELOCITY&lt;br /&gt;
|0x800&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_FLAG_0&lt;br /&gt;
|0x1000&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_FLAG_1&lt;br /&gt;
|0x2000&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_FLAG_2&lt;br /&gt;
|0x4000&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hknpShapeProperties ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x10&lt;br /&gt;
|hkRelArray&amp;lt;hknpShapeProperties::Entry&amp;gt;&lt;br /&gt;
|Optional shape properties.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== hknpShapeProperties::Entry =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x8&lt;br /&gt;
|hkRelPtr&amp;lt;hknpShapePropertyBase&amp;gt;&lt;br /&gt;
|Pointer to shape property. If present, likely a derived class such as hknpShapeConnectivityGraph, hknpRefDragProperties, hknpShapeMassProperties, hknpShapeMassPropertiesTree, hknpShapeMassConfigProperty, or hknpMaterialPalette.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== hknpShapePropertyBase ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x2&lt;br /&gt;
|hkUint16&lt;br /&gt;
|m_propertyKey; Appears to be a derived class unique identifier.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hknpMeshShapeVertexConversionUtil ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x10&lt;br /&gt;
|hkVector4&lt;br /&gt;
|m_bitScale16; Appears to be vertex compression parameters.&lt;br /&gt;
|-&lt;br /&gt;
|0x10&lt;br /&gt;
|0x10&lt;br /&gt;
|hkVector4&lt;br /&gt;
|m_bitScale16Inv&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hknpMeshShape::ShapeTagTableEntry ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_meshPrimitiveKey&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|0x2&lt;br /&gt;
|hkUint16&lt;br /&gt;
|m_shapeTag&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|0x2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hkcdSimdTreeNamespace::hkcdSimdTree&amp;lt;hkcdSimdTreeNamespace::RelArrayStorage&amp;lt;hkcdSimdTreeNamespace::Node&amp;gt;&amp;gt; ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hkcdSimdTreeNamespace::RelArrayStorage&amp;lt;hkcdSimdTreeNamespace::Node&amp;gt;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x10&lt;br /&gt;
|hkRelArray&amp;lt;hkcdSimdTreeNamespace::Node&amp;gt;&lt;br /&gt;
|m_nodes&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hkcdSimdTreeNamespace::hkcdSimdTree : hkcdSimdTreeNamespace::RelArrayStorage&amp;lt;hkcdSimdTreeNamespace::Node&amp;gt;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x10&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_firstFreeIndex&lt;br /&gt;
|-&lt;br /&gt;
|0x14&lt;br /&gt;
|0x1&lt;br /&gt;
|bool&lt;br /&gt;
|m_isCompact&lt;br /&gt;
|-&lt;br /&gt;
|0x15&lt;br /&gt;
|0x3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== hkcdSimdTreeNamespace::Node =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hkcdFourAabb&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x10&lt;br /&gt;
|hkVector4&lt;br /&gt;
|m_lx&lt;br /&gt;
|-&lt;br /&gt;
|0x10&lt;br /&gt;
|0x10&lt;br /&gt;
|hkVector4&lt;br /&gt;
|m_hx&lt;br /&gt;
|-&lt;br /&gt;
|0x20&lt;br /&gt;
|0x10&lt;br /&gt;
|hkVector4&lt;br /&gt;
|m_ly&lt;br /&gt;
|-&lt;br /&gt;
|0x30&lt;br /&gt;
|0x10&lt;br /&gt;
|hkVector4&lt;br /&gt;
|m_hy&lt;br /&gt;
|-&lt;br /&gt;
|0x40&lt;br /&gt;
|0x10&lt;br /&gt;
|hkVector4&lt;br /&gt;
|m_lz&lt;br /&gt;
|-&lt;br /&gt;
|0x50&lt;br /&gt;
|0x10&lt;br /&gt;
|hkVector4&lt;br /&gt;
|m_hz&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hkcdSimdTreeNamespace::Node : hkcdFourAabb&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x60&lt;br /&gt;
|0x10&lt;br /&gt;
|hkUint32[4]&lt;br /&gt;
|m_data&lt;br /&gt;
|-&lt;br /&gt;
|0x70&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint8[4]&lt;br /&gt;
|m_filterMasks&lt;br /&gt;
|-&lt;br /&gt;
|0x74&lt;br /&gt;
|0x1&lt;br /&gt;
|hkFlags&amp;lt;hkcdSimdTreeNamespace::Node::FlagsEnum, unsigned char&amp;gt;&lt;br /&gt;
|m_flags&lt;br /&gt;
|-&lt;br /&gt;
|0x75&lt;br /&gt;
|0x1&lt;br /&gt;
|hkUint8&lt;br /&gt;
|m_maxDepth&lt;br /&gt;
|-&lt;br /&gt;
|0x76&lt;br /&gt;
|0x1&lt;br /&gt;
|hkUint8&lt;br /&gt;
|m_splittingAxisCache&lt;br /&gt;
|-&lt;br /&gt;
|0x77&lt;br /&gt;
|0x1&lt;br /&gt;
|hkUint8&lt;br /&gt;
|m_numAddRemoveOperationsSinceLastRebalance&lt;br /&gt;
|-&lt;br /&gt;
|0x78&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_parent&lt;br /&gt;
|-&lt;br /&gt;
|0x7c&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_numLeaves&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== hkcdSimdTreeNamespace::Node::FlagsEnum =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Name&lt;br /&gt;
!Value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|NODE_IS_LEAF&lt;br /&gt;
|0x1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NODE_IS_FREE&lt;br /&gt;
|0x2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|INCREMENTAL_OPTIMIZER_NODES_ARE_REBALANCED&lt;br /&gt;
|0x4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|INCREMENTAL_OPTIMIZER_REINSERT_PASS_DID_NOP&lt;br /&gt;
|0x8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|INCREMENTAL_OPTIMIZER_LEAVES_ARE_REBALANCED&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_FLAG_0&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_FLAG_1&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|USER_FLAG_2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hknpMeshShape::GeometrySection ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x8&lt;br /&gt;
|hkRelArrayView&amp;lt;hknpAabb8TreeNode, int&amp;gt;&lt;br /&gt;
|m_sectionBvh&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|0x8&lt;br /&gt;
|hkRelArrayView&amp;lt;hknpMeshShape::GeometrySection::Primitive, int&amp;gt;&lt;br /&gt;
|m_primitives&lt;br /&gt;
|-&lt;br /&gt;
|0x10&lt;br /&gt;
|0x8&lt;br /&gt;
|hkRelArrayView&amp;lt;hkUint8, int&amp;gt;&lt;br /&gt;
|m_vertexBuffer&lt;br /&gt;
|-&lt;br /&gt;
|0x18&lt;br /&gt;
|0x8&lt;br /&gt;
|hkRelArrayView&amp;lt;hkUint8, int&amp;gt;&lt;br /&gt;
|m_interiorPrimitiveBitField&lt;br /&gt;
|-&lt;br /&gt;
|0x20&lt;br /&gt;
|0xc&lt;br /&gt;
|hkUint32[3]&lt;br /&gt;
|m_sectionOffset&lt;br /&gt;
|-&lt;br /&gt;
|0x2c&lt;br /&gt;
|0xc&lt;br /&gt;
|hkFloat3&lt;br /&gt;
|m_bitScale8Inv&lt;br /&gt;
|-&lt;br /&gt;
|0x38&lt;br /&gt;
|0x6&lt;br /&gt;
|hkInt16[3]&lt;br /&gt;
|m_bitOffset&lt;br /&gt;
|-&lt;br /&gt;
|0x3e&lt;br /&gt;
|0x2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== hknpAabb8TreeNode =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hknpTransposedFourAabbs8&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_lx&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_hx&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_ly&lt;br /&gt;
|-&lt;br /&gt;
|0xc&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_hy&lt;br /&gt;
|-&lt;br /&gt;
|0x10&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_lz&lt;br /&gt;
|-&lt;br /&gt;
|0x14&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_hz&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hknpAabb8TreeNode : hknpTransposedFourAabbs8&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x18&lt;br /&gt;
|0x3&lt;br /&gt;
|hkUint8[3]&lt;br /&gt;
|m_data&lt;br /&gt;
|-&lt;br /&gt;
|0x1b&lt;br /&gt;
|0x1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== hknpMeshShape::GeometrySection::Primitive =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x1&lt;br /&gt;
|hkUint8&lt;br /&gt;
|m_aId&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|0x1&lt;br /&gt;
|hkUint8&lt;br /&gt;
|m_bId&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|0x1&lt;br /&gt;
|hkUint8&lt;br /&gt;
|m_cId&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|0x1&lt;br /&gt;
|hkUint8&lt;br /&gt;
|m_dId&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== hknpMeshShape::GeometrySection::Vertex16_3 =====&lt;br /&gt;
While m_vertexBuffer is untyped in later versions, in previous version it assumed this vertex format struct, which still appears to be the case (u8 mainly forces the m_vertexBuffer.m_size to be in bytes)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x2&lt;br /&gt;
|hkUint16&lt;br /&gt;
|m_x&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|0x2&lt;br /&gt;
|hkUint16&lt;br /&gt;
|m_y&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|0x2&lt;br /&gt;
|hkUint16&lt;br /&gt;
|m_z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hknpMeshShapePrimitiveMapping ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+hknpMeshShapePrimitiveMapping : hkReferencedObject&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|0x10&lt;br /&gt;
|hkRelArray&amp;lt;hkUint32&amp;gt;&lt;br /&gt;
|m_sectionStart&lt;br /&gt;
|-&lt;br /&gt;
|0x10&lt;br /&gt;
|0x10&lt;br /&gt;
|hkRelArray&amp;lt;unsigned int&amp;gt;&lt;br /&gt;
|m_bitString&lt;br /&gt;
|-&lt;br /&gt;
|0x20&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_bitsPerEntry&lt;br /&gt;
|-&lt;br /&gt;
|0x24&lt;br /&gt;
|0x4&lt;br /&gt;
|hkUint32&lt;br /&gt;
|m_triangleIndexBitMask&lt;br /&gt;
|}&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Watertoon</name></author>
	</entry>
</feed>