<div dir="ltr">Joe,<div><br></div><div>thanks. This made me check what is happening with output nodes.</div><div><br></div><div>I added a ROUTE from the directOut node's (C2 transform) 'scale' field (which is changed by the script) to another, new transform to check if there are events:</div><div><br></div><div><a href="https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:57:2">https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:57:2</a><br></div><div><br></div><div>When using .setFieldValue (<a href="https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:133:8">https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:133:8</a>) the ROUTE is not activated, eg. no events are generated.</div><div><br></div><div>I found that I can use ._x3domNode.postMessage to set the new field value and generate the _changed event to trigger the ROUTE:</div><div><a href="https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:134:6">https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:134:6</a><br></div><div>[The initial connector scale is somehow off but then correct after dragging a sphere.]</div><div><br></div><div><a href="https://jade-aluminum.glitch.me/">https://jade-aluminum.glitch.me/</a> has the routable output node.<br></div><div><br></div><div>Which do you think is more correct (if any) ? I think the second since the ROUTE is not directly referencing the script node (there isn't any) ? Is there a conformance example ?</div><div><br></div><div>I think the port probably should use .postMessage for all output fields (and fix the initialisation). I may try that.</div><div><br></div><div>-Andreas</div><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">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">andreasplesch@gmail.com</a>><br>
To: "John Carlson" <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
Cc: "x3dom mlist" <<a href="mailto:x3dom-users@lists.sourceforge.net" target="_blank">x3dom-users@lists.sourceforge<wbr>.net</a>>; "X3D Graphics public mailing list" <<a href="mailto:x3d-public@web3d.org" target="_blank">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">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">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">https://warm-nape.glitch.me/</a><br>
<br>
You can 'remix' the code here:<br>
<br>
<a href="https://glitch.com/edit/#!/warm-nape" rel="noreferrer" target="_blank">https://glitch.com/edit/#!/war<wbr>m-nape</a><br>
<br>
[I like <a href="http://glitch.com" rel="noreferrer" target="_blank">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">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">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">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">http://sdm.link/slashdot</a><br>
______________________________<wbr>_________________<br>
X3dom-users mailing list<br>
<a href="mailto:X3dom-users@lists.sourceforge.net" target="_blank">X3dom-users@lists.sourceforge.<wbr>net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/x3dom-users" rel="noreferrer" target="_blank">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">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listi<wbr>nfo/x3d-public_web3d.org</a><br>
<br>
</blockquote>
<br>
</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></div>