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