Skip to content

Commit f183d90

Browse files
committed
bullet: sync rigid body transform when node is reparented
Reparenting a node will change its net transform, so it should cause a transform sync. Fixes panda3d#629
1 parent e8fc767 commit f183d90

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

panda/src/bullet/bulletRigidBodyNode.cxx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,20 @@ do_transform_changed() {
359359
}
360360
}
361361

362+
/**
363+
*
364+
*/
365+
void BulletRigidBodyNode::
366+
parents_changed() {
367+
368+
if (_motion.sync_disabled()) return;
369+
370+
if (get_num_parents() > 0) {
371+
LightMutexHolder holder(BulletWorld::get_global_lock());
372+
do_transform_changed();
373+
}
374+
}
375+
362376
/**
363377
*
364378
*/

panda/src/bullet/bulletRigidBodyNode.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ class EXPCL_PANDABULLET BulletRigidBodyNode : public BulletBodyNode {
112112
void do_sync_b2p();
113113

114114
protected:
115+
virtual void parents_changed();
115116
virtual void transform_changed();
116117

117118
private:

0 commit comments

Comments
 (0)