Просмотр исходного кода

bullet: Corrected possible false check

        - When a bullet world is created it sets the filter
        algorithm callback that will use. Later changes to
        PRC config data should not lead to false assumptions
        that the bullet world is working with the new config.

Signed-off-by: deflected <[email protected]>

Closes #289
deflected 7 лет назад
Родитель
Сommit
5fec62b6fa
2 измененных файлов с 5 добавлено и 3 удалено
  1. 4 3
      panda/src/bullet/bulletWorld.cxx
  2. 1 0
      panda/src/bullet/bulletWorld.h

+ 4 - 3
panda/src/bullet/bulletWorld.cxx

@@ -82,7 +82,8 @@ BulletWorld() {
   _world->getPairCache()->setInternalGhostPairCallback(&_ghost_cb);
 
   // Filter callback
-  switch (bullet_filter_algorithm) {
+  _filter_algorithm = bullet_filter_algorithm;
+  switch (_filter_algorithm) {
     case FA_mask:
       _filter_cb = &_filter_cb1;
       break;
@@ -1086,7 +1087,7 @@ void BulletWorld::
 set_group_collision_flag(unsigned int group1, unsigned int group2, bool enable) {
   LightMutexHolder holder(get_global_lock());
 
-  if (bullet_filter_algorithm != FA_groups_mask) {
+  if (_filter_algorithm != FA_groups_mask) {
     bullet_cat.warning() << "filter algorithm is not 'groups-mask'" << endl;
   }
 
@@ -1198,7 +1199,7 @@ set_filter_callback(CallbackObject *obj) {
 
   nassertv(obj != NULL);
 
-  if (bullet_filter_algorithm != FA_callback) {
+  if (_filter_algorithm != FA_callback) {
     bullet_cat.warning() << "filter algorithm is not 'callback'" << endl;
   }
 

+ 1 - 0
panda/src/bullet/bulletWorld.h

@@ -265,6 +265,7 @@ private:
 
   btGhostPairCallback _ghost_cb;
 
+  FilterAlgorithm _filter_algorithm;
   btFilterCallback1 _filter_cb1;
   btFilterCallback2 _filter_cb2;
   btFilterCallback3 _filter_cb3;