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

Andreas Plesch andreasplesch at gmail.com
Sat Aug 4 14:47:00 PDT 2018


On Sat, Aug 4, 2018 at 3:14 PM John Carlson <yottzumm at gmail.com> wrote:
>
> 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.

Yes, that is what it comes down to. The standard requires executing
arbitrary code which in a dedicated x3d browser may be ok although one
can probably find ways to crash the js interpreters there as well with
externproto with a bad script. I think vrml had a definition of a
subset of js - vrmlscript - which may been safer but perhaps
implemented as full js anyways in many cases. castlescript is like
that as well.

>
> What does X_ITE do?

I just evals whatever is there, perhaps inside a scope (not a sandbox).
Andreas
>
> 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
>
>



-- 
Andreas Plesch
Waltham, MA 02453



More information about the x3d-public mailing list