[x3d-public] [x3dom-users] port this example to X3DOM?

Andreas Plesch andreasplesch at gmail.com
Fri Jun 2 12:19:30 PDT 2017


Joe,

thanks. This made me check what is happening with output nodes.

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:

https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:57:2

When using .setFieldValue (
https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:133:8) the
ROUTE is not activated, eg. no events are generated.

I found that I can use ._x3domNode.postMessage to set the new field value
and generate the _changed event to trigger the ROUTE:
https://glitch.com/edit/#!/jade-aluminum?path=views/index.html:134:6
[The initial connector scale is somehow off but then correct after dragging
a sphere.]

https://jade-aluminum.glitch.me/ has the routable output node.

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 ?

I think the port probably should use .postMessage for all output fields
(and fix the initialisation). I may try that.

-Andreas


On Fri, Jun 2, 2017 at 11:34 AM, Joe D Williams <joedwil at earthlink.net>
wrote:

> Yes, the script that uses directOut is like a DOM script.
> 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.
>
> Joe
>
>
>
> riginal Message ----- From: "Andreas Plesch" <andreasplesch at gmail.com>
> To: "John Carlson" <yottzumm at gmail.com>
> Cc: "x3dom mlist" <x3dom-users at lists.sourceforge.net>; "X3D Graphics
> public mailing list" <x3d-public at web3d.org>
> Sent: Friday, June 02, 2017 8:11 AM
> Subject: Re: [x3d-public] [x3dom-users] port this example to X3DOM?
>
>
> John,
>>
>> I realized that the ported script uses what is equivalent to the
>> directOutput style of x3d scripts. This means that it may be possible to
>> convert directOutput scripts to x3dom scripts in general using the pattern
>> in the ported example.
>>
>> The 'from' portion of Routes into the script would become 'outputchange'
>> listeners attached to the fromNodes with event handlers. The 'to' portion
>> of Routes into the script is used inside the event handler which then
>> calls
>> the appropriate set script function.
>>
>> The directOutput nodes can be retrieved by scene.querySelector(). The SAI
>> node.field syntax can be translated to node.get/setFieldValue or perhaps
>> to
>> node._x3dom.field (or similar).
>>
>> intialize() script functions can be run at document.onload time or
>> probably
>> better using x3dom.runtime.ready
>> https://doc.x3dom.org/author/runtime.html#ready
>>
>> There are probably lots of pitfalls, and does not address regular (non
>> directOutput) script nodes. -Andreas
>>
>>
>>
>>
>>
>>
>>
>> On Wed, May 31, 2017 at 10:22 PM, Andreas Plesch <andreasplesch at gmail.com
>> >
>> wrote:
>>
>> John,
>>>
>>> I could make pretty quick progress to port this to x3d script over to dom
>>> scripting style:
>>>
>>> https://warm-nape.glitch.me/
>>>
>>> You can 'remix' the code here:
>>>
>>> https://glitch.com/edit/#!/warm-nape
>>>
>>> [I like glitch.com, and it has a built in server side]
>>>
>>> The structure is pretty close to the original but probably will need to
>>> be
>>> more generalized for easy reuse. It is a starting point anyways.
>>>
>>> There is an initial reset of the green ball translation when it is
>>> dragged
>>> first. Not sure where this is coming from but may only need minor fixing.
>>>
>>> For routing, the main idea here is to use the x3dom onoutputchange event
>>> as trigger. Other ideas are certainly possible or perhaps necessary for
>>> generalization.
>>>
>>> This uses get/setFieldValue rather than getAttribute because it is more
>>> convenient and closer to SAI as it deals with field objects rather than
>>> strings.
>>>
>>> x3dom does not have methods for SFRotations since all rotations get
>>> immediately translated to quaternions. But this is a detail at this
>>> point.
>>>
>>> I think I like the idea of returning an object populated by output fields
>>> from a main script function.
>>>
>>> Take a look and feel free to mangle and reorganize,
>>>
>>> Andreas
>>>
>>>
>>> On Wed, May 31, 2017 at 4:26 PM, Andreas Plesch <andreasplesch at gmail.com
>>> >
>>> wrote:
>>>
>>> Hi John,
>>>>
>>>> I am going to take a look but do not wait for anything. I believe x3dom
>>>> has PlaneSensor.
>>>>
>>>> https://gist.github.com/andreasplesch/83771ec5959935d309db417387397952
>>>> for easy access.
>>>>
>>>> -Andreas
>>>>
>>>> On Wed, May 31, 2017 at 3:44 PM, John Carlson <yottzumm at gmail.com>
>>>> wrote:
>>>>
>>>> Can someone port the attached example to X3DOM?  It would help with the
>>>>> X3DOM upgrade effort.
>>>>>
>>>>>
>>>>>
>>>>> Thanks!
>>>>>
>>>>>
>>>>>
>>>>> John
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------
>>>>> ------------------
>>>>> Check out the vibrant tech community on one of the world's most
>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>>> _______________________________________________
>>>>> X3dom-users mailing list
>>>>> X3dom-users at lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/x3dom-users
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Andreas Plesch
>>>> 39 Barbara Rd.
>>>> Waltham, MA 02453
>>>>
>>>>
>>>
>>>
>>> --
>>> Andreas Plesch
>>> 39 Barbara Rd.
>>> Waltham, MA 02453
>>>
>>>
>>
>>
>> --
>> Andreas Plesch
>> 39 Barbara Rd.
>> Waltham, MA 02453
>>
>>
>
> ------------------------------------------------------------
> --------------------
>
>
> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>>
>


-- 
Andreas Plesch
39 Barbara Rd.
Waltham, MA 02453
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20170602/b4b3db3b/attachment-0001.html>


More information about the x3d-public mailing list