|
@@ -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;
|
|
|
|
|