<div dir="auto">Hi Mike,<div dir="auto"><br></div><div dir="auto">let me try. Since there is no way to directly set the fraction of the timesensor, I think you can only use it indirectly if you want to use it in combination with another control on the progress of an animation.<div dir="auto"><br></div><div dir="auto">Let's call the position on the slider progress. The idea would be to add the timesensor's fraction_changed to current progress when play is requested. To keep things simple it might be best set start time to now when play is pressed to start with a fraction of 0 to add.</div><div dir="auto"><br></div><div dir="auto">Then when the slider is dragged stop the time sensor and update progress by the sliders value.</div><div dir="auto"><br></div><div dir="auto">Then when dragging stops it would be probably easiest and least surprising if playing would pause until the play button is pressed again.</div><div dir="auto"><br></div><div dir="auto">The main point is that the timesensors time should not directly represent playing time or progress.</div><div dir="auto"><br></div><div dir="auto">I think that approach could work,</div><div dir="auto"><br></div><div dir="auto">Andreas</div><div dir="auto"><div dir="auto"><br><div data-smartmail="gmail_signature" dir="auto">---on the phone---</div></div></div></div></div><br>
<br>
On Mon, Dec 16, 2019 at 11:36 AM Mike McCann <<a href="mailto:mccann@mbari.org" target="_blank" rel="noreferrer">mccann@mbari.org</a>> wrote:<br>
><br>
> I Andreas,<br>
><br>
> I did get Vince’s suggestion of "InterpolatorNode.setFieldValue('set_fraction', ts_fraction)” to work. I will try your suggestion as well.<br>
><br>
> Regarding your suggestion of resetting startTime after scrubbing, I assume that this might be meant to set the new fraction of the TimeSensor to the scrubbed value.<br>
><br>
> However, this does not work for me. In fact, I can see no way to set a new fraction value for the TimeSensor when playing begins after scrubbing, given it’s specification:<br>
><br>
> TimeSensor : X3DTimeDependentNode, X3DSensorNode {<br>
>   SFTime  [in,out] cycleInterval    1     (0,∞)<br>
>   SFBool  [in,out] enabled          TRUE<br>
>   SFBool  [in,out] loop             FALSE<br>
>   SFNode  [in,out] metadata         NULL  [X3DMetadataObject]<br>
>   SFTime  [in,out] pauseTime        0     (-∞,∞)<br>
>   SFTime  [in,out] resumeTime       0<br>
>   SFTime  [in,out] startTime        0     (-∞,∞)<br>
>   SFTime  [in,out] stopTime         0     (-∞,∞)<br>
>   SFTime  [out]    cycleTime<br>
>   SFTime  [out]    elapsedTime<br>
>   SFFloat [out]    fraction_changed<br>
>   SFBool  [out]    isActive<br>
>   SFBool  [out]    isPaused<br>
>   SFTime  [out]    time<br>
> }<br>
><br>
> Am I missing something?<br>
><br>
> -Mike<br>
><br>
> On Dec 15, 2019, at 5:07 AM, Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noreferrer">andreasplesch@gmail.com</a>> wrote:<br>
><br>
> Hi Joe,<br>
><br>
> Thanks for the memory jog. I recall doing it this way in pure VRML.<br>
><br>
> What I can?t figure out is how to ?route? the output of the HTML slider into X3DOM's Interpolators. Is there an attribute in the x3dom runtime that I can set?<br>
><br>
> -Mike<br>
><br>
><br>
> Hi Mike,<br>
><br>
> as in Vince's example, you should be able use the set_fraction field<br>
> of the interpolator as attribute.<br>
> InterpolatorNode.setAttribute('set_field', newValuefromSlider) should<br>
> work.<br>
><br>
> It might work to use a timesensor's fraction_changed as an _offset_ to<br>
> the last position of the slider when the play button was pressed.<br>
><br>
> This probably means that the startTime of the timesensor needs to be<br>
> reset to now each time playing begins after scrubbing.<br>
><br>
> -Andreas<br>
><br>
> On Dec 13, 2019, at 1:44 PM, Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noreferrer">joedwil@earthlink.net</a>> wrote:<br>
><br>
> Hi Mike,<br>
> Same as to do a slider control in x3d?<br>
> You disconnect the TimeSensor and drive the Position and Orientation Interpolators with a number you derive from the slider, I think.<br>
> Joe<br>
><br>
> From: Mike McCann <mailto:<a href="mailto:mccann@mbari.org" target="_blank" rel="noreferrer">mccann@mbari.org</a>><br>
> Sent: Friday, December 13, 2019 10:25 AM<br>
> To: x3dom mlist <mailto:<a href="mailto:x3dom-users@lists.sourceforge.net" target="_blank" rel="noreferrer">x3dom-users@lists.sourceforge.net</a>>; X3D Graphics public mailing list <mailto:<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>
> Subject: [x3d-public] HTML slider and TimeSensor scrubbing behavior<br>
><br>
> Hello,<br>
><br>
> I have a TimeSensor that drives Position and Orientation Interpolators via ROUTEd fraction _changed and set_ events.<br>
><br>
> The fraction_changed event out is also connected to an HTML slider (<input type=?range?>) via X3DOM?s onoutputchange() attribute.<br>
><br>
> The HTML slider shows the progress of the animation, but I?d also like to use it to control the fraction of the animation, much like one can scrub through a video with a timeline slider.<br>
><br>
> It seems that if I were able to set the fraction of the TimeSensor from the HTML slider I could achieve my goal, but there is not a set_fraction event in for it.<br>
><br>
> Is there a best practice or any suggestions for how I may achieve my goal?<br>
><br>
> Thanks in advance,<br>
> Mike<br>
><br>
> P.S. Though my immediate need is to implement this in X3DOM, I?d think that this might be a common use case, so I?m cross-posting on x3d-public.<br>
><br>
> --<br>
> Mike McCann<br>
> Software Engineer<br>
> Monterey Bay Aquarium Research Institute<br>
> 7700 Sandholdt Road<br>
> Moss Landing, CA 95039-9644<br>
> Voice: 831.775.1769  Fax: 831.775.1736 <a href="http://www.mbari.org" rel="noreferrer noreferrer" target="_blank">http://www.mbari.org</a><br>
><br>
><br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a> <mailto:<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a> <<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>><br>
><br>
> -------------- next part --------------<br>
> An HTML attachment was scrubbed...<br>
> URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20191214/644683a6/attachment-0001.html" rel="noreferrer noreferrer" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20191214/644683a6/attachment-0001.html</a>><br>
><br>
> ------------------------------<br>
><br>
> Message: 2<br>
> Date: Sat, 14 Dec 2019 16:44:12 -0500<br>
> From: "<a href="mailto:vmarchetti@kshell.com" target="_blank" rel="noreferrer">vmarchetti@kshell.com</a>" <<a href="mailto:vmarchetti@kshell.com" target="_blank" rel="noreferrer">vmarchetti@kshell.com</a>><br>
> To: Mike McCann <<a href="mailto:mccann@mbari.org" target="_blank" rel="noreferrer">mccann@mbari.org</a>><br>
> Cc: Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noreferrer">joedwil@earthlink.net</a>>, x3dom mlist<br>
>        <<a href="mailto:x3dom-users@lists.sourceforge.net" target="_blank" rel="noreferrer">x3dom-users@lists.sourceforge.net</a>>, X3D Graphics public mailing list<br>
>        <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>
> Subject: Re: [x3d-public] HTML slider and TimeSensor scrubbing<br>
>        behavior<br>
> Message-ID: <<a href="mailto:92904E9C-B23B-4B19-BE42-AA5F4F406C62@kshell.com" target="_blank" rel="noreferrer">92904E9C-B23B-4B19-BE42-AA5F4F406C62@kshell.com</a>><br>
> Content-Type: text/plain; charset="utf-8"<br>
><br>
> Mike<br>
><br>
> This sounds similar to a scene I worked on at <a href="http://www.kshell.com/pages/cmmpoc/index.html" rel="noreferrer noreferrer" target="_blank">http://www.kshell.com/pages/cmmpoc/index.html</a> <<a href="http://www.kshell.com/pages/cmmpoc/index.html" rel="noreferrer noreferrer" target="_blank">http://www.kshell.com/pages/cmmpoc/index.html</a>> . I've got three sliders feeding into 3 position interpolators,<br>
> Because I load my x3d as an external file I have to run a javascript after loading that looks through the DOM tree and finds those interpolators.<br>
><br>
> But the relevant part for you I think, is to define a function which I call "moveInterpolator" and to set it as the handler for the 'oninput' method of the slider.<br>
> You can see it in the source html for page <a href="http://www.kshell.com/pages/cmmpoc/index.html" rel="noreferrer noreferrer" target="_blank">http://www.kshell.com/pages/cmmpoc/index.html</a> <<a href="http://www.kshell.com/pages/cmmpoc/index.html" rel="noreferrer noreferrer" target="_blank">http://www.kshell.com/pages/cmmpoc/index.html</a>><br>
><br>
> Vince Marchetti<br>
><br>
><br>
> On Dec 14, 2019, at 4:29 PM, Mike McCann <<a href="mailto:mccann@mbari.org" target="_blank" rel="noreferrer">mccann@mbari.org</a>> wrote:<br>
><br>
> Hi Joe,<br>
><br>
> Thanks for the memory jog. I recall doing it this way in pure VRML.<br>
><br>
> What I can?t figure out is how to ?route? the output of the HTML slider into X3DOM's Interpolators. Is there an attribute in the x3dom runtime that I can set?<br>
><br>
> -Mike<br>
><br>
> On Dec 13, 2019, at 1:44 PM, Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noreferrer">joedwil@earthlink.net</a> <mailto:<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noreferrer">joedwil@earthlink.net</a>>> wrote:<br>
><br>
> Hi Mike,<br>
> Same as to do a slider control in x3d?<br>
> You disconnect the TimeSensor and drive the Position and Orientation Interpolators with a number you derive from the slider, I think.<br>
> Joe<br>
><br>
> From: Mike McCann <mailto:<a href="mailto:mccann@mbari.org" target="_blank" rel="noreferrer">mccann@mbari.org</a>><br>
> Sent: Friday, December 13, 2019 10:25 AM<br>
> To: x3dom mlist <mailto:<a href="mailto:x3dom-users@lists.sourceforge.net" target="_blank" rel="noreferrer">x3dom-users@lists.sourceforge.net</a>>; X3D Graphics public mailing list <mailto:<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>
> Subject: [x3d-public] HTML slider and TimeSensor scrubbing behavior<br>
><br>
> Hello,<br>
><br>
> I have a TimeSensor that drives Position and Orientation Interpolators via ROUTEd fraction _changed and set_ events.<br>
><br>
> The fraction_changed event out is also connected to an HTML slider (<input type=?range?>) via X3DOM?s onoutputchange() attribute.<br>
><br>
> The HTML slider shows the progress of the animation, but I?d also like to use it to control the fraction of the animation, much like one can scrub through a video with a timeline slider.<br>
><br>
> It seems that if I were able to set the fraction of the TimeSensor from the HTML slider I could achieve my goal, but there is not a set_fraction event in for it.<br>
><br>
> Is there a best practice or any suggestions for how I may achieve my goal?<br>
><br>
> Thanks in advance,<br>
> Mike<br>
><br>
> P.S. Though my immediate need is to implement this in X3DOM, I?d think that this might be a common use case, so I?m cross-posting on x3d-public.<br>
><br>
> --<br>
> Mike McCann<br>
> Software Engineer<br>
> Monterey Bay Aquarium Research Institute<br>
> 7700 Sandholdt Road<br>
> Moss Landing, CA 95039-9644<br>
> Voice: 831.775.1769  Fax: 831.775.1736 <a href="http://www.mbari.org" rel="noreferrer noreferrer" target="_blank">http://www.mbari.org</a> <<a href="http://www.mbari.org/" rel="noreferrer noreferrer" target="_blank">http://www.mbari.org/</a>><br>
><br>
><br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a> <mailto:<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a> <<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>><br>
><br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
><br>
><br>
> -------------- next part --------------<br>
> An HTML attachment was scrubbed...<br>
> URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20191214/19fe265d/attachment.html" rel="noreferrer noreferrer" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20191214/19fe265d/attachment.html</a>><br>
><br>
> ------------------------------<br>
><br>
> Subject: Digest Footer<br>
><br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
><br>
><br>
> ------------------------------<br>
><br>
> End of x3d-public Digest, Vol 129, Issue 16<br>
> *******************************************<br>
><br>
><br>
><br>
><br>
> --<br>
> Andreas Plesch<br>
> Waltham, MA 02453<br>
><br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
><br>
><br>
<br>
<br>
-- <br>
Andreas Plesch<br>
Waltham, MA 02453<br>