[x3d-public] x3dom bug related to IS/children PROTOs?

Andreas Plesch andreasplesch at gmail.com
Sun Nov 22 18:38:06 PST 2020


Yes, I agree, in most cases USE would be the only attribute. Note that USE
is not a field, it is an attribute in the XML encoding.

I am not sure how strict the XML encoding is in requiring that there are no
other attributes next to USE. They may be allowed but without any effect.

I also agree that USE in ProtoInstance is slightly different from USE in
regular nodes since ProtoInstance is just a verbose XML construct to
instruct instancing of a declared node.

But I am not sure if that distinction requires additional clarification in
the spec.

Andreas

On Sun, Nov 22, 2020 at 9:11 PM John Carlson <yottzumm at gmail.com> wrote:

> I'll just pretend we zoomed back from 2020->2015 virtually (in the mind).
>
> Can we agree, that in most cases (nodes), USE is the only field allowed
> when USE appears?
>
> If not, I've got to change all my JSON schema generating code.
>
> Maybe we'll decide on another JSON schema based on the XML schema, since
> XML Spy can now generate a JSON schema from an XML schema last I heard.
>
> Let's just break all my coding for the last 5 years!  Whee!
>
> I would need to know all the nodes/statements where additional fields are
> allowed when USE appears.  I think there's only two cases.
>
> Or is this a thing in X3D4?
>
> It seems like USE has two different semantics, whether you're using it on
> a node or not?
>
> John
>
> On Sun, Nov 22, 2020 at 7:51 PM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
>
>> I think the spec. does not have an opinion on this, see x3d-public and
>> other players. Cheers, -Andreas
>>
>> On Sun, Nov 22, 2020 at 8:47 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> Note that X3DOM should now probably flag ProtoInstances with both name
>>> and USE with a warning that the code is now non-compliant or deprecated. I
>>> believe the spec says that USE and name together are only allowed in
>>> certain nodes (I think Metadata and perhaps one other comes to mind).
>>>
>>> That's the best I have right now.  See previous discussion on mailing
>>> list regarding extra fields including name along with USE.
>>>
>>> Also, if you use JSON schema, it should catch JSON examples as
>>> non-compliant if they contain both name and USE.  This works in JSON,
>>> because containerFields are not used in JSON.
>>>
>>> And yes, this may have all changed under my nose!
>>>
>>> John
>>>
>>>
>>> On Sun, Nov 22, 2020 at 7:19 PM Andreas Plesch <andreasplesch at gmail.com>
>>> wrote:
>>>
>>>> Yes, the Diamond files have the diamond shape in the ProtoDeclaration.
>>>>
>>>> I added guards for nonimplemented but expected, standard fields (such
>>>> as addChildren) to ProtoDeclaration.js, and allowed USE ProtoInstances by
>>>> looking for DEFs in the dom (before parsing, at the initial step of
>>>> translation to the concise x3dom syntax).
>>>>
>>>> These changes should help with making these older HAnim protos work
>>>> better.
>>>>
>>>> -Andreas
>>>>
>>>> On Sun, Nov 22, 2020 at 4:43 PM John Carlson <yottzumm at gmail.com>
>>>> wrote:
>>>>
>>>>>
>>>>> I see one Shape (in a proto?), but I didn’t look for geometry.   I
>>>>> believe there is satisfactory appearance.   I believe I only checked one
>>>>> LOA4 file.   I am not sure about converted files.
>>>>>
>>>>> I will look into this in more detail later today.  I believe at least
>>>>> the Diamond files should have shapes.
>>>>>
>>>>> John
>>>>>
>>>>> On Sun, Nov 22, 2020 at 9:35 AM Andreas Plesch <
>>>>> andreasplesch at gmail.com> wrote:
>>>>>
>>>>>> Yes this is Proto related, due to the "addChildren" and
>>>>>> "removeChildren" fields not being available in x3dom for grouping nodes.
>>>>>> And those are not available because x3dom cannot route node type fields.
>>>>>>
>>>>>> Although the Protos define the addChildren field it is actually never
>>>>>> used in the examples, so they are not actually necessary. You could just
>>>>>> remove them.
>>>>>>
>>>>>> The examples use an old Proto implementation of HAnim. The native
>>>>>> implementation is also available, without Protos.
>>>>>>
>>>>>> Perhaps it would make sense to add noop stubs for add/removeChildren
>>>>>> fields in X3DGroupingNode.js, or add a guard for the Proto field type.
>>>>>>
>>>>>> I notice that hanimloa4.html does not have any geometry to render,
>>>>>> only the joint structure.
>>>>>>
>>>>>
>>>>
>>>> --
>>>> Andreas Plesch
>>>> Waltham, MA 02453
>>>>
>>>
>>
>> --
>> 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/20201122/7a387484/attachment.html>


More information about the x3d-public mailing list