<div dir="auto">See additional comments below.  Sorry for being the Energizer Bunny.</div><div dir="auto"><br></div><div dir="auto">I did think my proposal was complete, sorry.</div><div dir="auto"><br></div><div dir="auto">Same old story, feature creep.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 21, 2024 at 1:12 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Here are the “visitor pattern” methods I’d like to implement as an independent extension of X3DJSAIL to improve HAnim scaling code in scenegraphs.  A prototype is complete.  This is called X3DGAIL as I will call it from GraalJS, and  interact with Java classes in the Java/GraalJS FFI (FCI?).  This will be created in the JSHumanoids repository under Apache license.</div><div dir="auto"><br></div><div dir="auto">These will be implemented in Java as subclasses of, or delegating to X3DJSAIL classes with an abstract SAI interface inheritance, and possibly other interfaces for each method.  The app code will remain in GraalJS.</div><div dir="auto"><br></div><div dir="auto"><div>
<div>
<p dir="auto">findObjectsByInterface(interfaceArray)</p>
<p dir="auto">—To find humanoid objects in the scene graph.</p>
<p></p></div></div></div></blockquote><div dir="auto">I am not seriously considering using an optional “blockers” interface array to block traversal at interfaces in the hierarchy.  There’s no user story yet for blockers yet.  This may slow things down.  For example, one might stop at HAnim fields other than humanoid, but there might be a baby in a mother’s arms.  Or a parent with a child with a baby.  There may be additional scaling for humanoid children.  Hmm!  A flag?  Is the children’s LCS within the parent’s LCS?</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div><p><br></p>
<p dir="auto">applyMatrix(Matrix4f, depth) or 3f?</p>
<p dir="auto">—For rescaling humanoids, centers, transforms, and geometry in the scene graph by their scaling factor, for applying standard matrix transformations to the humanoid figure,  but can be used more generally to rotate, scale, translate or skew an object .</p><p dir="auto">— depth of -1 means entire scene graph below current node, 0 is NO-OP. 1 means current node, 2 means 2 levels, …  you subtract from depth going down the scene graph recursively.</p>
<p></p></div></div></div></blockquote><div dir="auto"><br></div><div dir="auto"><div dir="auto"><span style="color:rgb(0,0,0);font-family:'-apple-system','helveticaneue';font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;display:inline!important;float:none">I am going to add a “blockers” interface array to block traversal at points in the hierarchy, for example, do not apply matrix below TextureCoordinate, e.g. point field.</span></div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div><p><br></p>
<p dir="auto">reparentChildrenByParentClass(class, newParent, ignoredFieldSet)</p><p dir="auto">— if ignoredFieldSet is null, force reparenting.</p><p dir="auto">— for removing defaulted parents, like extra Transform.</p></div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">I may add a source field array and target field to reparent to.  A source field would be considered an ignored field in default comparisons.  Typically, this would be called on an array of Humanoids, and the class would be Transform.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div><p dir="auto"></p></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div><p dir="auto"></p></div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">An ignored field would be children for Transform.  Unless there are no Transform children.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div><p dir="auto"></p><p dir="auto"><br></p><p dir="auto">These methods apply from the current object down the scene graph.</p><p dir="auto"><br></p><p dir="auto">I will probably try to implement this with a Java SAX Parser-Generator parsing X3DUOM and generating Java code.  If someone wants to turn this into a stylesheet, go for it , but we probably want to keep X3DJSAIL pristine.  There may be private methods used.</p></div></div></div></blockquote><div dir="auto"><div dir="auto"><br><span style="color:rgb(0,0,0);font-family:'-apple-system','helveticaneue';font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;display:inline!important;float:none">A templating engine (XSLT or other) is looking more attractive for implementation.  Sigh, logic is too complex for SAX?  Python might be a better choice?  XPath operations would be lovely!  I’ll work on reducing dependencies.</span></div></div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div><p dir="auto"></p><p dir="auto">Ultimately, this will be folded into X3DEOM and I will update the X3DEOM once the classes are working.</p><p dir="auto"><br></p><p dir="auto">It’s been a long day, sorry for the massive rambling.</p><p dir="auto">I reserve the last parameters for an error callback, or I will return a boolean.  Ideally, these could be implemented in a Compute Shader.</p></div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">I will probably return an array of affected objects.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div><p dir="auto"></p><p dir="auto">Suggestions welcome!</p></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div><p dir="auto">John</p><p dir="auto"><br></p><p dir="auto">I thought of X3DGRAIL, lol.</p>
</div>
</div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 20, 2024 at 5:52 PM Polys, Nicholas <<a href="mailto:npolys@vt.edu" target="_blank">npolys@vt.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">



<div>
<div dir="auto">Indeed on the member side of Web3D</div>
<div dir="auto">We are eager for implementations and examples. </div>
<div dir="auto"><br>
</div>
<div dir="auto">As far as spec preparation, this is not public until The WG deems it.</div>
<div dir="auto">The WG has a Google drive space  to develop material, such as working drafts for mber review.</div>
<div dir="auto"><br>
</div>
<div dir="auto">When the Chairs deem a spec or errata  ready as a  working draft document draft ,</div>
<div dir="auto">The Web3D Consortium will create a GitHub branch for the spec version in question. At that point, the Chairs will be responsible to maintain updates on the way to review and submission by the Web3D Standards WG to </div>
<div dir="auto">Be approved by</div>
<div dir="auto">The Web3D Board  </div>
<div dir="auto">For submission to ISO</div>
<div dir="auto"><br>
</div>
<div dir="auto">Br,</div>
<div dir="auto">N </div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div id="m_-5787772590946379693m_7318832894757583950mail-editor-reference-message-container" dir="auto">
<br>
<hr style="display:inline-block;width:98%">
<div id="m_-5787772590946379693m_7318832894757583950divRplyFwdMsg" style="font-size:11pt"><strong>From:</strong> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>><br>
<strong>Sent:</strong> Tuesday, March 19, 2024 10:23:02 PM<br>
<strong>To:</strong> Anita Havele <<a href="mailto:anita.havele@web3d.org" target="_blank">anita.havele@web3d.org</a>>; Carol McDonald <<a href="mailto:carol@gneissconcept.com" target="_blank">carol@gneissconcept.com</a>>; Katy Schildmeyer KS APPAREL DESIGN <<a href="mailto:katy@ksappareldesign.com" target="_blank">katy@ksappareldesign.com</a>>; Emma Scott <<a href="mailto:connect@fashionshouldempower.com" target="_blank">connect@fashionshouldempower.com</a>>; Richard F. Puk <<a href="mailto:puk@igraphics.com" target="_blank">puk@igraphics.com</a>>; Polys, Nicholas
 <<a href="mailto:npolys@vt.edu" target="_blank">npolys@vt.edu</a>>; Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>; Myeong Won Lee <<a href="mailto:myeongwonlee@gmail.com" target="_blank">myeongwonlee@gmail.com</a>>; <a href="mailto:william.glascoe@tailoredaccess.com" target="_blank">william.glascoe@tailoredaccess.com</a> <<a href="mailto:william.glascoe@tailoredaccess.com" target="_blank">william.glascoe@tailoredaccess.com</a>>; <a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a> <<a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a>>; <a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a> <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>>;
 <a href="mailto:highaspirations@hotmail.com" target="_blank">highaspirations@hotmail.com</a> <<a href="mailto:highaspirations@hotmail.com" target="_blank">highaspirations@hotmail.com</a>><br>
<strong>Cc:</strong> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>><br>
<strong>Subject:</strong> RE: HAnim Resources page - add new/draft spec documents for review<br>
</div></div></div><div><div id="m_-5787772590946379693m_7318832894757583950mail-editor-reference-message-container" dir="auto">
<br>


<div>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<span style="font-size:11pt;font-family:Aptos,sans-serif">Glad to see possible progress, but...  I have been emphatic (for at least a year) that proposed products looking to gain consensus must be publicly visible and comment-able to be considered for integration into tool suites and
 examples.  Have not heard or seen anything about that.</span></p>
<div>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<span style="font-size:9pt;font-family:"Courier New""> </span></p>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<span style="font-size:9pt;font-family:"Courier New"">all the best, Don</span></p>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<span style="font-size:9pt;font-family:"Courier New"">-- </span></p>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<span style="font-size:9pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" style="font-family:"Courier New"" target="_blank">brutzman@nps.edu</a></span></p>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<span style="font-size:9pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span></p>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<span style="font-size:9pt;font-family:"Courier New"">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" style="font-family:"Courier New"" target="_blank">https://faculty.nps.edu/brutzman</a></span></p>
</div>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<span style="font-size:11pt;font-family:Aptos,sans-serif"> </span></p>
<div>
<div style="border-width:1pt medium medium;border-style:solid none none;padding:3pt 0in 0in;border-color:rgb(225,225,225) currentcolor currentcolor">
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
<b style="font-family:Aptos,sans-serif"><span style="font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><span style="font-size:11pt;font-family:Calibri,sans-serif"> Anita Havele <<a href="mailto:anita.havele@web3d.org" style="font-family:Calibri,sans-serif" target="_blank">anita.havele@web3d.org</a>>
<br>
<b style="font-family:Calibri,sans-serif">Sent:</b> Tuesday, March 19, 2024 3:44 PM<br>
<b style="font-family:Calibri,sans-serif">To:</b> Carol McDonald <<a href="mailto:carol@gneissconcept.com" style="font-family:Calibri,sans-serif" target="_blank">carol@gneissconcept.com</a>>; Katy Schildmeyer KS APPAREL DESIGN <<a href="mailto:katy@ksappareldesign.com" style="font-family:Calibri,sans-serif" target="_blank">katy@ksappareldesign.com</a>>; Emma Scott <<a href="mailto:connect@fashionshouldempower.com" style="font-family:Calibri,sans-serif" target="_blank">connect@fashionshouldempower.com</a>>; Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" style="font-family:Calibri,sans-serif" target="_blank">brutzman@nps.edu</a>>; Richard F. Puk <<a href="mailto:puk@igraphics.com" style="font-family:Calibri,sans-serif" target="_blank">puk@igraphics.com</a>>; Nicholas
 Polys <<a href="mailto:npolys@vt.edu" style="font-family:Calibri,sans-serif" target="_blank">npolys@vt.edu</a>>; Joseph D Williams <<a href="mailto:joedwil@earthlink.net" style="font-family:Calibri,sans-serif" target="_blank">joedwil@earthlink.net</a>>; Myeong Won Lee <<a href="mailto:myeongwonlee@gmail.com" style="font-family:Calibri,sans-serif" target="_blank">myeongwonlee@gmail.com</a>>; <a href="mailto:william.glascoe@tailoredaccess.com" style="font-family:Calibri,sans-serif" target="_blank">william.glascoe@tailoredaccess.com</a>; <a href="mailto:vmarchetti@kshell.com" style="font-family:Calibri,sans-serif" target="_blank">vmarchetti@kshell.com</a>; <a href="mailto:yottzumm@gmail.com" style="font-family:Calibri,sans-serif" target="_blank">yottzumm@gmail.com</a>; <a href="mailto:highaspirations@hotmail.com" style="font-family:Calibri,sans-serif" target="_blank">highaspirations@hotmail.com</a><br>
<b style="font-family:Calibri,sans-serif">Subject:</b> HAnim Resources page - add new/draft spec documents for review</span></p>
</div>
</div>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
 </p>
<p><span style="font-family:"Times New Roman",serif">Hi All,</span></p>
<p><span style="font-family:"Times New Roman",serif">Thank you team for these important discussions on now best to define the new feature points. To help us share and reference documents efficiently, I have created a members only resource page for the HAnim
 WG at : <a href="https://www.web3d.org/member/wg/hanim" style="font-family:"Times New Roman",serif" target="_blank">https://www.web3d.org/member/wg/hanim</a></span></p>
<p><span style="font-family:"Times New Roman",serif"><img border="0" src="cid:ii_18e5f6bb3c6ad7999131" style="width:824px;max-width:100%"></span></p>
<p><span style="font-family:"Times New Roman",serif">The <a href="https://drive.google.com/drive/folders/1zBUZXSg4R8VRcT_JM_kwR-BFOMs3M-l6?usp=sharing" style="font-family:"Times New Roman",serif" target="_blank">
documents folder</a> has a sub folder for -  <u style="font-family:"Times New Roman",serif">HAnim v3.0 Draft Documents</u> - <b style="font-family:"Times New Roman",serif">
please upload your new feature points documents here.</b> After proper review the documents will be moved to the
<a href="https://github.com/Web3DConsortium" style="font-family:"Times New Roman",serif" target="_blank">Web3D GitHub</a> Repository by WG chairs.
</span></p>
<p><span style="font-family:"Times New Roman",serif">Don and Myeong Won I see two branches for HAnim (Master and markers_for 3dbp) 
<a href="https://github.com/Web3DConsortium/HAnim/tree/markers_for_3dbp" style="font-family:"Times New Roman",serif" target="_blank">https://github.com/Web3DConsortium/HAnim/tree/markers_for_3dbp</a></span></p>
<p><span style="font-family:"Times New Roman",serif">This <a href="https://www.web3d.org/member/wg/hanim" style="font-family:"Times New Roman",serif" target="_blank">
HAnim resources page</a>  is also available from the<a href="https://www.web3d.org/calendar/month" style="font-family:"Times New Roman",serif" target="_blank"> Web3D calendar</a> under the HAnim meeting event. Here you can access meeting agendas, minutes and documents.  These are shared folders and documents so  please
 be mindful when making changes. This is a <b style="font-family:"Times New Roman",serif">member-only page</b>. You will need your Web3D member login.  If you have issues accessing  this page please contact me directly.
</span></p>
<p><span style="font-family:"Times New Roman",serif">Hope this helps!</span></p></div></div></div></blockquote></div></div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div id="m_-5787772590946379693m_7318832894757583950mail-editor-reference-message-container" dir="auto"><div>
<p>-- <br>
Best regards, Anita-Havele Executive Director, Web3D Consortium <a href="http://www.web3d.org/" target="_blank">
www.web3d.org</a> Phone: +1 248 342 7662 <a href="http://www.web3d.org/havele" target="_blank">http://www.web3d.org/havele</a></p>
<p class="MsoNormal" style="margin:0in;font-size:12pt;font-family:Aptos,sans-serif">
 </p>
</div>
<br>
</div>
</div>

</blockquote></div></div>
</blockquote></div></div>