|
@@ -354,8 +354,7 @@ module BABYLON {
|
|
|
collider.retry = 0;
|
|
|
collider.initialVelocity = this._scaledVelocity;
|
|
|
collider.initialPosition = this._scaledPosition;
|
|
|
-
|
|
|
- if(!collider.collisionFilter || collider.collisionFilter === 1) collider.collisionFilter = excludedMesh && excludedMesh.collisionFilter ? excludedMesh.collisionFilter : 1;
|
|
|
+ collider._collisionMask = excludedMesh && excludedMesh._collisionMask ? excludedMesh._collisionMask : collider._collisionMask;
|
|
|
|
|
|
this._collideWithWorld(this._scaledPosition, this._scaledVelocity, collider, maximumRetry, this._finalPosition, excludedMesh);
|
|
|
|
|
@@ -393,9 +392,8 @@ module BABYLON {
|
|
|
// Check all meshes
|
|
|
for (var index = 0; index < this._scene.meshes.length; index++) {
|
|
|
var mesh = this._scene.meshes[index];
|
|
|
-
|
|
|
- mesh.collisionFilter = mesh.collisionFilter ? mesh.collisionFilter : 1;
|
|
|
- if (mesh.isEnabled() && mesh.checkCollisions && mesh.subMeshes && mesh !== excludedMesh && ((collider.collisionFilter === 1 && mesh.collisionFilter === 1) || collider.collisionFilter > mesh.collisionFilter)) {
|
|
|
+ if(!mesh._collisionGroup) mesh._collisionGroup = -1;
|
|
|
+ if (mesh.isEnabled() && mesh.checkCollisions && mesh.subMeshes && mesh !== excludedMesh && ((collider._collisionMask & mesh._collisionGroup) !== 0)) {
|
|
|
mesh._checkCollision(collider);
|
|
|
}
|
|
|
}
|