<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">It is important to note that when a
      DEFed node is USEd, it does not create another copy (or instance)
      of the original, but has a reference to the original node. From
      4.4.3
(<a class="moz-txt-link-freetext" href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#DEFL_USESemantics">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#DEFL_USESemantics</a>)
      "The USE statement does not create a copy of the node. Instead,
      the same node is inserted into the scene graph a second time,
      resulting in the node having multiple parents".<br>
      <br>
      Joe's comment about directOutput being outside the event cascade
      is wrong. See
<a class="moz-txt-link-freetext" href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/scripting.html#Script">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/scripting.html#Script</a>.
      "... the script may also send events directly to any node to which
      it has access". A Script with directOutput=TRUE sends events. It
      can read the most recent value of any field of a node which it has
      direct access (29.2.6].<br>
      <br>
      Since fields can only be updated at the end of the cascade
      (otherwise an event in the cascade would have the same timestamp
      as other events, but potentially different values), direct access
      from a Script to a node happens like regular events; just without
      the ROUTE.<br>
      <br>
      Leonard Daly<br>
      <br>
      <br>
      <br>
    </div>
    <blockquote
      cite="mid:D0FA1018-1878-4D9C-9E4D-676E62BE608F@igd.fraunhofer.de"
      type="cite">
      <pre wrap="">Hello Don,

</pre>
      <blockquote type="cite">
        <pre wrap="">"A Script node with a field containing a USE reference to a bindable node has the ability to bind a node directly by changing the value of the bind field.  Setting the bind value is equivalent to receiving a set_bind event.“
</pre>
      </blockquote>
      <pre wrap="">
Sorry, I did not want to resume that nitpicking discussion, but you are taking the wrong direction :-(

My point is:

1. There is this sentence in section 7.2.2 of the specification: „The results are undefined if a multiply instanced (DEF/USE) bindable node is bound.“

2. In the NIST example we exactly do have that case - a bindable node (DEF nav1 NavigationInfo) that is multiply instanced - once as a child of the (implicit) root Group node, and once as a child of the Script node.

3. => According to the specification, the example is undefined. Q.E.D.

I do not claim that there *actually* is a problem with the NIST example, I just say that *formally* the example is invalid because of that sentence in section 7.2.2 of the specification.

So what is the rationale behind that sentence? That is explained in the Annotated VRML97 Reference. The browser needs to determine the transformation of the currently bound Viewpoint, Background or Fog node. The NavigationInfo node actually is a special case, because for that node the transformation of the currently bound Viewpoint is taken. Now, when you DEF/USE a bindable node (or any group node above a bindable node), you have to take care that you do not add the bindable node more than once to the transformation hierarchy, because otherwise the browser cannot decide which of the transformations to take. Adding a bindable node to the Script node does *not* add it to the transformation hierarchy (see section 4.3.5 of the specification) - that is why there is no problem in the NIST example.

So, what to do with that awkward sentence in section 7.2.2? My recommendation would be to replace it with a sentences like this: „A bindable node may only be bound when it is part of the transformation hierarchy exactly once, otherwise the result is undefined.“ But I’m sure a native english speaker can word that much better.

Bye,

Patrick


_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
    </blockquote>
    <br>
    <p><br>
    </p>
    <div class="moz-signature">-- <br>
      <font class="tahoma,arial,helvetica san serif" color="#333366">
        <font size="+1"><b>Leonard Daly</b></font><br>
        3D Systems & Cloud Consultant<br>
        LA ACM SIGGRAPH Chair<br>
        President, Daly Realism - <i>Creating the Future</i>
      </font></div>
  </body>
</html>