<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;">> <span style="color: #000000; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px; white-space: normal; background-color: #e1e7f1; float: none; display: inline;">argument for allowing containerFields in x3d.py</span> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">I don't understand. If no container fields then not able to do all of x3d. We had to use containerField for the admittedly rare instance where the default is not true. These are cases where looking up the containerField in schema is not enough. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Some are tricky, like skeleton where only the root Joint has to have the containerField as skeleton. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">skin contains a Shape which does not have children.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">However we are investigating the idea of how to code LOD choices for skin. I think we already know how to do that for that for Segment geometry. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Thanks,</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Joe</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: John Carlson <yottzumm@gmail.com><br>Sent: Oct 26, 2023 10:08 AM<br>To: Joe D Williams <joedwil@earthlink.net>, X3D Graphics public mailing list <x3d-public@web3d.org><br>Subject: What are valid children of HAnimHumanoid.skin? argument for allowing containerFields in x3d.py</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<pre style="color: #000000; font-size: 11.05px; margin-left: 25px;">From: <a style="font-family: Arial,Helvetica,sans-serif; font-size: small;" href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid" target="_blank" rel="noopener">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid</a></pre>
<pre style="color: #000000; font-size: 11.05px; margin-left: 25px;">I see:</pre>
<pre style="color: #000000; font-size: 11.05px; margin-left: 25px;">MFNode [in,out] skin [] [IndexedFaceSet, IndexedFanSet, IndexedQuadSet, IndexedTriangleSet, IndexedTriangleStripSet]</pre>
<pre style="color: #000000; font-size: 11.05px; margin-left: 25px;">And fromL <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid" target="_blank" rel="noopener">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid</a></pre>
<pre style="font-size: 11.7px;">sequence<Object> skin [] [indexed mesh objects as defined by the representation]</pre>
<pre style="font-size: 11.7px;"> </pre>
<pre style="font-size: 11.7px;">But in actual practice, I see:</pre>
<pre style="font-size: 11.7px;"> </pre>
<pre style="font-size: 11.7px;"><span style="font-family: 'Times New Roman'; font-size: medium; white-space: normal;" title="Shape contains geometry and optional corresponding Appearance"><<span style="color: navy;">Shape</span> <span style="color: green;">DEF</span>='<a style="color: maroon;" title="bookmark link to Joe_Shape" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_Shape" target="_blank" rel="noopener">Joe_Shape</a>' <span style="color: green;">containerField</span>='<span style="color: teal;">skin</span>'></span></pre>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;"><a name="m_-7329258310126589806_Joe_skin_Appearance"></a><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"><<span style="color: navy;">Appearance</span> <span style="color: green;">DEF</span>='<a style="color: maroon;" title="bookmark link to Joe_skin_Appearance" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_skin_Appearance" target="_blank" rel="noopener">Joe_skin_Appearance</a>'></span>
<div style="margin-left: 25px;"><a name="m_-7329258310126589806_Joe_skin_Material"></a><span title="Material specifies surface rendering properties for associated geometry"><<span style="color: navy;">Material</span> <span style="color: green;">DEF</span>='<a style="color: maroon;" title="bookmark link to Joe_skin_Material" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_skin_Material" target="_blank" rel="noopener">Joe_skin_Material</a>' <span style="color: green;">diffuseColor</span>='<span style="color: teal;">0.3 0.3 0.6</span>' <span style="color: green;">emissiveColor</span>='<span style="color: teal;">0.3 0.3 0.6</span>'/></span><br><a name="m_-7329258310126589806_JoeSkinImageTexture"></a><span title="ImageTexture maps a 2D-image file onto a geometric shape"><<span style="color: navy;">ImageTexture</span> <span style="color: green;">DEF</span>='<a style="color: maroon;" title="bookmark link to JoeSkinImageTexture" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#JoeSkinImageTexture" target="_blank" rel="noopener">JoeSkinImageTexture</a>'<br> <span title="uniform resource locator (url) list of relative or absolute file addresses, performed in order until resource retrieval succeeds"><span style="color: green;">url</span>=' "<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeBodyTexture29.png" target="_blank" rel="noopener">JoeBodyTexture29.png<img style="float: right; height: 0px;" src="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeBodyTexture29.png"> </a>" "<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png" target="_blank" rel="noopener">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png<img style="float: right; height: 0px;" src="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png"> </a>" '</span> /></span><br><a name="m_-7329258310126589806_KickTextureTransform"></a>
<div style="border: 1px solid grey;"><span style="background-color: #eeeeee;" title="inserted documentation about ROUTE connections"><!-- <em>ROUTE</em> information for <span style="color: maroon;">KickTextureTransform</span> node: [<a title="go to this ROUTE" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#ROUTE_194" target="_blank" rel="noopener"><em>from</em> <span style="color: maroon;">SkinInterpolator</span>.<span style="color: green;">value_changed</span> <em>to</em> <span style="color: green;">rotation</span> </a>] --><br></span><<span style="color: navy;">TextureTransform</span> <span style="color: green;">DEF</span>='<a style="color: maroon;" title="bookmark link to KickTextureTransform" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#KickTextureTransform" target="_blank" rel="noopener">KickTextureTransform</a>'/></div>
</div>
<span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"></<span style="color: navy;">Appearance</span>></span></div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;"><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"> </span></div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;"><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes">From:</span></div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;"><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"> </span></div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;"><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html" target="_blank" rel="noopener">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html</a><br></span></div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;"> </div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;">And </div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;"> </div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;">
<div style="margin-left: 25px;">skin [</div>
<div style="margin-left: 25px;"> DEF Joe_Shape Shape {</div>
<div style="margin-left: 25px;"> appearance DEF Joe_skin_Appearance Appearance {</div>
<div style="margin-left: 25px;"> material DEF Joe_skin_Material Material {</div>
<div style="margin-left: 25px;"> diffuseColor 0.3 0.3 0.6</div>
<div style="margin-left: 25px;"> emissiveColor 0.3 0.3 0.6</div>
<div style="margin-left: 25px;"> }</div>
<div style="margin-left: 25px;"> texture DEF JoeSkinImageTexture ImageTexture {</div>
<div style="margin-left: 25px;"> url [ "JoeBodyTexture29.png" "<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png" target="_blank" rel="noopener">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png</a>" ]</div>
<div style="margin-left: 25px;"> }</div>
<div style="margin-left: 25px;"> textureTransform DEF KickTextureTransform TextureTransform {</div>
<div style="margin-left: 25px;"> }</div>
<div style="margin-left: 25px;"> }</div>
<div style="margin-left: 25px;">==================================================</div>
</div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;">
<div style="margin-left: 25px;">So it would seem like Shapes with an Indexed geometry is what we're aiming for in the standard as one of the possibly many children of the skin container field (note the space).</div>
<div style="margin-left: 25px;"> </div>
</div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;">
<div style="margin-left: 25px;">That is all okay, AFAIAC, just extremely confusing when deciding where to add containerFields in DOM documents.</div>
<div style="margin-left: 25px;"> </div>
<div style="margin-left: 25px;"> </div>
</div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;">
<div style="margin-left: 25px;">For example, consider the below:</div>
<div style="margin-left: 25px;"> </div>
<div style="margin-left: 25px;">
<div style="margin-left: 25px;"> <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_4'/></div>
<div style="margin-left: 25px;"> <HAnimJoint USE='hanim_l_metacarpophalangeal_3'/></div>
<div style="margin-left: 25px;"> <HAnimJoint USE='hanim_l_carpal_proximal_interphalangeal_3'/></div>
<div style="margin-left: 25px;"> <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_3'/></div>
<div style="margin-left: 25px;"> <HAnimJoint USE='hanim_l_metacarpophalangeal_2'/></div>
<div style="margin-left: 25px;"> <HAnimJoint USE='hanim_l_carpal_proximal_interphalangeal_2'/></div>
<div style="margin-left: 25px;"> <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_2'/></div>
</div>
</div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;">
<div style="margin-left: 25px;">
<div style="margin-left: 25px;">[ etc. ]</div>
<div style="margin-left: 25px;"> </div>
</div>
</div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;">
<div style="margin-left: 25px;">
<div style="margin-left: 25px;">It may not be apparent, but X3DJSAIL complains about this. There's no containerField='joints', right? But I'm generating this code using x3d.py which doesn't allow me to list containerFields!</div>
<div style="margin-left: 25px;"> </div>
</div>
</div>
<div style="margin-left: 25px; font-family: 'Times New Roman'; font-size: medium; white-space: normal;">
<div style="margin-left: 25px;">
<div style="margin-left: 25px;">Grr! Here are some of the "brutzman" messages from X3DJSAI, which are valid. I really want to assign joints as a containerField, so perhaps I will just do it in X3DJSONLD.</div>
<div style="margin-left: 25px;"> </div>
<div style="margin-left: 25px;">
<div style="margin-left: 25px;"> [apply] [error] X3DLoaderDOM: Parent-child node relationship not found! (parent HAnimHumanoid, child HAnimJoint, containerField='children') Please report this problem to <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></div>
<div style="margin-left: 25px;"> [apply] [error] X3DLoaderDOM: Parent-child node relationship not found! (parent HAnimHumanoid, child HAnimJoint, containerField='children') Please report this problem to <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></div>
<div style="margin-left: 25px;"> [apply] [error] X3DLoaderDOM: Parent-child node relationship not found! (parent HAnimHumanoid, child HAnimJoint, containerField='children') Please report this problem to <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></div>
<div style="margin-left: 25px;"> [apply] [error] X3DLoaderDOM: Parent-child node relationship not found! (parent HAnimHumanoid, child HAnimJoint, containerField='children') Please report this problem to <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></div>
<div style="margin-left: 25px;"> [apply] [error] X3DLoaderDOM: Parent-child node relationship not found! (parent HAnimHumanoid, child HAnimJoint, containerField='children') Please report this problem to <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></div>
<div style="margin-left: 25px;"> [apply] [error] X3DLoaderDOM: Parent-child node relationship not found! (parent HAnimHumanoid, child HAnimJoint, containerField='children') Please report this problem to <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></div>
<div style="margin-left: 25px;"> [apply] [error] X3DLoaderDOM: Parent-child node relationship not found! (parent HAnimHumanoid, child HAnimJoint, containerField='children') Please report this problem to <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></div>
<div style="margin-left: 25px;"> [apply] [error] X3DLoaderDOM: Parent-child node relationship not found! (parent HAnimHumanoid, child HAnimJoint, containerField='children') Please report this problem to <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>