<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Andreas,<br>
      <br>
      directOutput is tricky and probably not well defined. Since there
      is only language for V3.3- and that does not discuss DOM, I wish
      to keep this discussion strictly in the confines of V3.3. A
      follow-up message will address DOM.<br>
      <br>
      In the 8th paragraph (depending on how you count, the one that
      starts "Once the script has access...") of 29.4.1
(<a class="moz-txt-link-freetext" href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/scripting.html">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/scripting.html</a>)
      states <br>
      <br>
      "...script may also send events directly to any node to which it
      has access..."<br>
      <br>
      Also 29.2.6 states<br>
      <br>
      <blockquote>
        <p><i><a
href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/scripting.html#Script">Script</a></i><i>
            nodes that have access to other nodes (via SFNode and MFNode
            fields) and that have their </i><i>directOutput</i><i>
            field set to </i><i><code>TRUE</code></i><i> may directly
            post events to those nodes. They may also read the last
            value sent from any of the node's fields.</i></p>
        <p><i>When setting a value in another node, implementations
            shall set values in other nodes by sending input events to
            the corresponding fields. These events shall be part of the
            current event cascade (see </i><i><a
href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#ExecutionModel">4.4.8.3
              Execution model</a></i><i>).</i></p>
      </blockquote>
      <p>Also section 4.5 of 19775-2 (SAI -
<a class="moz-txt-link-freetext" href="http://www.web3d.org/documents/specifications/19775-2/V3.3/Part02/concepts.html#Events">http://www.web3d.org/documents/specifications/19775-2/V3.3/Part02/concepts.html#Events</a>)
        has stuff to say about events. Section 4.5.1 states:</p>
      <p>"Any transient data is carried around the X3D scene graph
        through
        the use of events."</p>
      <p>Which implies that any data that goes from one node to another
        is through events; however, 4.5.2 states:</p>
      <p>"If an internal interaction
        directly writes to an output-capable field of another node, no
        event is generated
        and therefore does not form part of the event cascade."</p>
      <p>It is not clear if a Script node's directOutput is an internal
        interaction or not. <br>
      </p>
      <p><br>
      </p>
      <p>However (again) in section 4.8.3.1, 3rd paragraph</p>
      <p>"Internal interactions also permit direct interaction with
        fields of
        other nodes, or some browser operations without participating in
        the event
        cascade. This action shall only be allowed dependent on the
        value of the
        <i>directOutput</i> field setting"</p>
      <p>So this implies that directOutput data is not an event and
        happens external to the cascade. There is additional text in
        terms of capabilities and restrictions in the rest of that
        section. I have not been able to fully absorb it. <br>
      </p>
      <p>I would be careful of any conformance suite regarding direct
        output. The spec language is dense and not obviously clear as to
        what shall happen, may happen, and shall not happen.<br>
      </p>
      <p><br>
      </p>
      <p>Leonard Daly<br>
      </p>
      <br>
      <br>
      <br>
      <br>
    </div>
    <blockquote type="cite"
cite="mid:CAKdk67vUtS4eJLc1ipm4L9+7C9rXFAmpUcLXi6Dwg+HUwTFHVw@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Fri, Jun 2, 2017 at 3:19 PM,
            Andreas Plesch <span dir="ltr"><<a
                href="mailto:andreasplesch@gmail.com" target="_blank"
                moz-do-not-send="true">andreasplesch@gmail.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div dir="ltr">
                <div>... Is there a conformance example ?</div>
                <div><br>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>There is one which uses directOut:</div>
            <div><br>
            </div>
            <div><a
href="http://www.web3d.org/x3d/content/examples/ConformanceNist/Miscellaneous/Script/ScriptNodeFieldControl_EcmaScriptIndex.html"
                moz-do-not-send="true">http://www.web3d.org/x3d/content/examples/ConformanceNist/Miscellaneous/Script/ScriptNodeFieldControl_EcmaScriptIndex.html</a><br>
            </div>
            <div> </div>
            <div>But it does not test event generation and cascading as
              far as I can see. Also, cobweb does not seem to work with
              it indicating issues somewhere.</div>
            <div><br>
            </div>
            <div>-Andreas</div>
            <div><br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div dir="ltr">
                <div><br>
                </div>
                <div>
                  <div class="gmail_extra"><br>
                    <div class="gmail_quote">On Fri, Jun 2, 2017 at
                      11:34 AM, Joe D Williams <span dir="ltr"><<a
                          href="mailto:joedwil@earthlink.net"
                          target="_blank" moz-do-not-send="true">joedwil@earthlink.net</a>></span>
                      wrote:<br>
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">Yes, the
                        script that uses directOut is like a DOM script.<br>
                        Operationally, I think it is important to
                        recognize that the directOut in x3d was designed
                        to not produce an event directly. The x3d event
                        is produced when the target node field is
                        changed. In other worls, see that you cannot
                        route an event from the directOut. The changed
                        event must be generated by watching the target
                        field of the node used by the directOut.<br>
                        <br>
                        Joe<br>
                        <br>
                        <br>
                        <br>
                        riginal Message ----- From: "Andreas Plesch"
                        <<a href="mailto:andreasplesch@gmail.com"
                          target="_blank" moz-do-not-send="true">andreasplesch@gmail.com</a>><br>
                        To: "John Carlson" <<a
                          href="mailto:yottzumm@gmail.com"
                          target="_blank" moz-do-not-send="true">yottzumm@gmail.com</a>><br>
                        Cc: "x3dom mlist" <<a
                          href="mailto:x3dom-users@lists.sourceforge.net"
                          target="_blank" moz-do-not-send="true">x3dom-users@lists.sourceforge<wbr>.net</a>>;
                        "X3D Graphics public mailing list" <<a
                          href="mailto:x3d-public@web3d.org"
                          target="_blank" moz-do-not-send="true">x3d-public@web3d.org</a>><br>
                        Sent: Friday, June 02, 2017 8:11 AM<br>
                        Subject: Re: [x3d-public] [x3dom-users] port
                        this example to X3DOM?<br>
                        <br>
                        <br>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
                          0.8ex;border-left:1px solid
                          rgb(204,204,204);padding-left:1ex">
                          John,<br>
                          <br>
                          I realized that the ported script uses what is
                          equivalent to the<br>
                          directOutput style of x3d scripts. This means
                          that it may be possible to<br>
                          convert directOutput scripts to x3dom scripts
                          in general using the pattern<br>
                          in the ported example.<br>
                          <br>
                          The 'from' portion of Routes into the script
                          would become 'outputchange'<br>
                          listeners attached to the fromNodes with event
                          handlers. The 'to' portion<br>
                          of Routes into the script is used inside the
                          event handler which then calls<br>
                          the appropriate set script function.<br>
                          <br>
                          The directOutput nodes can be retrieved by
                          scene.querySelector(). The SAI<br>
                          node.field syntax can be translated to
                          node.get/setFieldValue or perhaps to<br>
                          node._x3dom.field (or similar).<br>
                          <br>
                          intialize() script functions can be run at
                          document.onload time or probably<br>
                          better using x3dom.runtime.ready<br>
                          <a
                            href="https://doc.x3dom.org/author/runtime.html#ready"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true">https://doc.x3dom.org/author/r<wbr>untime.html#ready</a><br>
                          <br>
                          There are probably lots of pitfalls, and does
                          not address regular (non<br>
                          directOutput) script nodes. -Andreas<br>
                          <br>
                          <br>
                          <br>
                          <br>
                          <br>
                          <br>
                          <br>
                          On Wed, May 31, 2017 at 10:22 PM, Andreas
                          Plesch <<a
                            href="mailto:andreasplesch@gmail.com"
                            target="_blank" moz-do-not-send="true">andreasplesch@gmail.com</a>><br>
                          wrote:<br>
                          <br>
                          <blockquote class="gmail_quote"
                            style="margin:0px 0px 0px
                            0.8ex;border-left:1px solid
                            rgb(204,204,204);padding-left:1ex">
                            John,<br>
                            <br>
                            I could make pretty quick progress to port
                            this to x3d script over to dom<br>
                            scripting style:<br>
                            <br>
                            <a href="https://warm-nape.glitch.me/"
                              rel="noreferrer" target="_blank"
                              moz-do-not-send="true">https://warm-nape.glitch.me/</a><br>
                            <br>
                            You can 'remix' the code here:<br>
                            <br>
                            <a
                              href="https://glitch.com/edit/#%21/warm-nape"
                              rel="noreferrer" target="_blank"
                              moz-do-not-send="true">https://glitch.com/edit/#!/war<wbr>m-nape</a><br>
                            <br>
                            [I like <a href="http://glitch.com"
                              rel="noreferrer" target="_blank"
                              moz-do-not-send="true">glitch.com</a>, and
                            it has a built in server side]<br>
                            <br>
                            The structure is pretty close to the
                            original but probably will need to be<br>
                            more generalized for easy reuse. It is a
                            starting point anyways.<br>
                            <br>
                            There is an initial reset of the green ball
                            translation when it is dragged<br>
                            first. Not sure where this is coming from
                            but may only need minor fixing.<br>
                            <br>
                            For routing, the main idea here is to use
                            the x3dom onoutputchange event<br>
                            as trigger. Other ideas are certainly
                            possible or perhaps necessary for<br>
                            generalization.<br>
                            <br>
                            This uses get/setFieldValue rather than
                            getAttribute because it is more<br>
                            convenient and closer to SAI as it deals
                            with field objects rather than<br>
                            strings.<br>
                            <br>
                            x3dom does not have methods for SFRotations
                            since all rotations get<br>
                            immediately translated to quaternions. But
                            this is a detail at this point.<br>
                            <br>
                            I think I like the idea of returning an
                            object populated by output fields<br>
                            from a main script function.<br>
                            <br>
                            Take a look and feel free to mangle and
                            reorganize,<br>
                            <br>
                            Andreas<br>
                            <br>
                            <br>
                            On Wed, May 31, 2017 at 4:26 PM, Andreas
                            Plesch <<a
                              href="mailto:andreasplesch@gmail.com"
                              target="_blank" moz-do-not-send="true">andreasplesch@gmail.com</a>><br>
                            wrote:<br>
                            <br>
                            <blockquote class="gmail_quote"
                              style="margin:0px 0px 0px
                              0.8ex;border-left:1px solid
                              rgb(204,204,204);padding-left:1ex">
                              Hi John,<br>
                              <br>
                              I am going to take a look but do not wait
                              for anything. I believe x3dom<br>
                              has PlaneSensor.<br>
                              <br>
                              <a
href="https://gist.github.com/andreasplesch/83771ec5959935d309db417387397952"
                                rel="noreferrer" target="_blank"
                                moz-do-not-send="true">https://gist.github.com/andrea<wbr>splesch/83771ec5959935d309db41<wbr>7387397952</a><br>
                              for easy access.<br>
                              <br>
                              -Andreas<br>
                              <br>
                              On Wed, May 31, 2017 at 3:44 PM, John
                              Carlson <<a
                                href="mailto:yottzumm@gmail.com"
                                target="_blank" moz-do-not-send="true">yottzumm@gmail.com</a>>
                              wrote:<br>
                              <br>
                              <blockquote class="gmail_quote"
                                style="margin:0px 0px 0px
                                0.8ex;border-left:1px solid
                                rgb(204,204,204);padding-left:1ex">
                                Can someone port the attached example to
                                X3DOM?  It would help with the<br>
                                X3DOM upgrade effort.<br>
                                <br>
                                <br>
                                <br>
                                Thanks!<br>
                                <br>
                                <br>
                                <br>
                                John<br>
                                <br>
                                <br>
                                <br>
                                ------------------------------<wbr>------------------------------<br>
                                ------------------<br>
                                Check out the vibrant tech community on
                                one of the world's most<br>
                                engaging tech sites, Slashdot.org! <a
                                  href="http://sdm.link/slashdot"
                                  rel="noreferrer" target="_blank"
                                  moz-do-not-send="true">http://sdm.link/slashdot</a><br>
                                ______________________________<wbr>_________________<br>
                                X3dom-users mailing list<br>
                                <a
                                  href="mailto:X3dom-users@lists.sourceforge.net"
                                  target="_blank" moz-do-not-send="true">X3dom-users@lists.sourceforge.<wbr>net</a><br>
                                <a
                                  href="https://lists.sourceforge.net/lists/listinfo/x3dom-users"
                                  rel="noreferrer" target="_blank"
                                  moz-do-not-send="true">https://lists.sourceforge.net/<wbr>lists/listinfo/x3dom-users</a><br>
                                <br>
                                <br>
                              </blockquote>
                              <br>
                              <br>
                              --<br>
                              Andreas Plesch<br>
                              39 Barbara Rd.<br>
                              Waltham, MA 02453<br>
                              <br>
                            </blockquote>
                            <br>
                            <br>
                            <br>
                            --<br>
                            Andreas Plesch<br>
                            39 Barbara Rd.<br>
                            Waltham, MA 02453<br>
                            <br>
                          </blockquote>
                          <br>
                          <br>
                          <br>
                          -- <br>
                          Andreas Plesch<br>
                          39 Barbara Rd.<br>
                          Waltham, MA 02453<br>
                          <br>
                        </blockquote>
                        <br>
                        <br>
                        ------------------------------<wbr>------------------------------<wbr>--------------------<br>
                        <br>
                        <br>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
                          0.8ex;border-left:1px solid
                          rgb(204,204,204);padding-left:1ex">
                          ______________________________<wbr>_________________<br>
                          x3d-public mailing list<br>
                          <a href="mailto:x3d-public@web3d.org"
                            target="_blank" moz-do-not-send="true">x3d-public@web3d.org</a><br>
                          <a
                            href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true">http://web3d.org/mailman/listi<wbr>nfo/x3d-public_web3d.org</a><br>
                          <br>
                        </blockquote>
                        <br>
                        <span class="gmail-HOEnZb"><font color="#888888">
                          </font></span></blockquote>
                    </div>
                    <span class="gmail-HOEnZb"><font color="#888888"><br>
                        <br clear="all">
                        <div><br>
                        </div>
                        -- <br>
                        <div
                          class="gmail-m_6387495155989509503gmail_signature">Andreas
                          Plesch<br>
                          39 Barbara Rd.<br>
                          Waltham, MA 02453</div>
                      </font></span></div>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
          <br clear="all">
          <div><br>
          </div>
          -- <br>
          <div class="gmail_signature">Andreas Plesch<br>
            39 Barbara Rd.<br>
            Waltham, MA 02453</div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! <a class="moz-txt-link-freetext" href="http://sdm.link/slashdot">http://sdm.link/slashdot</a></pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
X3dom-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:X3dom-users@lists.sourceforge.net">X3dom-users@lists.sourceforge.net</a>
<a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/x3dom-users">https://lists.sourceforge.net/lists/listinfo/x3dom-users</a>
</pre>
    </blockquote>
    <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>