<div dir="auto">I have a dream, to create a web page or X3D-Edit control where you put in 0..1 timing key frames, cycleInterval for each, and type of move (select pull down for now), and all the initial animation control code gets generated.  And one can save the animation configuration in one’s project for later regeneration.  One table per character.   And if you want to create custom routes for an animation, that gets saved too.</div><div dir="auto"><br></div><div dir="auto">What type of GUI toolkit does X3D-Edit use?  I’m hoping it has something like JTable and can be used standalone initially.</div><div dir="auto"><br></div><div dir="auto">I just realized what J stands for.</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, Aug 31, 2023 at 8:20 AM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word"><div class="m_-8028282173825987980WordSection1"><p class="m_-8028282173825987980MsoPlainText">Agreed that good TimeSensor control can be tricky (sure seems harder than it should be) but it is achievable.<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">For your vignette, Joe, with <i>enabled</i>=true you can send a triggering event to TimeSensor <i>set_startTime</i> to commence operation, keep <i>loop</i>=false to not repeat.  Lather rinse repeat as desired.<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-8028282173825987980MsoPlainText">X3D Tooltips, TimeSensor<u></u><u></u></li><li class="m_-8028282173825987980MsoPlainText"><a href="https://www.web3d.org/x3d/content/X3dTooltips.html#TimeSensor" target="_blank">https://www.web3d.org/x3d/content/X3dTooltips.html#TimeSensor</a><u></u><u></u></li></ul><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-8028282173825987980MsoPlainText">X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 07 Event Animation Interpolation<u></u><u></u></li><li class="m_-8028282173825987980MsoPlainText"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation</a><u></u><u></u></li></ul><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">The following example from that chapter shows use of a TouchSensor to send the triggering SFTime event to the animation-clock TimeSensor.  It simultaneously ROUTEs the TouchSensor <i>isActive</i> event to the animation clock’s <i>enabled</i> field, meaning that the animation only proceeds while the user continues to select the TouchSensor on the green shape.<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-8028282173825987980MsoPlainText">X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 07 Event Animation Interpolation, Coordinate Interpolator 2D Example<u></u><u></u></li><li class="m_-8028282173825987980MsoPlainText"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/CoordinateInterpolator2dExampleIndex.html" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/CoordinateInterpolator2dExampleIndex.html</a><u></u><u></u></li></ul><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">The language “select” here is carefully chosen because user selection might occur with all manner of interaction devices.  If using a mouse, “select” means the user clicks and holds the mouse button.  If using a phone or pad with a touch screen, then “select” means touch and hold with your finger (screenshot follows).  Keyboard-only operation (with arrow and ENTER keys) is also defined in the X3D4 Architecture specification.  If using an underwater CAVE immersive installation (perhaps in Blacksburg Virginia or downtown Monterey California) then a swimming shark wearing a laser might simply point and keep the green Extrusion painted to watch the animation.  Sorry but no video of that last one, yet, perhaps a good metaverse use case…<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-8028282173825987980MsoPlainText"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/CoordinateInterpolator2dExamplePhoneTouchScreenImage.png" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/CoordinateInterpolator2dExamplePhoneTouchScreenImage.png</a><u></u><u></u></li></ul><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">Trouble report:  X3DOM does not yet support CoordinateInterpolator2D node.<u></u><u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-8028282173825987980MsoPlainText">X3DOM Nodes Index<u></u><u></u></li><li class="m_-8028282173825987980MsoPlainText"><a href="https://doc.x3dom.org/author/nodes.html" target="_blank">https://doc.x3dom.org/author/nodes.html</a><u></u><u></u></li></ul><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">Small additional progress report:  discerning eyes will notice a small recent refinement in the pretty-print HTML documentation.  When inserting the documentation links for ROUTE connections to/from the following node, there is now a small box surrounding the inserted and original lines of source.  Hopefully this is a usability help, suggested improvements always welcome.<u></u><u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-8028282173825987980MsoPlainText"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/CoordinateInterpolator2dExample.html" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/CoordinateInterpolator2dExample.html</a><u></u><u></u></li></ul><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">Have fun with X3D interaction + animation!  8)<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">all the best, Don<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">-- <u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank">https://faculty.nps.edu/brutzman</a><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">-----Original Message-----<br>From: x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@web3d.org</a>> On Behalf Of Joe D Williams<br>Sent: Wednesday, August 30, 2023 6:09 PM<br>To: <a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>Subject: [x3d-public] TimeSensor Control<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><TimeSensor DEF='GBTimer' cycleInterval='100' loop='false' enabled='false' /><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><BooleanSequencer DEF='GBTimerControl' <u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">key='0 1'<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">keyValue='true false' /><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><ROUTE fromField='fraction_changed' fromNode='GBTimer' toField='set_fraction' toNode='GBTimerControl'/> <ROUTE fromField='value_changed' fromNode='GBTimerControl' toField='enabled' toNode='GBTimer'/><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">What combination of parameters so I need to get this to just Run Once then stop.<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">Seems like if I start with loop='false' it doesn't go. <u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">enabled true or false sent by control does nothing <u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">Thanks,<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">Joe<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">_______________________________________________<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">x3d-public mailing list<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">all the best, Don<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">-- <u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank">https://faculty.nps.edu/brutzman</a><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">-----Original Message-----<br>From: x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@web3d.org</a>> On Behalf Of Joe D Williams<br>Sent: Wednesday, August 30, 2023 6:09 PM<br>To: <a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>Subject: [x3d-public] TimeSensor Control</p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><TimeSensor DEF='GBTimer' cycleInterval='100' loop='false' enabled='false' /><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><BooleanSequencer DEF='GBTimerControl' <u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">key='0 1'<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">keyValue='true false' /><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><ROUTE fromField='fraction_changed' fromNode='GBTimer' toField='set_fraction' toNode='GBTimerControl'/> <ROUTE fromField='value_changed' fromNode='GBTimerControl' toField='enabled' toNode='GBTimer'/><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">What combination of parameters so I need to get this to just Run Once then stop.<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">Seems like if I start with loop='false' it doesn't go. <u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">enabled true or false sent by control does nothing <u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">Thanks,<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">Joe<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText"><u></u> <u></u></p><p class="m_-8028282173825987980MsoPlainText">_______________________________________________<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText">x3d-public mailing list<u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><a href="mailto:x3d-public@web3d.org" target="_blank"><span style="color:windowtext;text-decoration:none">x3d-public@web3d.org</span></a><u></u><u></u></p><p class="m_-8028282173825987980MsoPlainText"><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank"><span style="color:windowtext;text-decoration:none">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span></a><u></u><u></u></p></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></div>