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

John Carlson yottzumm at gmail.com
Sat Aug 4 11:47:39 PDT 2018


I would give you instructions on how to follow along with me, but they are
a bit complex.  Basically you need a most recent version of X3DJSONLD, you
need to put the file in a searchable place see /files in app.js or put it
in src/main/data and src/main/html/index.html select options. Select or
search for the file from http://localhost:3000 (start server with node
app.js). That will throw some errors to the web console.   Select the
loadScripts line error and set a breakpoint at eval(scripts.text);   Rerun
the file (select another file, then select below file again). Then step
into the eval.   Set a breakpoint in the initialize method following
“ecmascript” step into the nodeUtil method and see that element is right
and getFieldValue is not a function.

I will try some of your ideas below.  getAttribute does return something.
I think it’s just that X3DOM has not recognized the node because it’s
inside a non-processed script field.

Not really sure though.


John
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????
>
> 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
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180804/6b20e08f/attachment-0001.html>


More information about the x3d-public mailing list