[x3d-public] good example for ECMAScripting and Protos?

John Carlson yottzumm at gmail.com
Sat Aug 4 12:14:59 PDT 2018


Yes, I am concerned about evaluating arbitrary JS, and would prefer a totally declarative approach.   Or I could look into creating a JS sandbox, but I’m not sure what the best one is, or if they really work.

I’m kind of stuck by the standard, and not having a sandbox or my own JS implementation.

What does X_ITE do?

John

Sent from Mail for Windows 10

From: Andreas Plesch
Sent: Saturday, August 4, 2018 3:09 PM
To: John Carlson
Cc: Vincent Marchetti; X3D Graphics public mailing list; x3dom mlist
Subject: Re: [x3d-public] good example for ECMAScripting and Protos?

On Sat, Aug 4, 2018 at 1:47 PM John Carlson <yottzumm at gmail.com> wrote:
>
> I belive in this case, it’s the node and not the field we are trying to get the point field value from.   The problem is that getFieldValue is not defined because I am pretty sure that the node wasn’t processed by X3DOM????

The script dom node is not processed by x3dom at all, yes. To start
doing that it would be safest to introduce a x3dscript node in lieu of
a script node, to exclude any interference at the cost of x3d
compliance. In the end, there will need to be an eval of arbitrary js
code which is questionable but perhaps ok since any server side system
has to assume anyways that anything can happen on the client.

>
> To change X3DOM, we would probably need a script tag and a way to handle the script fields. I believe these particular nodes are USEd elsewhere, so they should be active as nodes.  Hmm.
>
> Probably requires more investigation on my part.
>
> In this case, the nodes are coordinate and normal nodes.
>
> On Sat, Aug 4, 2018 at 8:53 AM Andreas Plesch <andreasplesch at gmail.com> wrote:
>>
>> On Sat, Aug 4, 2018 at 4:56 AM John Carlson <yottzumm at gmail.com> wrote:
>> >
>> > I have a problem with this file in X3DOM, because as far as I can tell, the SFNode fields (the node, not the field) do not have getFieldValue for point etc. as a function, for example (but one can double check me).  In other words, I don’t think this node is an X3DOM node.
>>
>> I think you are referring to X3DOM's dom element method getFieldValue
>> and that it does not work for SFNode type fields. For example:
>>
>> shapeDomNode.getFieldValue('Appearance')
>>
>> does not return anything.
>>
>> I do not think this will be fixed soon.
>>
>> You can try this instead
>>
>> shapeDomNode._x3domNode._cf.appearance
>>
>> with something like
>>
>> dom._x3domNode._cf[field.toLowerCase]
>>
>> which gives you an x3domNode object.
>>
>> >
>> > Thus I cannot take a reasonable length in the script.  One would have to parse the string.
>> >
>> >
>> > That’s as clear as I can get.  I think this might be because x3dom does not process scripts correctly. We would need a script tag handler, and a field handler inside that.
>> >
>> >
>> >
>> > Can you help Andreas?  I’ve created a script tag before, but that code is lost. It might be in my GitHub repository somewhere, not sure.
>> >
>> >
>> >
>> > We just need a script tag that has fields, but doesn’t execute its CDATA section.  I am pretty sure
>>
>> If you add a type='text/x3dscript' (or anything) attribute, the
>> browser will not try to execute the script.
>>
>> >
>> > How is V4.0 handling this?
>> >
>> >
>> >
>> > Alternatively, I can change my nodeUtil code to look at the type and do the right thing converting a string to the correct type.   Suggestions are welcome.
>> >
>> >
>> >
>> > Thanks for the great example, Vince,
>> >
>> >
>> >
>> > Should I adapt my code to deal with this failing in X3DOM, or should we change X3DOM?
>>
>> What needs to be changed in x3dom ? The getFieldValue method ?
>>
>> -Andreas
>> >
>> >
>> >
>> > John
>> >
>> >
>> >
>> > Sent from Mail for Windows 10
>> >
>> >
>> >
>> > From: vmarchetti at kshell.com
>> > Sent: Wednesday, August 1, 2018 9:04 PM
>> > To: John Carlson; X3D-Public
>> > Subject: Re: [x3d-public] good example for ECMAScripting and Protos?
>> >
>> >
>> >
>> > See
>> >
>> > http://www.kshell.com/pages/pointcloudvisualization/SphereDirectedPointSet.x3d
>> >
>> >
>> >
>> > It is a X3D file with with a Prototype + ecmascript definition of a point cloud, with a vector attached to each point of the cloud.
>> >
>> > Example used is just points randomly distributed on sphere with directs pointed radially outward.
>> >
>> >
>> >
>> > Potential uses would be to implement the scanning design pattern at http://x3dgraphics.com/examples/X3dForAdvancedModeling/Scanning/X3dMeshDesignPatternIndex.html , or
>> >
>> > visualizing fluid flow or  electromagnetic field
>> >
>> >
>> >
>> > On Jul 31, 2018, at 10:30 PM, John Carlson <yottzumm at gmail.com> wrote:
>> >
>> >
>> >
>> > Is there a good example of ECMAScripting in X3D that I can use to test my X3D JSON ECMAScript preprocessor?  Preferably with Protos
>> >
>> >
>> >
>> >
>> >
>> > Thanks!
>> >
>> >
>> >
>> > John
>> >
>> >
>> >
>> > _______________________________________________
>> > x3d-public mailing list
>> > x3d-public at web3d.org
>> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>> >
>> >
>> >
>> >
>>
>>
>>
>> --
>> Andreas Plesch
>> Waltham, MA 02453

-- 
Andreas Plesch
Waltham, MA 02453

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180804/6d099d8d/attachment.html>


More information about the x3d-public mailing list