<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>