[x3d-public] X3DParticleEmitter node inherit fromX3DChildNode(rather than X3DNode)

Joseph D Williams joedwil at earthlink.net
Thu Mar 10 12:12:48 PST 2022


➢ The right way to cache non-rendered content for DEF/USE libraries is to put them as children nodes within a Switch node with whichChoice=’-1’.
Agreed, that way author can choose to render the original DEF at will. Looks like a sort of hack until you see the examples of this hack turned into some hard to validate ‘legal’ container for the hack. Html also once tried for an img or  object or embed to be defined in the head and used later. Never really implemented, and generally got stomped by style sheet, fortunately. In fact, if you need something like this, x3d has a style tag that might be of much greater use for authorship in WWW. And, we can try protos, if really needed, and more fun.
➢ MetadataSet to have X3DNode nodes 
If I understand it, the idea of ending meta to include actual user code for the scenegraph is exactly the sort of extension wanting to be “worthwhile to deviate a bit and be more permissive than the spec” that dooms the long-term validation operation. Maybe good for something with simple structure that looks convenient and logical and seemingly convenient to implement at first thought and elementary usage, then ends up making something definitely not to be best practice. Please delineate the “worthwhile” parts that make a case. Meta are just convenient comments giving structured information details. Never a necessary unnegotiated item for runtime, or more strictly, not intended to hold user code for runtime, and in fact, specifically denied, thankfully. 
More x3d funs, 
Joe
 

       

From: Andreas Plesch
Sent: Tuesday, March 8, 2022 11:39 AM
To: Brutzman, Donald (Don) (CIV)
Cc: X3D Graphics public mailing list
Subject: Re: [x3d-public] X3DParticleEmitter node inherit fromX3DChildNode(rather than X3DNode)

Yes, I am pretty sure Holger is aware. I only brought it up because Titania/x-ite typically stays very close to the spec. But this is a capability where Titania/x-ite found it worthwhile to deviate a bit and be more permissive than the spec. This decision may point to the value of having a way to DEF any X3DNode (not just child nodes) outside of the scene graph, outweighing strict compliance.

All the best, Andreas

On Tue, Mar 8, 2022 at 2:22 PM Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> wrote:
MetadataSet is only allowed to contain other Metadata* nodes or comments.  Other content will fail validation (and will not load or import in the X3DJSAIL Java and X3DPSAIL Python libraries).
 
The right way to cache non-rendered content for DEF/USE libraries is to put them as children nodes within a Switch node with whichChoice=’-1’.
 
all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149
X3D graphics, virtual worlds, Navy robotics https:// faculty.nps.edu/brutzman
 
From: x3d-public <x3d-public-bounces at web3d.org> On Behalf Of Andreas Plesch
Sent: Tuesday, March 8, 2022 10:11 AM
To: X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: Re: [x3d-public] X3DParticleEmitter node inherit from X3DChildNode(rather than X3DNode)
 
Of note is that Titania and x-ite allow MetadataSet to have X3DNode nodes, eg. any node, in the value field, not just X3DMetadataObject nodes.
 
This allows MetadataSet to be used as a NodesLibrary for DEF/USE purposes. In fact, this kind of redirection is the default setup for scenes created in Titania.
 
SVG also has a NodesLibrary equivalent, the <defs> element:
 
https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs
 
-Andreas
 
Date: Mon, 7 Mar 2022 21:29:41 +0100
From: Michalis Kamburelis <michalis.kambi at gmail.com>
To: Joseph D Williams <joedwil at earthlink.net>
Cc: GPU Group <gpugroup at gmail.com>,  "X3D Public Mailing List
        (x3d-public at web3d.org)" <x3d-public at web3d.org>
Subject: Re: [x3d-public] X3DParticleEmitter node inherit from
        X3DChildNode(rather than X3DNode)
Message-ID:
        <CAKzBGZNToR-7CmaUzRxBE3xx9J6j2mPgmvKAjQKpGQxjdY_0hA at mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"

Perhaps I should have written

"""
The nodes within NodesLibrary don't make any effect, they are not
traversed. They are only to be reUSEd (referenced) by other parts of
the graph."
"""

This makes the wording consistent with how e.g. Switch is described.
Sure you have all the nodes in memory, you just don't traverse to
inactive parts of Switch, LOD, NodesLibrary etc.

Regards,
Michalis



-- 
Andreas Plesch
Waltham, MA 02453

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220310/b4527824/attachment.html>


More information about the x3d-public mailing list