<Collide> with "keep": Node-name lost

A model that I’m using at the moment has certain sub-parts that use the “Collide” tag in order to generate collision geomety, and which I additionally want to locate in code via NodePath’s “findAllMatches” method. However, it appears that the use of the “Collide” tag results in the node being unnamed, interfering with my attempts to search for it.

I’ve confirmed this by experimentally removing the “Collide” tag from one of the relevant sub-parts, which results in that sub-part’s nme being preserved.

The specific “Collide” tag that I’m using is " { Polyset descend keep }".

I’m seeing this in a relatively-recent home-build of 1.9–although I’ll admit that I’ve probably missed some more-recent updates.

What is the output of ls()?

And how does it change when you do this: " somename { Polyset keep descend }" ?

Since there are several parts to the model that I’m working with, I put together a quick test-model that has only a single geom, which has the “Collide” tag set. The output then is as follows:

Without the “Collide” tag:

ModelRoot untitled.egg T:(pos 0 10 0 hpr 30 40 0)
GeomNode Cube (1 geoms)

With the “Collide” tag:

ModelRoot untitled.egg T:(pos 0 10 0 hpr 30 40 0)
PandaNode 
CollisionNode Cube (6 solids) (hidden)
GeomNode (1 geoms)

(Note that the CollisionNode has the expected name–“Cube”–while the GeomNode doesn’t.)

This is the result, using the name “Kittens” in place of “somename”:

ModelRoot untitled.egg T:(pos 0 10 0 hpr 30 40 0)
PandaNode 
CollisionNode Cube (6 solids) (hidden)
GeomNode (1 geoms)

No apparent effect. :confused:

In my project I’m using BulletHelper to generate Bullet collision geometry from the Panda collision solids exported by YABEE, and hence don’t have the CollisionNodes–and thus wasn’t seeing that the CollisionNodes were getting the assigned name, as shown above. Now that I know that, and if the GeomNodes are children of the CollisionNodes, or vice versa, I suppose that I could extract the names from the CollisionNodes after loading the model. Nevertheless, should the GeomNodes be left nameless by default as they currently seem to be?

Bah, I forgot about this.

A quick check suggests that the CollisionNode and GeomNode are siblings, not parent and child; unless there’s some other reliable relationship–the GeomNode always being the sibling directly after the CollisionNode (such that if “getChild(x)” returns one, “getChild(x+1)” returns the other), for example–I don’t see a means of associating them… :confused: