<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Embedded comments...<br>
      <br>
    </div>
    <blockquote
cite="mid:CAKdk67v2jWJdxPZQAbvpCNmDs_yvMORcf1XaaV2ztpCA8tsOgQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Hi Don,<br>
          <br>
        </div>
        to me, the idea here is to be very pragmatic in order to make
        some progress with html integration.<br>
      </div>
    </blockquote>
    <br>
    Agreed.<br>
    <br>
    <br>
    <blockquote
cite="mid:CAKdk67v2jWJdxPZQAbvpCNmDs_yvMORcf1XaaV2ztpCA8tsOgQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex">
                      <br>
                      a. Not clear what your motivation is.  What
                      functionality does a Macro node provide that isn't
                      already available using Script and Prototype
                      definitions?  Getting clear about differences
                      helps getting clear about goals.<br>
                    </blockquote>
                    <div><br>
                    </div>
                    <div>I agree, the Macro node would offer nothing
                      that is not already available with Protos. The
                      issue is, however, that in the foreseeable future
                      Protos are not actually available with x3dom. To
                      me it makes sense to give a node with a more
                      narrow and simpler functionality than Protos a
                      distinct name and distinct semantics. <br>
                    </div>
                    <div>Even outside of x3dom it would be nice
                      (although not necessary) to have a simpler to
                      understand, limited Proto, eg. just a Macro with
                      parameter substitution.<br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Agree with Andreas. Macro has less functionality than PROTO. PROTO
    can be incredibly complex (with new fields, etc.) and Scripting
    (which doesn't work in HTML). MACRO is a means of getting parse-type
    variable substitution and node expansion.<br>
    <br>
    <br>
    <blockquote
cite="mid:CAKdk67v2jWJdxPZQAbvpCNmDs_yvMORcf1XaaV2ztpCA8tsOgQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <div><br>
                    </div>
                    <div>A related question is if such a Macro node
                      could coexist with Protos if it would come to it,
                      given their overlap. I think it probably could.
                      [To make it simple, one could disallow usage of
                      Macros within proto declarations and vice versa.]
                      [[I think, usage of Macro instances within Macro
                      templates is currently not possible. Should it?]]<br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    I think it is, though I haven't tried it. I think that creating a
    MACRO node with a string substitution would work.<br>
    <br>
    <br>
    <blockquote
cite="mid:CAKdk67v2jWJdxPZQAbvpCNmDs_yvMORcf1XaaV2ztpCA8tsOgQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <div><br>
                      As a side note, in an html/DOM environment many
                      scene creators would use a templating engine:<br>
                      <a moz-do-not-send="true"
                        href="https://www.sitepoint.com/overview-javascript-templating-engines/">https://www.sitepoint.com/overview-javascript-templating-engines/</a><br>
                    </div>
                    <div>But this requires some non-declarative
                      programming and as such is outside the scope of
                      x3d.<br>
                    </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">
                      b. Usage examples are often helpful for
                      illustrating goals at this stage of design.<br>
                    </blockquote>
                    <div> <br>
                    </div>
                    <div>Since no internal computations are possible,
                      usage would be limited. There is still a class of
                      useful templates: variations of color, dimensions
                      (eg., an arrow macro), perhaps
                      timesensor/interpolator/route animation macros,
                      perhaps shaders with parameters, probably many
                      others.<br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    I am using the MACRO capabilities to define new nodes. For example
    the initial development for SphericalVideo and StereoVIew use MACROs
    to expand the new node into the collection of existing nodes to do
    the work. This allows testing of node concepts without having to
    code the entire set of functionality into the node's JavaScript. Of
    course this only works when the node can be represented as an
    interacting set of existing nodes.<br>
    <br>
    <br>
    <blockquote
cite="mid:CAKdk67v2jWJdxPZQAbvpCNmDs_yvMORcf1XaaV2ztpCA8tsOgQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <div><br>
                    </div>
                    <div>[Currently, one could likely (ab-)use the Macro
                      to also include a DOM script node which would be
                      affected by parameter substitution and which then
                      could set fields of x3d nodes in the instance with
                      computed/generated values upon execution during
                      final parsing].<br>
                    </div>
                    <div> </div>
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex">
                      c. Previous efforts on NetworkSensor node, and the
                      difficulties encountered, may be worth
                      considering:<br>
                      <br>
                              <a moz-do-not-send="true"
                        href="http://www.web3d.org/x3d/content/examples/Basic/Networking/"
                        rel="noreferrer" target="_blank">http://www.web3d.org/x3d/<wbr>content/examples/Basic/<wbr>Networking/</a><br>
                              <a moz-do-not-send="true"
href="http://www.web3d.org/x3d/content/examples/Basic/Networking/NetworkSensorConnectionPrototypes.x3d"
                        rel="noreferrer" target="_blank">http://www.web3d.org/x3d/<wbr>content/examples/Basic/<wbr>Networking/<wbr>NetworkSensorConnectionPrototy<wbr>pes.x3d</a><br>
                              <a moz-do-not-send="true"
href="http://www.web3d.org/x3d/content/examples/Basic/Networking/NetworkSensorConnectionPrototypes.html"
                        rel="noreferrer" target="_blank">http://www.web3d.org/x3d/<wbr>content/examples/Basic/<wbr>Networking/<wbr>NetworkSensorConnectionPrototy<wbr>pes.html</a><br>
                      <br>
                              <a moz-do-not-send="true"
href="http://www.web3d.org/x3d/content/examples/Basic/Networking/NetworkSensorConnectionNodes.html"
                        rel="noreferrer" target="_blank">http://www.web3d.org/x3d/<wbr>content/examples/Basic/<wbr>Networking/<wbr>NetworkSensorConnectionNodes.<wbr>html</a><br>
                      <br>
                    </blockquote>
                    <div><br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    I think this comment originated from a typo I made in the MACRO
    documentation. I referred to the parent class as X3DNetworkNode when
    it should have been X3DNetworkingNode. I apologize for any
    inconvenience or misunderstanding.<br>
    <br>
    <br>
    Leonard Daly<br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <blockquote
cite="mid:CAKdk67v2jWJdxPZQAbvpCNmDs_yvMORcf1XaaV2ztpCA8tsOgQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <div>I think the Macro node would not be able define
                      new fields if this is the concern. Is it ?<br>
                    </div>
                    <br>
                  </div>
                  <div class="gmail_quote">some input,<br>
                  </div>
                  <div class="gmail_quote"><br clear="all">
                  </div>
                  Andreas<br>
                </div>
                <div class="gmail_extra"><br>
                  -- <br>
                  <div class="gmail_signature"
                    data-smartmail="gmail_signature">Andreas Plesch<br>
                    39 Barbara Rd.<br>
                    Waltham, MA 02453</div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
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>
        X3D Co-Chair on Sabbatical<br>
        LA ACM SIGGRAPH Chair<br>
        President, Daly Realism - <i>Creating the Future</i>
      </font></div>
  </body>
</html>