[x3d-public] setUSE in X3DJSAIL

taktiltest2 at bluewin.ch taktiltest2 at bluewin.ch
Thu Jul 20 07:33:40 PDT 2017


Huxhdhdyhfubd

Am 20 Juli 2017 um 05:29 schrieb Roy Walmsley <roy.walmsley at ntlworld.com>:
>Don and John,
>
> 
>
>If we are talking about the step of writing our a file, then this is a
>different question.
>
> 
>
>We can use the SAI methods to query the scene in memory. Methods to
>actually write the scene are a function of the implementation, and not
>a formal part of the SAI. So, while an implementation may have a setUSE
>method as part of the writing out interfaces, it is not a formal SAI
>method. It would be appropriate to indicate, perhaps in comments, those
>methods that are provided for the convenience of code that outputs the
>scene to a specific encoding.
>
> 
>
>For example, I could consider the following partial algorithm for
>writing out a file:
>
> 
>
>1.	Traverse the scene, stepping through each node, using depth first
>ordering
>2.	For each node:
>
>a.	Check if this node has already been written
>b.	If not, write out this node in full
>c.	If so, only write this node with a USE atttrbute.
>
> 
>
>Thus, this function would only write out the node type and the USE
>attribute for step 2)c. And there would be no “resetting of values”
>involved.
>
> 
>
>All the best,
>
> 
>
>Roy
>
> 
>
>From: John Carlson [mailto:yottzumm at gmail.com] 
>Sent: 20 July 2017 15:06
>To: Roy Walmsley <roy.walmsley at ntlworld.com>; 'Don Brutzman'
><brutzman at nps.edu>
>Cc: 'list' <x3d-public at web3d.org>
>Subject: RE: setUSE in X3DJSAIL
>
> 
>
>Roy,
>
> 
>
>I imagine setUSE was chosen because it was either an attribute in XML
>or property @USE in JSON, and we were translating XML and JSON to Java,
>Nashorn JavaScript and Python. Please provide an equivalent conversion
>of an X3D XML file to C,C++, or C# which does not use setUSE and uses
>SAI as you suggest. If you can do it, we will copy you.
>
> 
>
>We would like to use chained methods with a minimum of extra variables
>(ideally, just one variable for whole scenegraph will do—not currently
>achieved). In addition, we would like to take advantage of type safety
>as much as possible.  Please consider type safety when writing your
>code.
>
> 
>
>There are DOM -> various languages examples you can find in
>X3DJSONLD/src/main/node.  JavaScriptSerializer.js and JavaSerializer.js
>are good ones.  You can use any language you want, but if you integrate
>with X3DJSONLD (json2all.js), it will be integrated into my test suite.
>
> 
>
>It is also possible that setUSE was required in the concrete classes
>(not SAI that I know of) and extracting setUSE up to the interface was
>a good idea.  I think this can be solved by providing an intermediate
>interface.
>
> 
>
>Thanks,
>
> 
>
>John
>
> 
>
>Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986>  for
>Windows 10
>
> 
>
>From: Roy Walmsley <mailto:roy.walmsley at ntlworld.com> 
>Sent: Thursday, July 20, 2017 9:13 AM
>To: 'Don Brutzman' <mailto:brutzman at nps.edu> 
>Cc: 'John Carlson' <mailto:yottzumm at gmail.com> ; 'list'
><mailto:x3d-public at web3d.org> 
>Subject: setUSE in X3DJSAIL
>
> 
>
>Hi Don,
>
> 
>
>I note that in X3DJSAIL you have a “setUSE” method defined in all node
>classes. I don’t see any point of having this method.
>
> 
>
>My thinking is as follows. Please correct it as necessary.
>
> 
>
>X3DJSAIL is meant to be an interface for an implementation of the Java
>Language binding – ISO/IEC 19777-2.
>
> 
>
>The SAI 19775-2 has no service related to “USE”. So it does not appear
>in the Java language binding.
>
> 
>
>Consider that an instance of a node (say Material) has been  loaded
>into memory and added into a scene. Then consider that further down in
>the scene it is desirable to implement a “USE”. What are the steps?
>
> 
>
>The first would be to call the Java implementation of the SAI execution
>context service “getNode”, with the SAIString parameter set to the DEF
>name, and the SAIAction parameter set to DEFNode.  In the standard
>ISO/IEC 19777-2 V3.0, clause 6.4.6 getNode the defined method is
>getNamedNode. What is your equivalent function in X3DJSAIL?
>
> 
>
>Having obtained a node reference for the DEF’d node, let’s assume you
>also have a node reference for the node that is to be the parent of the
>USE node, which I will assume for this example will be Appearance. 
>
> 
>
>You now need to obtain a reference for the “material” field of the
>Appearance node.  We need to  use the SAI service getField, defined in
>6.6.4 getField in ISO/IEC 19775-2. The Java language binding lists this
>as getField in clause 6.6.4 of ISO/IEC 19777-2. What is your equivalent
>function in X3DJSAIL?
>
> 
>
>Now that we have the field reference, and the node reference to add, we
>can finally make a call to the SAI service setValue, defined in 6.7.6
>setValue in ISO/IEC 19775-2. The Java language binding lists this as
>setValue in 6.7.6 of ISO/IEC 19777-2. What is your equivalent function
>in X3DJSAIL?
>
> 
>
>Final comments relate to garbage management. The implementation will
>probably want some way to remember that the same node reference has
>been used in multiple places. That is something internal to the
>implementation, and not anything for the interface.
>
> 
>
>So, in conclusion, I don’t see a need for your setUSE method. And it is
>not in the SAI.
>
> 
>
>All the best,
>
> 
>
>Roy
>
> 

<p dir="ltr">Gesendet mit der Bluewin-App!</p>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20170720/fa2a1243/attachment.html>


More information about the x3d-public mailing list