[x3d-public] X3DSequencer refinements for strict determinism

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon Oct 11 11:35:42 PDT 2021


Today Dick and I refined prose and reconciled multiple comments in Mantis 1093 and 1185.

We think that the equations for X3DSequencer computations are now clearer, especially when several keys are identical (which is allowed in a monotonically non-decreasing sequence).  We thank Yves Piguet, Roy Walmsley and Andreas Plesch for fundamental contributions.


  *   30.2.4 Sequencing single field (SF) events - Discrete value sequencing function
  *   https://www.web3d.org/member-only/mantis/view.php?id=1185


  *   30.2.4 Sequencing Single Field (SF) events - Notation in sequencing function
  *   https://www.web3d.org/member-only/mantis/view.php?id=1093

Results online as follows.  All comments welcome.


  *   30.2.4 Sequencing Single Field (SF) events
  *   https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/eventUtilities.html#SequencingEvents

30.2.4 Sequencing Single Field (SF) events

Sequencer nodes allow content authors to generate a specific sequence of discrete events over the course of a TimeSensor's output. They are derived from the abstract node type X3DSequencerNode and thus share the signature fields of set_fraction (SFFloat [in]) and key (MFFloat [in,out]).

The set_fraction inputOnly field receives an SFFloat event and causes the sequencing function to evaluate, resulting in a value_changed output event with the same timestamp as the set_fraction event. The sequencer node sends only one value_changed output event per key[i] interval. Such sequenced values are not interpolated. The usage of the keyValue and output fields are dependent on the type of the Sequencer.

BooleanSequencer and IntegerSequencer output a single-value field to value_changed. Each value in the keyValue field corresponds in order to the parameter value in the key field. Results are undefined if the number of values in the key field of a sequencer is not the same as the number of values in the keyValue field.

The specified X3D sequencer nodes are designed for discrete events along a timeline. Each of these nodes defines a piecewise-linear function, f(t), on the interval ( −infinity, +infinity). The piecewise-linear function is defined by n values of t, called key, and the n corresponding values of f(t), called keyValue. The keys shall be monotonically non-decreasing, otherwise the results are undefined. The keys are not restricted to any interval.

Each of these nodes evaluates f(t) given any value of t (via the fraction field) as follows: Let the n keys t0, t1, t2, ..., tn-1 partition the domain ( -infinity, +infinity) into the n+1 subintervals given by (− infinity, t0), [t0, t1), [t1, t2), ..., [tn-1, +infinity). Also, let the n values v0, v1, v2, ..., vn-1 be the values of f(t) at the associated key values. The discrete value sequencing function, f(t), is defined to be:

    f(t) = vn, if tn ≤ t < tn-1
         = v0, if t ≤ t0,
         = vn−1, if t ≥ tn−1

    f(t) = vi ,    if ti ≤ t < tn-1 for 0 ≤ i < n-1;
         = vi ,     if t = ti = ti+1;
         = v0 ,    if t ≤ t0;
         = vn−1 , if t ≥ tn−1

Note that if more than one key/keyValue pairs are provided for the same key, only the first defined value for keyValue is used.
all the best, Don
--
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20211011/146c5660/attachment-0001.html>


More information about the x3d-public mailing list