[x3d-public] Behavior of X3D's DOM integration

Leonard Daly web3d at realism.com
Wed Apr 15 07:40:47 PDT 2015


Kristian & Max,

Kristian, this is a good question. I agree with Max that removing the 
DEFed node invalidates the USE. In the strict sense, this should 
generate a fatal error because of the inability to render an object.

However, that may not be the desirable behavior in user (especially 
browser) code. It may be the case that the particular node is being 
replaced and it is necessary to delete it before the new one can be 
created. Possible solutions are:

1) Continue to use the old definition, but do not allow new instances of 
the deleted node. If a new node is created with the old DEF name, then 
any new references use the new definition. This is similar to a Unix 
file system that removes directory entries for deleted files, but 
retains the contents while the file is open.

2) Throw an error and (unless the error is caught) terminate because the 
reference is no longer valid. This is very friendly to developers, but 
not so for users.

3) Generate a non-fatal error, but then you still need to decide what to 
do about rendering.


Along these lines what should (not necessary does) happen in Kristian 
example when the DEF and USE nodes are currently not being rendered 
(perhaps out of view) and the DEF node is deleted, then a new node using 
the same DEF name is created. When the USE node returns to the view, 
should the system:
1) Rendered as its initial state (like (1) above)
2) Rendered as the new DEF node
3) Generate error at some point between the original DEF node being 
deleted and USE coming into view (like (2) above).


Leonard Daly




> Dear Kristian,
>
> thanks for letting us know that this doesn't behave correctly in X3DOM 
> right now (opened a ticket: 
> https://github.com/x3dom/x3dom/issues/489), and thanks for pointing 
> out this open issue.
>
> I also feel that solution 1 (removing the DEFed node invalidates USEs, 
> nothing rendered) is the cleanest way of solving this.
>
> Regards,
> Max
>
>
>
> On 15.04.2015 12:38, Kristian Sons wrote:
>> Dear X3D community,
>>
>> although this is a question concerncing the X3DOM integration model, 
>> I post this quesion to the X3D mailing list, because I know that the 
>> consortium is really interested in adopting this integration model in 
>> a future version of X3D.
>>
>> I am be interested in the intended behavior when synchronization 
>> between the DOM representation and internal X3D scene graph is 
>> necessary. The X3DOM paper is not really explicit here.
>>
>> Let me use the simple DEF/USE example from x3dom.org as example:
>> http://examples.x3dom.org/example/x3dom_defUse.xhtml
>>
>> The scene has to <Shape> nodes, one defining the Shape below 
>> Transform#bar, one that is reusing the Shape below Transform#bar.
>>
>> Now I remove the defining node (using jQuery syntax):
>> $("Transform#bar Shape").remove();
>>
>> Now I have an invalid X3D scene in the DOM with a single <Shape> node 
>> pointing to a definition that does not exists. The currently included 
>> X3DOM implementation 1.6.2-dev produces an error, stops rendering 
>> (displaying both shapes) and gets inactive (I guess this is a bug) . 
>> Former versions would just render the "USE" node using the previous 
>> definition.
>>
>> What the intended behavior? I could think of three behaviors:
>>
>> 1. The USE node has a dangling reference. Consequently nothing is 
>> rendered at all (corresponds to a reinitialization of the scene state 
>> based on the new DOM representation)
>> 2. The USE node becomes the DEF node (the DOM corresponds to removing 
>> the node via SAI and then serializing the scene)
>> 3. The USE node is still rendering the referenced shape but the 
>> definition does not appear in the DOM (the run-time corresponds to 
>> removing the node via SAI, but the DOM representation differs)
>>
>> The first behavior seems the most logical variant for me.
>>
>> Any opinions on this?
>>
>> Thanks,
>>   Kristian
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> -- 
>> _______________________________________________________________________________
>>
>> Kristian Sons
>> Deutsches Forschungszentrum für Künstliche Intelligenz GmbH, DFKI
>> Agenten und Simulierte Realität
>> Campus, Geb. D 3 2, Raum 0.77
>> 66123 Saarbrücken, Germany
>>
>> Phone: +49 681 85775-3833
>> Phone: +49 681 302-3833
>> Fax:   +49 681 85775–2235
>> kristian.sons at dfki.de
>> http://www.xml3d.org
>>
>> Geschäftsführung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster (Vorsitzender)
>> Dr. Walter Olthoff
>>
>> Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
>> Amtsgericht Kaiserslautern, HRB 2313
>> _______________________________________________________________________________
>>
>>
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org


-- 
*Leonard Daly*
X3D Co-Chair
Cloud Consultant
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20150415/1e297bb3/attachment-0001.html>


More information about the x3d-public mailing list