diff --git a/panda/src/collide/collisionTraverser.cxx b/panda/src/collide/collisionTraverser.cxx index 63c4222457..2e22dc3146 100644 --- a/panda/src/collide/collisionTraverser.cxx +++ b/panda/src/collide/collisionTraverser.cxx @@ -41,7 +41,7 @@ PStatCollector CollisionTraverser::_collisions_pcollector("App:Collisions"); //////////////////////////////////////////////////////////////////// CollisionTraverser:: CollisionTraverser() { - _respect_prev_transform = false; + _respect_prev_transform = respect_prev_transform; #ifdef DO_COLLISION_RECORDING _recorder = (CollisionRecorder *)NULL; #endif diff --git a/panda/src/collide/config_collide.cxx b/panda/src/collide/config_collide.cxx index 495a047a23..9b7f436baa 100644 --- a/panda/src/collide/config_collide.cxx +++ b/panda/src/collide/config_collide.cxx @@ -43,6 +43,14 @@ ConfigureFn(config_collide) { init_libcollide(); } +// Set this true to have all CollisionTraversers in the world respect +// the previous frame's transform (position) for a given object when +// determining motion for collision tests. If this is false, you must +// explicitly enable motion detection for a particular traverser. It +// is false by default to force programmers to decide on a +// case-by-case basis whether they really need this feature. +const bool respect_prev_transform = config_collide.GetBool("respect-prev-transform", false); + //////////////////////////////////////////////////////////////////// // Function: init_libcollide // Description: Initializes the library. This must be called at diff --git a/panda/src/collide/config_collide.h b/panda/src/collide/config_collide.h index 0465ec209c..9ee35683a7 100644 --- a/panda/src/collide/config_collide.h +++ b/panda/src/collide/config_collide.h @@ -24,6 +24,8 @@ NotifyCategoryDecl(collide, EXPCL_PANDA, EXPTP_PANDA); +extern const bool respect_prev_transform; + extern EXPCL_PANDA void init_libcollide(); #endif