Browse Source

Merge pull request #26014 from AndreaCatania/bugfix

Fixed area collision report with concave
Rémi Verschelde 6 years ago
parent
commit
049bb75f9e
1 changed files with 4 additions and 1 deletions
  1. 4 1
      modules/bullet/space_bullet.cpp

+ 4 - 1
modules/bullet/space_bullet.cpp

@@ -686,7 +686,7 @@ void SpaceBullet::check_ghost_overlaps() {
 			btVector3 other_body_scale(otherObject->get_bt_body_scale());
 			btVector3 other_body_scale(otherObject->get_bt_body_scale());
 
 
 			if (!area->is_transform_changed() && !otherObject->is_transform_changed()) {
 			if (!area->is_transform_changed() && !otherObject->is_transform_changed()) {
-				hasOverlap = true;
+				hasOverlap = -1 != area->find_overlapping_object(otherObject);
 				goto collision_found;
 				goto collision_found;
 			}
 			}
 
 
@@ -715,6 +715,9 @@ void SpaceBullet::check_ghost_overlaps() {
 
 
 					other_body_shape = static_cast<btCollisionShape *>(otherObject->get_bt_shape(z));
 					other_body_shape = static_cast<btCollisionShape *>(otherObject->get_bt_shape(z));
 
 
+					if (other_body_shape->isConcave())
+						continue;
+
 					btTransform other_shape_transform(otherObject->get_bt_shape_transform(z));
 					btTransform other_shape_transform(otherObject->get_bt_shape_transform(z));
 					other_shape_transform.getOrigin() *= other_body_scale;
 					other_shape_transform.getOrigin() *= other_body_scale;