[x3d-public] x3d-public Digest, Vol 157, Issue 95

GPU Group gpugroup at gmail.com
Mon Apr 25 16:29:50 PDT 2022


run-time DEF/USE name scope is different than parse-time ProtoDeclare name
scope.

On Mon, Apr 25, 2022 at 1:32 PM Andreas Plesch <andreasplesch at gmail.com>
wrote:

> Hi Doug,
>
> > Date: Mon, 25 Apr 2022 10:02:21 -0600
> > From: GPU Group <gpugroup at gmail.com>
> > To: X3D Graphics public mailing list <x3d-public at web3d.org>
> > Subject: Re: [x3d-public] ProtoBody completeness in nested Protos
>
> > "..assuming that the outer scene
> > Execution Context should apply also to the Proto Execution Context. I
> > do not think this is the case. Or is it ?"
> > freewrl: contexts inherit defined protos from parent contexts.
> > (as you go down the stack of contexts with nested protos, deeper proto
> > contexts inherit the defined protos of the parent context)
>
> I am not sure this such inheritance is intended since there is an
> emphasis on each Proto having its own name scope and execution context
> in order to avoid any conflicts:
>
>
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Runtimenamescope
>
> Instead of inheriting protos from parents each proto would need to
> declare all protos it is itself using. Similarly, Inlines do not
> inherit name scopes from parents.
>
> At least such inheritance is not mentioned or implied by the spec.
> language as far as I could locate. It is possible I missed a corner.
>
> Best, Andreas
>
> >
> > On Mon, Apr 25, 2022 at 9:21 AM Andreas Plesch <andreasplesch at gmail.com>
> > wrote:
> >
> > > On Mon, Apr 25, 2022 at 12:43 AM Brutzman, Donald (Don) (CIV)
> > > <brutzman at nps.edu> wrote:
> > >
> > > > Actually please look a little more closely at that (admittedly
> tricky)
> > > > example.
> > >
> > > Thanks, looking closely is when I noticed that the CircleFishLod
> > > ProtoBody is not completely defined within itself.
> > >
> > > > * CircleFish is an ExternProto, separately defined in another file
> > > > * CircleFishLod is a ProtoDeclare defined in that first file,
> > > > CircleFishLodPrototype.x3d
> > > > * CircleFishLod ProtoBody contains two ProtoInstance copies of
> CircleFish
> > >
> > > Yes, but the CircleFishLod ProtoBody does not contain the CircleFish
> > > ExternProtoDeclare (referencing the CircleFish ExternProto) which the
> > > two copies of CircleFish use. So the ProtoBody is incomplete.
> > >
> > > > * CircleFishLod ProtoDeclare is then followed by a CircleFishLod
> > > > ProtoInstance (again  in CircleFishLodPrototype.x3d)
> > > > So I would expect an X3D Browser to
> > > >
> > > > a. load ExternProtoDeclare      CircleFish
> > >
> > > At this point the ProtoDeclaration is only registered under its name,
> > > in the outer scene Execution Context. The protos array of the
> > > Execution Context stores it :
> > >
> > >
> https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#t-ExecutionContextProperties
> > > .
> > >
> > > > b. build ProtoDeclare                CircleFishLod
> > > > c. create inner ProtoInstance  CircleFish for use
> > >
> > > This ProtoInstance creation will look for the CircleFish
> > > ProtoDeclaration, in the CircleFishLod Execution Context which is
> > > separate from the scene execution context/name scope. But it is only
> > > registered in the outer scene Context.
> > >
> > > > d. create outer ProtoInstance CircleFishLod
> > >
> > > In the example (not necessarily in the Proto x3d).
> > >
> > > > Order of steps might vary a bit, but those are the dependencies.
> Good
> > > luck
> > > > sir.
> > >
> > > Well, thanks for listing the specific steps which helped illuminate
> > > that there is a deeper issue with assuming that the outer scene
> > > Execution Context should apply also to the Proto Execution Context. I
> > > do not think this is the case. Or is it ?
> > >
> > > This scrutiny confirms to me that there is likely an oversight in the
> > > CircleFishLod example. The example only happens to work in some
> > > browsers which are more accepting of mixing Execution Contexts. The
> > > example can be easily fixed by moving the ExternProtoDeclare inside
> > > the ProtoBody, similar to other examples of nested Prototypes. In fact
> > > all other examples of nested prototypes I could find do this.
> > >
> > > Happy to be convinced otherwise,
> > >
> > > Andreas
> > >
> > > > Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> > > +1.831.656.2149
> > > > X3D graphics, virtual worlds, Navy robotics https://
> > > > faculty.nps.edu/brutzman
> > > >
> > > > -----Original Message-----
> > > > From: x3d-public <x3d-public-bounces at web3d.org> On Behalf Of Andreas
> > > Plesch
> > > > Sent: Sunday, April 24, 2022 9:08 PM
> > > > To: X3D Graphics public mailing list <x3d-public at web3d.org>
> > > > Subject: [x3d-public] ProtoBody completeness in nested Protos
> > > >
> > > > ProtoDeclarations may use ProtoInstances of other Protos inside their
> > > > ProtoBody definitions.
> > > >
> > > > For example, the CircleFishLod proto here:
> > > >
> > > >
> > >
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fx3dgraphic
> > > > s.com
> > > %2Fexamples%2FX3dForWebAuthors%2FKelpForestExhibit%2FCircleFishLodProto
> > > > typeIndex.html&data=05%7C01%7Cbrutzman%40nps.edu
> > > %7C0b4a867ba9874e371f9b0
> > > >
> > >
> 8da267152fa%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637864565880708349%
> > > >
> > >
> 7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwi
> > > >
> > >
> LCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=upr4eckI8axT7MO5fAUvAWfyBzUJfhTwqcp
> > > > BuH7tZjc%3D&reserved=0
> > > >
> > > > uses ProtoInstances of the CircleFish proto.
> > > >
> > > > A more extreme case of nesting is:
> > > >
> > > >
> > >
> https://www.web3d.org/x3d/content/examples/ConformanceNist/Miscellaneous/PRO
> > > > TO/fivedeepnestingIndex.html
> > > >
> > > > where Proto1 uses ProtoInstance of Proto2 inside its ProtoBody.
> Proto2
> > > > itself uses a ProtoInstance of Proto3 inside its ProtoBody. And so
> on to
> > > > five levels deep.
> > > >
> > > > The second example with the deep nesting currently works with x3dom
> but
> > > the
> > > > seemingly simpler CircleFishLod proto does not.
> > > >
> > > > The reason is that x3dom expects the complete definition of a proto
> to be
> > > > contained in its ProtoBody. However, The CircleFishLod proto only
> > > contains
> > > > the CircleFish ProtoInstances in the body but not the associated
> > > CircleFish
> > > > ProtoDeclaration which for some reason occurs outside the
> CircleFishLod
> > > > ProtoBody (and outside the CircleFishLod ProtoDeclaration).
> > > >
> > > > Expecting the ProtoBody to be complete and self-contained seems
> rather
> > > > natural. Is x3dom too strict in this regard, or is there an
> oversight in
> > > the
> > > > example ? There is not much guidance in the spec., if any.
> > > >
> > > > Thanks, Andreas
> > > >
> > > > --
> > > > Andreas Plesch
> > > > Waltham, MA 02453
> > > >
> > > > _______________________________________________
> > > > x3d-public mailing list
> > > > x3d-public at web3d.org
> > > > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> > >
> > >
> > >
> > > --
> > > Andreas Plesch
> > > Waltham, MA 02453
> > >
> > > _______________________________________________
> > > x3d-public mailing list
> > > x3d-public at web3d.org
> > > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> > >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <
> http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220425/75f52a78/attachment-0001.html
> >
> >
> > ------------------------------
> >
> > Message: 2
> > Date: Mon, 25 Apr 2022 10:36:35 -0700
> > From: Joseph D Williams <joedwil at earthlink.net>
> > To: John Carlson <yottzumm at gmail.com>,  X3D Graphics public mailing
> >         list <x3d-public at web3d.org>
> > Subject: Re: [x3d-public] X3DUOM HAnim to HAnim model
> > Message-ID:
> >         <mailman.10.1650913202.40979.x3d-public_web3d.org at web3d.org>
> > Content-Type: text/plain; charset="utf-8"
> >
> > Hi John,
> > I canl look at anything you get. All the joints and segments and sites
> are there to do a complete loa4, just that at this time, not a full list of
> joint center and site xyz locations are listed.
> > Good Luck,
> > Joe
> >
> > From: John Carlson
> > Sent: Monday, April 25, 2022 1:16 AM
> > To: X3D Graphics public mailing list
> > Subject: [x3d-public] X3DUOM HAnim to HAnim model
> >
> > Has anyone produced an HAnim model from X3DUOM?? ?Advice?
> >
> > I was thinking of using x3d.py
> >
> > Thanks!
> >
> > John
> >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <
> http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220425/b2476840/attachment.html
> >
> >
> > ------------------------------
> >
> > Subject: Digest Footer
> >
> > _______________________________________________
> > x3d-public mailing list
> > x3d-public at web3d.org
> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> >
> >
> > ------------------------------
> >
> > End of x3d-public Digest, Vol 157, Issue 95
> > *******************************************
>
>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220425/c2a684cf/attachment.html>


More information about the x3d-public mailing list