[x3d-public] HTML slider and TimeSensor scrubbing behavior

Mike McCann mccann at mbari.org
Mon Dec 16 08:36:37 PST 2019


I Andreas,

I did get Vince’s suggestion of "InterpolatorNode.setFieldValue('set_fraction', ts_fraction)” to work. I will try your suggestion as well.

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.

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:

TimeSensor : X3DTimeDependentNode, X3DSensorNode {
  SFTime  [in,out] cycleInterval    1     (0,∞)
  SFBool  [in,out] enabled          TRUE
  SFBool  [in,out] loop             FALSE
  SFNode  [in,out] metadata         NULL  [X3DMetadataObject]
  SFTime  [in,out] pauseTime        0     (-∞,∞)
  SFTime  [in,out] resumeTime       0
  SFTime  [in,out] startTime        0     (-∞,∞)
  SFTime  [in,out] stopTime         0     (-∞,∞)
  SFTime  [out]    cycleTime
  SFTime  [out]    elapsedTime
  SFFloat [out]    fraction_changed
  SFBool  [out]    isActive
  SFBool  [out]    isPaused
  SFTime  [out]    time
}

Am I missing something?

-Mike

> On Dec 15, 2019, at 5:07 AM, Andreas Plesch <andreasplesch at gmail.com> wrote:
> 
>> Hi Joe,
>> 
>> Thanks for the memory jog. I recall doing it this way in pure VRML.
>> 
>> 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?
>> 
>> -Mike
> 
> Hi Mike,
> 
> as in Vince's example, you should be able use the set_fraction field
> of the interpolator as attribute.
> InterpolatorNode.setAttribute('set_field', newValuefromSlider) should
> work.
> 
> It might work to use a timesensor's fraction_changed as an _offset_ to
> the last position of the slider when the play button was pressed.
> 
> This probably means that the startTime of the timesensor needs to be
> reset to now each time playing begins after scrubbing.
> 
> -Andreas
> 
>>> On Dec 13, 2019, at 1:44 PM, Joseph D Williams <joedwil at earthlink.net> wrote:
>>> 
>>> Hi Mike,
>>> Same as to do a slider control in x3d?
>>> You disconnect the TimeSensor and drive the Position and Orientation Interpolators with a number you derive from the slider, I think.
>>> Joe
>>> 
>>> From: Mike McCann <mailto:mccann at mbari.org>
>>> Sent: Friday, December 13, 2019 10:25 AM
>>> To: x3dom mlist <mailto:x3dom-users at lists.sourceforge.net>; X3D Graphics public mailing list <mailto:x3d-public at web3d.org>
>>> Subject: [x3d-public] HTML slider and TimeSensor scrubbing behavior
>>> 
>>> Hello,
>>> 
>>> I have a TimeSensor that drives Position and Orientation Interpolators via ROUTEd fraction _changed and set_ events.
>>> 
>>> The fraction_changed event out is also connected to an HTML slider (<input type=?range?>) via X3DOM?s onoutputchange() attribute.
>>> 
>>> 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.
>>> 
>>> 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.
>>> 
>>> Is there a best practice or any suggestions for how I may achieve my goal?
>>> 
>>> Thanks in advance,
>>> Mike
>>> 
>>> 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.
>>> 
>>> --
>>> Mike McCann
>>> Software Engineer
>>> Monterey Bay Aquarium Research Institute
>>> 7700 Sandholdt Road
>>> Moss Landing, CA 95039-9644
>>> Voice: 831.775.1769  Fax: 831.775.1736 http://www.mbari.org
>>> 
>>> 
>>> _______________________________________________
>>> x3d-public mailing list
>>> x3d-public at web3d.org <mailto:x3d-public at web3d.org>
>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org <http://web3d.org/mailman/listinfo/x3d-public_web3d.org>
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20191214/644683a6/attachment-0001.html>
>> 
>> ------------------------------
>> 
>> Message: 2
>> Date: Sat, 14 Dec 2019 16:44:12 -0500
>> From: "vmarchetti at kshell.com" <vmarchetti at kshell.com>
>> To: Mike McCann <mccann at mbari.org>
>> Cc: Joseph D Williams <joedwil at earthlink.net>, x3dom mlist
>>        <x3dom-users at lists.sourceforge.net>, X3D Graphics public mailing list
>>        <x3d-public at web3d.org>
>> Subject: Re: [x3d-public] HTML slider and TimeSensor scrubbing
>>        behavior
>> Message-ID: <92904E9C-B23B-4B19-BE42-AA5F4F406C62 at kshell.com>
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Mike
>> 
>> This sounds similar to a scene I worked on at http://www.kshell.com/pages/cmmpoc/index.html <http://www.kshell.com/pages/cmmpoc/index.html> . I've got three sliders feeding into 3 position interpolators,
>> 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.
>> 
>> 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.
>> You can see it in the source html for page http://www.kshell.com/pages/cmmpoc/index.html <http://www.kshell.com/pages/cmmpoc/index.html>
>> 
>> Vince Marchetti
>> 
>> 
>>> On Dec 14, 2019, at 4:29 PM, Mike McCann <mccann at mbari.org> wrote:
>>> 
>>> Hi Joe,
>>> 
>>> Thanks for the memory jog. I recall doing it this way in pure VRML.
>>> 
>>> 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?
>>> 
>>> -Mike
>>> 
>>>> On Dec 13, 2019, at 1:44 PM, Joseph D Williams <joedwil at earthlink.net <mailto:joedwil at earthlink.net>> wrote:
>>>> 
>>>> Hi Mike,
>>>> Same as to do a slider control in x3d?
>>>> You disconnect the TimeSensor and drive the Position and Orientation Interpolators with a number you derive from the slider, I think.
>>>> Joe
>>>> 
>>>> From: Mike McCann <mailto:mccann at mbari.org>
>>>> Sent: Friday, December 13, 2019 10:25 AM
>>>> To: x3dom mlist <mailto:x3dom-users at lists.sourceforge.net>; X3D Graphics public mailing list <mailto:x3d-public at web3d.org>
>>>> Subject: [x3d-public] HTML slider and TimeSensor scrubbing behavior
>>>> 
>>>> Hello,
>>>> 
>>>> I have a TimeSensor that drives Position and Orientation Interpolators via ROUTEd fraction _changed and set_ events.
>>>> 
>>>> The fraction_changed event out is also connected to an HTML slider (<input type=?range?>) via X3DOM?s onoutputchange() attribute.
>>>> 
>>>> 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.
>>>> 
>>>> 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.
>>>> 
>>>> Is there a best practice or any suggestions for how I may achieve my goal?
>>>> 
>>>> Thanks in advance,
>>>> Mike
>>>> 
>>>> 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.
>>>> 
>>>> --
>>>> Mike McCann
>>>> Software Engineer
>>>> Monterey Bay Aquarium Research Institute
>>>> 7700 Sandholdt Road
>>>> Moss Landing, CA 95039-9644
>>>> Voice: 831.775.1769  Fax: 831.775.1736 http://www.mbari.org <http://www.mbari.org/>
>>>> 
>>>> 
>>>> _______________________________________________
>>>> x3d-public mailing list
>>>> x3d-public at web3d.org <mailto:x3d-public at web3d.org>
>>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org <http://web3d.org/mailman/listinfo/x3d-public_web3d.org>
>>> _______________________________________________
>>> x3d-public mailing list
>>> x3d-public at web3d.org
>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>> 
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20191214/19fe265d/attachment.html>
>> 
>> ------------------------------
>> 
>> Subject: Digest Footer
>> 
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>> 
>> 
>> ------------------------------
>> 
>> End of x3d-public Digest, Vol 129, Issue 16
>> *******************************************
> 
> 
> 
> -- 
> Andreas Plesch
> Waltham, MA 02453
> 
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20191216/364f1e85/attachment.html>


More information about the x3d-public mailing list