<div dir="auto">AFAIK, they work well!</div><div dir="auto"><br></div><div dir="auto">They are somewhat verbose!</div><div dir="auto"><br></div><div dir="auto">Ultimately, I convert the scene to XML or xml protos.  I am currently using string concatenation, which is not available in XML or Protos without scripts.  Scripts are obtuse for programming and use of eval is questionable.</div><div dir="auto"><br></div><div dir="auto">It does take a while to load, even with XML.  Not surprising with O(animations x body parts)</div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">I’m hoping  ProtoInstances will speed things up.</div><div dir="ltr" class="gmail_attr"><br></div><div dir="ltr" class="gmail_attr">John</div><div dir="ltr" class="gmail_attr"><br></div><div dir="ltr" class="gmail_attr">On Fri, Jan 3, 2025 at 4:20 PM Holger Seelig <<a href="mailto:holger.seelig@yahoo.de">holger.seelig@yahoo.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-break:after-white-space">I do not suggest any of these functions, but they are well specified in the standard. Have a look at the following link:<div><br></div><div><a href="https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html" target="_blank">https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html</a><br></div><div><br></div><div>Holger</div><div><br></div><div></div><div><div>
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">--</div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Holger Seelig</div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Leipzig, Germany</div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><br></div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a></div><div><a href="https://create3000.github.io/x_ite/" target="_blank">https://create3000.github.io/x_ite/</a></div></div></div></div></div></div></div>
</div>
<div><br><blockquote type="cite"><div>Am 03.01.2025 um 18:22 schrieb John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>>:</div><br><div><div><div dir="auto">Holger suggests:</div><div dir="auto"><div><div dir="auto" style="font-family:-apple-system,"helvetica neue";font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;color:rgb(49,49,49)"><pre style="white-space:pre-wrap;font-family:monospace"><span style="font-size:1rem;font-family:monospace">function</span> <span style="font-size:1rem;font-family:monospace">initialize</span><span style="font-size:1rem;font-family:monospace">(</span><span style="font-size:1rem;font-family:monospace">)</span> <span style="font-size:1rem;font-family:monospace">{</span>
  <span style="font-size:1rem;font-family:monospace">var</span> <span style="font-size:1rem;font-family:monospace">touchSensor</span> <span style="font-size:1rem;font-family:monospace">=</span> <span style="font-size:1rem;font-family:monospace">Browser</span><span style="font-size:1rem;font-family:monospace">.</span><span style="font-size:1rem;font-family:monospace">currentScene</span><span style="font-size:1rem;font-family:monospace">.</span><span style="font-size:1rem;font-family:monospace">createNode</span><span style="font-size:1rem;font-family:monospace">(</span><span style="font-size:1rem;font-family:monospace">'TouchSensor'</span><span style="font-size:1rem;font-family:monospace">)</span><span style="font-size:1rem;font-family:monospace">;</span>
  <span style="font-size:1rem;font-family:monospace">Browser</span><span style="font-size:1rem;font-family:monospace">.</span><span style="font-size:1rem;font-family:monospace">currentScene</span><span style="font-size:1rem;font-family:monospace">.</span><span style="font-size:1rem;font-family:monospace">addNamedNode</span><span style="font-size:1rem;font-family:monospace">(</span><span style="font-size:1rem;font-family:monospace">"FOOBAR"</span><span style="font-size:1rem;font-family:monospace">,</span> <span style="font-size:1rem;font-family:monospace">touchSensor</span><span style="font-size:1rem;font-family:monospace">)</span><span style="font-size:1rem;font-family:monospace">;</span>
<span style="font-size:1rem;font-family:monospace">}</span></pre></div><br></div>And</div></div><div dir="auto"><br></div><div dir="auto"><div><pre style="white-space:pre-wrap;color:rgb(49,49,49);font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:1px;text-decoration:none"><span style="font-size:1rem">console</span><span style="font-size:1rem">.</span><span style="font-size:1rem">log</span><span style="font-size:1rem">(</span><span style="font-size:1rem">touchSensor</span><span style="font-size:1rem">.</span><span style="font-size:1rem">getNodeName</span><span style="font-size:1rem">(</span><span style="font-size:1rem">)</span><span style="font-size:1rem">)</span></pre></div><br></div><div dir="auto">I hope to generate a bunch of examples using these.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">This is a warmup!</div><div dir="auto"><br></div><div dir="auto">Thanks, Holger!</div><div dir="auto"><br></div><div dir="auto">John</div><div><div dir="auto"><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 2, 2025 at 11:09 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</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 dir="ltr">I'm trying to achieve a large checkbox menu, with animations on the X axis and body parts on the Y axis, plus a row for all body parts for convenience.<div><br></div><div>(sorry, large image)<br><div><br></div><div><span id="m_-6662886115400994388cid:ii_m5gagawh0"><image.png></span><br></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div><div style="line-break:after-white-space"><div><div><blockquote type="cite"><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 dir="ltr"><div><br></div><div>My guess is that a PROTO with ProtoInstance code generation will be the best way to achieve this (no, I don't want to type all that in)!</div><div><br></div><div>Source code is available for interested parties.</div><div><br></div><div>It would be OK, if people told me to do this in HTML, but I would probably switch to X_ITE or X_ITE vscode.</div></div><div dir="ltr"><div><br></div><div>John</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 2, 2025 at 10:47 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</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 dir="ltr">I want to use a TouchSensor in a ROUTE that I am adding in Sunrize ECMAScript (SAI, embedded scripts), but I can't seem to set the DEF, so I can't really add the ROUTE.<div><br></div><div>I can't use createX3DFromString(), perhaps, because I might not be able to access DEF to get the DEF value.  I don't have experience using the result from createX3DFromString().</div><div><br></div><div>I am creating TouchSensors in a double loop, and it appears the only way to do it is with  code generation.</div><div><br></div><div>Hmm.  AFAIK, setting DEF is super simple in Java and Python, especially in DOM.</div><div><br></div><div>I don't really feel like code generation is reasonable, because I will have to rewrite my code.</div><div><br></div><div>This is where I through my hands up and use something like raylib or HTML.</div><div><br></div><div>Using a PROTO might be much more reasonable.</div><div><br></div><div>John</div></div>
</blockquote></div>
</blockquote></div></div>
</div>
</div></blockquote></div><br></div></div></blockquote></div></div>