<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Don and all, <br>
    <br>
    great that you work on the Followers component. <br>
    <br>
    Last x3d call i mentioned that there are default values for a few
    fields that<br>
    should be corrected. You have incorporated them already in the prose
    of the<br>
    new nodes. Are you intending to also discuss correcting them for the
    existing<br>
    follower nodes in the editor meeting on Monday?<br>
    <br>
    Reason for correcting them is:<br>
    a) that the values these fields currently have in the spec do not
    expose the<br>
        behavior of the follower nodes. A content author first must
    understand to<br>
        set the values of tau, order and duration before they can see
    what a follower<br>
        node does.<br>
    b) Current implementations (Instant Reality an Bitmanagement) don't
    follow the<br>
        spec in this respect anyway. Therefore the argument of keeping
    backwards<br>
        compatibility is not relevant, because there is no content which
    relies on the<br>
        default values from the spec.<br>
    <br>
    This is a list of what the values for these fields are in the spec
    and in IR and BS:     <br>
    <small><small><small><small><small><br>
            </small></small></small></small></small><tt><b>  Field</b>    

      <b>Node group</b>    <b>X3D</b>   <b>IR</b>   <b>BS     should
        be</b><br>
        tau       (Dampers)     0     0    1      1 (or better 0.3)<br>
        order     (Dampers)     0     1    3      1 (or better 3)<br>
        duration  (Chasers)     0     1    n/a    1</tt><br>
    <br>
    For the prose of the new nodes, i marked a few things that should be
    adopted.<br>
    They are bold and red, and removals received a strike-through style.
    See below.<br>
    Is that readable for everybody?<br>
     <br>
    best regards,<br>
    <br>
    <i>i. A. Herbert Stocker<br>
      <br>
    </i><br>
    On 24.02.12 03:43, Don Brutzman wrote:
    <blockquote cite="mid:4F46F949.5010705@nps.edu" type="cite">
      <pre wrap="">On 2/8/2012 9:04 AM, Don Brutzman wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">     ColorChaser
     CoordinateChaser
     ScalarDamper
     TexCoordChaser (if defined, X3D name would be TexCoordChaser2D)
</pre>
      </blockquote>
      <pre wrap="">Draft specification prose follows.  Thanks Dick for heavy-lift assist.
Review and corrections are most welcome.  This goes final on 12 March.

Reference:
<a class="moz-txt-link-freetext" href="http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/followers.html">http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/followers.html</a>

Target:
<a class="moz-txt-link-freetext" href="http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/followers.html">http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/followers.html</a>

Paragraph numbers should be inserted to achieve alphabetical order of
nodes.

==============================================================================

39.4.A     ColorChaser

ColorChaser: X3DChaserNode {
  SFColor [in]     set_destination
  SFColor [in]     set_value
  SFNode  [in,out] metadata           NULL [X3DMetadataObject]
  SFBool  [out]    isActive
  SFColor [out]    value_changed
  SFTime  []       duration           1    [0,∞)
  SFColor []       initialDestination 0.8 0.8 0.8
  SFColor []       initialValue       0.8 0.8 0.8
}

The ColorChaser animates transitions for single colour values. Whenever the set_destination field receives a <font color="#cc0000"><b><strike>floating point number</strike></b></font> <b><font color="#cc0000">color value</font></b>, the value_changed <b><font color="#cc0000">field</font></b> creates a transition from its current value to the newly set <font color="#cc0000"><b><strike>number</strike> color</b></font>. It creates a smooth transition that ends duration seconds after the last <font color="#cc0000"><b><strike>number</strike> color value</b></font> has been received.

When set_value receives a colour value, any transition currently in process is stopped and value_changed sends this value immediately, creating a jump. The field initialValue can be used to set the initial <strike><font color="#cc0000"><b>initial</b></font></strike> value of value_changed. The field initialDestination should be set to the same value unless a transition to a certain value is to be created right after the scene is loaded or right after the ColorChaser node is created dynamically.

==============================================================================

39.4.B     CoordinateChaser

CoordinateChaser: X3DChaserNode {
  MFVec3f [in]     set_destination
  MFVec3f [in]     set_value
  SFNode  [in,out] metadata           NULL [X3DMetadataObject]
  SFBool  [out]    isActive
  MFVec3f [out]    value_changed
  SFTime  []       duration           1    [0,∞)
  MFVec3f []       initialDestination 0 0 0
  MFVec3f []       initialValue       0 0 0
}

The CoordinateChaser animates transitions for <b><font color="#cc0000">an </font></b>array of 3D vectors (e.g., the coordinates of a mesh). Whenever the set_destination field receives an array of 3D vectors, the value_changed <b><font color="#cc0000">field</font></b> creates a transition <b><font color="#cc0000">for every array element </font></b>from its current value to the newly set <b><font color="#cc0000"><strike>number</strike> value</font></b>. It creates a smooth transition that ends duration seconds after the last <b><font color="#cc0000"><strike>number</strike> value</font></b> has been received.

When set_value receives an array of 3D vectors, any transition currently in process is stopped and value_changed sends this value immediately, creating a jump. The field initialValue can be used to set the initial <strike><b><font color="#cc0000">initial</font></b></strike> value of value_changed. The field initialDestination should be set to the same value unless a transition to a certain value is to be created right after the scene is loaded or right after the CoordinateChaser node is created dynamically.

==============================================================================

39.4.C     TexCoordChaser2D

TexCoordChaser2D: X3DChaserNode {
  MFVec2f [in]     set_destination
  MFVec2f [in]     set_value
  SFNode  [in,out] metadata           NULL [X3DMetadataObject]
  SFBool  [out]    isActive
  MFVec2f [out]    value_changed
  SFTime  []       duration           1    [0,∞)
  MFVec2f []       initialDestination []
  MFVec2f []       initialValue       []
}

The TexCoordChaser2D animates transitions for an array of 2D vectors (e.g., the texture coordinates of a mesh). Whenever the set_destination field receives an array of 2D vectors, the value_changed <b><font color="#cc0000">field</font></b> creates a transition <b><font color="#cc0000">for every array element </font></b>from its current value to the newly set <b><font color="#cc0000"><strike>number</strike> value</font></b>. It creates a smooth transition that ends duration seconds after the last <b><font color="#cc0000"><strike>number</strike> value</font></b> has been received.

When set_value receives an array of 2D vectors, any transition currently in process is stopped and value_changed sends this value immediately, creating a jump. The field initialValue can be used to set the initial <strike><b><font color="#cc0000">initial</font></b></strike> value of value_changed. The field initialDestination should be set to the same value unless a transition to a certain value is to be created right after the scene is loaded or right after the TexCoordChaser2D node is created dynamically.

==============================================================================

39.4.D     ScalarDamper

ScalarDamper: X3DDamperNode {
  SFFloat [in]     set_destination
  SFFloat [in]     set_value
  SFNode  [in,out] metadata           NULL  [X3DMetadataObject]
  SFTime  [in,out] tau                0.3     [0,∞)
  SFFloat [in,out] tolerance          -1    -1 or [0,∞)
  SFBool  [out]    isActive
  SFFloat [out]    value_changed
  SFFloat []       initialDestination 0
  SFFloat []       initialValue       0
  SFInt32 []       order              3     [0..5]
}

The ScalarDamper animates transitions for single float values. <strike><font color="#cc0000"><b>If the value_changed field is routed to a transparency field of a Material node, then,</b></font></strike> <strike><font color="#cc0000"><b>wW</b></font></strike>henever the set_destination field receives a single float value, the ScalarDamper node creates a transition from its current value to the newly set value. It creates a transition that approaches the newly set value asymptotically during a time period of approximately three to four times the value of the field tau depending on the desired accuracy and the value of order. Through this asymptotic approach of the destination value, a smooth transition is created. The order field specifies the smoothness of the transition.

When set_value receives a value, any transition currently in process is stopped and value_changed sends this value immediately, creating a jump to the new value. The field initialValue can be used to set the initial value of the node. The field initialDestination should be set to the same value unless a transition to a certain value is to be created right after the scene is loaded or right after the ScalarDamper node is created dynamically.

==============================================================================

p.s. other TODO items here:

- restore italics for field names above
- for each chaser, replace "value value" with "value"

==============================================================================

Discussion item:

Table 39.5 "Support levels" should add these nodes.  If there are no
objections, then I recommend we put these four nodes under Level 1,
rather than creating a Level 2.  A worthy argument can be made
that a browser compliant with X3D v3.2 Followers Component would
suddenly be out of compliance with X3D v3.3.  However, the two active
implementations of the Followers component have each committed
to add (or refine) support for these nodes in the near future.
Sticking to simply one level makes the whole business easier for
authors, rather than propagating an idiosyncrasy forward into all
future versions of X3D.

There is one apparent counterexample:  Octaga player is no longer a
Web3D member.  If anyone can encourage them to add the nodes (or for
that matter, re-lease their plugin), that would great.  Last known
status was reported 1 year ago.
<a class="moz-txt-link-freetext" href="http://www.web3d.org/pipermail/x3d-public_web3d.org/2011-February/001468.html">http://www.web3d.org/pipermail/x3d-public_web3d.org/2011-February/001468.html</a>

==============================================================================

all the best, Don
</pre>
    </blockquote>
    <br>
    <br>
  </body>
</html>