mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-28 15:53:55 -04:00
pgraph: Fix nodes with same key but diff value getting flattened
This was a regression from 69b3468b2c40111def34e4b609a0aa36267c5582
This commit is contained in:
parent
28b566726a
commit
d65ca1edd6
@ -1325,7 +1325,7 @@ compare_tags(const PandaNode *other) const {
|
||||
return cmp;
|
||||
}
|
||||
|
||||
cmp = strcmp(a_data.get_key(ai).c_str(), b_data.get_key(bi).c_str());
|
||||
cmp = strcmp(a_data.get_data(ai).c_str(), b_data.get_data(bi).c_str());
|
||||
if (cmp != 0) {
|
||||
return cmp;
|
||||
}
|
||||
|
@ -133,6 +133,57 @@ def test_weak_nodepath_comparison():
|
||||
assert weak.node() == path.node()
|
||||
|
||||
|
||||
def test_nodepath_flatten_tags_identical():
|
||||
from panda3d.core import NodePath, PandaNode
|
||||
|
||||
# Do flatten nodes with same tags
|
||||
node1 = PandaNode("node1")
|
||||
node1.set_tag("key", "value")
|
||||
node2 = PandaNode("node2")
|
||||
node2.set_tag("key", "value")
|
||||
|
||||
path = NodePath("parent")
|
||||
path.node().add_child(node1)
|
||||
path.node().add_child(node2)
|
||||
|
||||
path.flatten_strong()
|
||||
assert len(path.children) == 1
|
||||
|
||||
|
||||
def test_nodepath_flatten_tags_same_key():
|
||||
from panda3d.core import NodePath, PandaNode
|
||||
|
||||
# Don't flatten nodes with different tag keys
|
||||
node1 = PandaNode("node1")
|
||||
node1.set_tag("key1", "value")
|
||||
node2 = PandaNode("node2")
|
||||
node2.set_tag("key2", "value")
|
||||
|
||||
path = NodePath("parent")
|
||||
path.node().add_child(node1)
|
||||
path.node().add_child(node2)
|
||||
|
||||
path.flatten_strong()
|
||||
assert len(path.children) == 2
|
||||
|
||||
|
||||
def test_nodepath_flatten_tags_same_value():
|
||||
from panda3d.core import NodePath, PandaNode
|
||||
|
||||
# Don't flatten nodes with different tag values
|
||||
node1 = PandaNode("node1")
|
||||
node1.set_tag("key", "value1")
|
||||
node2 = PandaNode("node2")
|
||||
node2.set_tag("key", "value2")
|
||||
|
||||
path = NodePath("parent")
|
||||
path.node().add_child(node1)
|
||||
path.node().add_child(node2)
|
||||
|
||||
path.flatten_strong()
|
||||
assert len(path.children) == 2
|
||||
|
||||
|
||||
def test_nodepath_python_tags():
|
||||
from panda3d.core import NodePath
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user