Browse Source

tests: Add unit test for PandaNode prev_transform tracking mechanism

rdb 3 years ago
parent
commit
4df8c86590
1 changed files with 36 additions and 0 deletions
  1. 36 0
      tests/pgraph/test_pandanode.py

+ 36 - 0
tests/pgraph/test_pandanode.py

@@ -0,0 +1,36 @@
+from panda3d.core import PandaNode, TransformState
+
+
+def test_node_prev_transform():
+    identity = TransformState.make_identity()
+    t1 = TransformState.make_pos((1, 0, 0))
+    t2 = TransformState.make_pos((2, 0, 0))
+    t3 = TransformState.make_pos((3, 0, 0))
+
+    node = PandaNode("node")
+    assert node.transform == identity
+    assert node.prev_transform == identity
+    assert not node.has_dirty_prev_transform()
+
+    node.transform = t1
+    assert node.transform == t1
+    assert node.prev_transform == identity
+    assert node.has_dirty_prev_transform()
+
+    node.transform = t2
+    assert node.transform == t2
+    assert node.prev_transform == identity
+    assert node.has_dirty_prev_transform()
+
+    node.reset_prev_transform()
+    assert node.transform == t2
+    assert node.prev_transform == t2
+    assert not node.has_dirty_prev_transform()
+
+    node.transform = t3
+    assert node.prev_transform == t2
+    assert node.has_dirty_prev_transform()
+    PandaNode.reset_all_prev_transform()
+    assert node.transform == t3
+    assert node.prev_transform == t3
+    assert not node.has_dirty_prev_transform()