<div dir="ltr">xml with no containerField > freeWRL: Group and Transform, and today I added Shape.<div>Basically whatever ends up in that skin field, freewrl renders as normal scenegraph, so you can have a transform hierarchy of skin chunks / shapes and freewrl doesn't mind. (It's the skeleton and coordinate field that changes the shape of anything that uses the same coordinates, and the scene author presumes there's no weird transforms between chunks, but freewrl doesn't enforce that).</div><div>-Doug</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 29, 2023 at 4:24 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">* I am specifically speaking of the lack of containerField in XML output from x3d.py. I also have issues with overuse of the “children”container fields in VRML. I am speaking of instances where view3dscene reports an error or does not show the scene (even trying tovrmlx3d would help). The problem stems from lack of testing on HAnim VRML and XML outputs from x3d.py. I could show Don an example, but he’s got a whole section of the archive devoted to examples which do show the same behavior when tested properly.</div><div dir="auto"><br></div><div dir="auto">One cannot just type in “containerField” in a python program and expect x3d.py to list it in output. I might be able to subclass, but that would require my own X3dToPython.xslt stylesheet.</div><div dir="auto"><br></div><div dir="auto">* Skin/shape is another topic in the email. See standard, where Shape is not mentioned under skin, rather, indexed mesh nodes are. There is no children field under Shape, but there’s a skin field under HAnimHumanoid. Skin has an MFNode field type, and has SFNode children, AFAIK. The question is whether these children should be Shapes or indexed meshes.</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Oct 28, 2023 at 2:16 PM Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)"><p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">> <span style="font-family:Geneva,Arial,Helvetica,sans-serif;font-size:12px;white-space:normal;float:none;display:inline;background-color:rgb(225,231,241);color:rgb(0,0,0)">argument for allowing containerFields in x3d.py</span> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">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 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Some are tricky, like skeleton where only the root Joint has to have the containerField as skeleton. </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">skin contains a Shape which does not have children.</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">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 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Thanks,</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Joe</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
</div>
<div style="border-left:1px solid rgb(170,170,170);box-sizing:border-box;padding:10px 0px 10px 15px;margin:0px">
<p>-----Original Message-----<br>From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>Sent: Oct 26, 2023 10:08 AM<br>To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>, X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>Subject: What are valid children of HAnimHumanoid.skin? argument for allowing containerFields in x3d.py</p>
<p style="margin:0.1rem 0px;line-height:1"> </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="font-size:11.05px;margin-left:25px;font-family:monospace;color:rgb(0,0,0)">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" rel="noopener" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid</a></pre>
<pre style="font-size:11.05px;margin-left:25px;font-family:monospace;color:rgb(0,0,0)">I see:</pre>
<pre style="font-size:11.05px;margin-left:25px;font-family:monospace;color:rgb(0,0,0)">MFNode [in,out] skin [] [IndexedFaceSet, IndexedFanSet, IndexedQuadSet, IndexedTriangleSet, IndexedTriangleStripSet]</pre>
<pre style="font-size:11.05px;margin-left:25px;font-family:monospace;color:rgb(0,0,0)">And fromL <a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid" rel="noopener" style="font-family:monospace" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid</a></pre>
<pre style="font-size:11.7px;font-family:monospace">sequence<Object> skin [] [indexed mesh objects as defined by the representation]</pre>
<pre style="font-size:11.7px;font-family:monospace"> </pre>
<pre style="font-size:11.7px;font-family:monospace">But in actual practice, I see:</pre>
<pre style="font-size:11.7px;font-family:monospace"> </pre>
<pre style="font-size:11.7px;font-family:monospace"><span style="font-family:"Times New Roman";font-size:medium;white-space:normal" title="Shape contains geometry and optional corresponding Appearance"><<span style="font-family:"Times New Roman";color:navy">Shape</span> <span style="font-family:"Times New Roman";color:green">DEF</span>='<a style="font-family:"Times New Roman";color:maroon" title="bookmark link to Joe_Shape" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_Shape" rel="noopener" target="_blank">Joe_Shape</a>' <span style="font-family:"Times New Roman";color:green">containerField</span>='<span style="font-family:"Times New Roman";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_-6969019599810963846_m_7751810656512177662_m_-7329258310126589806_Joe_skin_Appearance" style="font-family:"Times New Roman""></a><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes" style="font-family:"Times New Roman""><<span style="font-family:"Times New Roman";color:navy">Appearance</span> <span style="font-family:"Times New Roman";color:green">DEF</span>='<a style="font-family:"Times New Roman";color:maroon" title="bookmark link to Joe_skin_Appearance" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_skin_Appearance" rel="noopener" target="_blank">Joe_skin_Appearance</a>'></span>
<div style="margin-left:25px;font-family:"Times New Roman""><a name="m_-6969019599810963846_m_7751810656512177662_m_-7329258310126589806_Joe_skin_Material" style="font-family:"Times New Roman""></a><span title="Material specifies surface rendering properties for associated geometry" style="font-family:"Times New Roman""><<span style="font-family:"Times New Roman";color:navy">Material</span> <span style="font-family:"Times New Roman";color:green">DEF</span>='<a style="font-family:"Times New Roman";color:maroon" title="bookmark link to Joe_skin_Material" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_skin_Material" rel="noopener" target="_blank">Joe_skin_Material</a>' <span style="font-family:"Times New Roman";color:green">diffuseColor</span>='<span style="font-family:"Times New Roman";color:teal">0.3 0.3 0.6</span>' <span style="font-family:"Times New Roman";color:green">emissiveColor</span>='<span style="font-family:"Times New Roman";color:teal">0.3 0.3 0.6</span>'/></span><br><a name="m_-6969019599810963846_m_7751810656512177662_m_-7329258310126589806_JoeSkinImageTexture" style="font-family:"Times New Roman""></a><span title="ImageTexture maps a 2D-image file onto a geometric shape" style="font-family:"Times New Roman""><<span style="font-family:"Times New Roman";color:navy">ImageTexture</span> <span style="font-family:"Times New Roman";color:green">DEF</span>='<a style="font-family:"Times New Roman";color:maroon" title="bookmark link to JoeSkinImageTexture" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#JoeSkinImageTexture" rel="noopener" target="_blank">JoeSkinImageTexture</a>'<br> <span title="uniform resource locator (url) list of relative or absolute file addresses, performed in order until resource retrieval succeeds" style="font-family:"Times New Roman""><span style="font-family:"Times New Roman";color:green">url</span>=' "<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeBodyTexture29.png" rel="noopener" style="font-family:"Times New Roman"" target="_blank">JoeBodyTexture29.png<img style="float: right; height: 0px; font-family: "Times New Roman";" 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" rel="noopener" style="font-family:"Times New Roman"" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png<img style="float: right; height: 0px; font-family: "Times New Roman";" src="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png"> </a>" '</span> /></span><br><a name="m_-6969019599810963846_m_7751810656512177662_m_-7329258310126589806_KickTextureTransform" style="font-family:"Times New Roman""></a>
<div style="border:1px solid grey;font-family:"Times New Roman""><span style="font-family:"Times New Roman";background-color:rgb(238,238,238)" title="inserted documentation about ROUTE connections"><!-- <em style="font-family:"Times New Roman"">ROUTE</em> information for <span style="font-family:"Times New Roman";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" rel="noopener" style="font-family:"Times New Roman"" target="_blank"><em style="font-family:"Times New Roman"">from</em> <span style="font-family:"Times New Roman";color:maroon">SkinInterpolator</span>.<span style="font-family:"Times New Roman";color:green">value_changed</span> <em style="font-family:"Times New Roman"">to</em> <span style="font-family:"Times New Roman";color:green">rotation</span> </a>] --><br></span><<span style="font-family:"Times New Roman";color:navy">TextureTransform</span> <span style="font-family:"Times New Roman";color:green">DEF</span>='<a style="font-family:"Times New Roman";color:maroon" title="bookmark link to KickTextureTransform" href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#KickTextureTransform" rel="noopener" target="_blank">KickTextureTransform</a>'/></div>
</div>
<span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes" style="font-family:"Times New Roman""></<span style="font-family:"Times New Roman";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" style="font-family:"Times New Roman""> </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" style="font-family:"Times New Roman"">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" style="font-family:"Times New Roman""> </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" style="font-family:"Times New Roman""><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html" rel="noopener" style="font-family:"Times New Roman"" target="_blank">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;font-family:"Times New Roman"">skin [</div>
<div style="margin-left:25px;font-family:"Times New Roman""> DEF Joe_Shape Shape {</div>
<div style="margin-left:25px;font-family:"Times New Roman""> appearance DEF Joe_skin_Appearance Appearance {</div>
<div style="margin-left:25px;font-family:"Times New Roman""> material DEF Joe_skin_Material Material {</div>
<div style="margin-left:25px;font-family:"Times New Roman""> diffuseColor 0.3 0.3 0.6</div>
<div style="margin-left:25px;font-family:"Times New Roman""> emissiveColor 0.3 0.3 0.6</div>
<div style="margin-left:25px;font-family:"Times New Roman""> }</div>
<div style="margin-left:25px;font-family:"Times New Roman""> texture DEF JoeSkinImageTexture ImageTexture {</div>
<div style="margin-left:25px;font-family:"Times New Roman""> url [ "JoeBodyTexture29.png" "<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png" rel="noopener" style="font-family:"Times New Roman"" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png</a>" ]</div>
<div style="margin-left:25px;font-family:"Times New Roman""> }</div>
<div style="margin-left:25px;font-family:"Times New Roman""> textureTransform DEF KickTextureTransform TextureTransform {</div>
<div style="margin-left:25px;font-family:"Times New Roman""> }</div>
<div style="margin-left:25px;font-family:"Times New Roman""> }</div>
<div style="margin-left:25px;font-family:"Times New Roman"">==================================================</div>
</div>
<div style="margin-left:25px;font-family:"Times New Roman";font-size:medium;white-space:normal">
<div style="margin-left:25px;font-family:"Times New Roman"">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;font-family:"Times New Roman""> </div>
</div>
<div style="margin-left:25px;font-family:"Times New Roman";font-size:medium;white-space:normal">
<div style="margin-left:25px;font-family:"Times New Roman"">That is all okay, AFAIAC, just extremely confusing when deciding where to add containerFields in DOM documents.</div>
<div style="margin-left:25px;font-family:"Times New Roman""> </div>
<div style="margin-left:25px;font-family:"Times New Roman""> </div>
</div>
<div style="margin-left:25px;font-family:"Times New Roman";font-size:medium;white-space:normal">
<div style="margin-left:25px;font-family:"Times New Roman"">For example, consider the below:</div>
<div style="margin-left:25px;font-family:"Times New Roman""> </div>
<div style="margin-left:25px;font-family:"Times New Roman"">
<div style="margin-left:25px;font-family:"Times New Roman""> <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_4'/></div>
<div style="margin-left:25px;font-family:"Times New Roman""> <HAnimJoint USE='hanim_l_metacarpophalangeal_3'/></div>
<div style="margin-left:25px;font-family:"Times New Roman""> <HAnimJoint USE='hanim_l_carpal_proximal_interphalangeal_3'/></div>
<div style="margin-left:25px;font-family:"Times New Roman""> <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_3'/></div>
<div style="margin-left:25px;font-family:"Times New Roman""> <HAnimJoint USE='hanim_l_metacarpophalangeal_2'/></div>
<div style="margin-left:25px;font-family:"Times New Roman""> <HAnimJoint USE='hanim_l_carpal_proximal_interphalangeal_2'/></div>
<div style="margin-left:25px;font-family:"Times New Roman""> <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;font-family:"Times New Roman"">
<div style="margin-left:25px;font-family:"Times New Roman"">[ etc. ]</div>
<div style="margin-left:25px;font-family:"Times New Roman""> </div>
</div>
</div>
<div style="margin-left:25px;font-family:"Times New Roman";font-size:medium;white-space:normal">
<div style="margin-left:25px;font-family:"Times New Roman"">
<div style="margin-left:25px;font-family:"Times New Roman"">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;font-family:"Times New Roman""> </div>
</div>
</div>
<div style="margin-left:25px;font-family:"Times New Roman";font-size:medium;white-space:normal">
<div style="margin-left:25px;font-family:"Times New Roman"">
<div style="margin-left:25px;font-family:"Times New Roman"">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;font-family:"Times New Roman""> </div>
<div style="margin-left:25px;font-family:"Times New Roman"">
<div style="margin-left:25px;font-family:"Times New Roman""> [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" style="font-family:"Times New Roman"" target="_blank">brutzman@nps.edu</a></div>
<div style="margin-left:25px;font-family:"Times New Roman""> [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" style="font-family:"Times New Roman"" target="_blank">brutzman@nps.edu</a></div>
<div style="margin-left:25px;font-family:"Times New Roman""> [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" style="font-family:"Times New Roman"" target="_blank">brutzman@nps.edu</a></div>
<div style="margin-left:25px;font-family:"Times New Roman""> [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" style="font-family:"Times New Roman"" target="_blank">brutzman@nps.edu</a></div>
<div style="margin-left:25px;font-family:"Times New Roman""> [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" style="font-family:"Times New Roman"" target="_blank">brutzman@nps.edu</a></div>
<div style="margin-left:25px;font-family:"Times New Roman""> [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" style="font-family:"Times New Roman"" target="_blank">brutzman@nps.edu</a></div>
<div style="margin-left:25px;font-family:"Times New Roman""> [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" style="font-family:"Times New Roman"" target="_blank">brutzman@nps.edu</a></div>
<div style="margin-left:25px;font-family:"Times New Roman""> [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" style="font-family:"Times New Roman"" target="_blank">brutzman@nps.edu</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p style="margin:0.1rem 0px;line-height:1"> </p></blockquote></div></div>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>