@@ -39,26 +39,22 @@ var Bounds = require('../geometry/Bounds');
3939
4040 // mid phase
4141 if ( Bounds . overlaps ( bodyA . bounds , bodyB . bounds ) ) {
42- for ( var j = bodyA . parts . length > 1 ? 1 : 0 ; j < bodyA . parts . length ; j ++ ) {
42+ var partsALength = bodyA . parts . length ,
43+ partsBLength = bodyB . parts . length ;
44+
45+ for ( var j = partsALength > 1 ? 1 : 0 ; j < partsALength ; j ++ ) {
4346 var partA = bodyA . parts [ j ] ;
4447
45- for ( var k = bodyB . parts . length > 1 ? 1 : 0 ; k < bodyB . parts . length ; k ++ ) {
48+ for ( var k = partsBLength > 1 ? 1 : 0 ; k < partsBLength ; k ++ ) {
4649 var partB = bodyB . parts [ k ] ;
4750
4851 if ( ( partA === bodyA && partB === bodyB ) || Bounds . overlaps ( partA . bounds , partB . bounds ) ) {
4952 // find a previous collision we could reuse
5053 var pairId = Pair . id ( partA , partB ) ,
51- pair = pairsTable [ pairId ] ,
52- previousCollision ;
53-
54- if ( pair && pair . isActive ) {
55- previousCollision = pair . collision ;
56- } else {
57- previousCollision = null ;
58- }
54+ pair = pairsTable [ pairId ] ;
5955
6056 // narrow phase
61- var collision = SAT . collides ( partA , partB , previousCollision ) ;
57+ var collision = SAT . collides ( partA , partB , pair && pair . isActive ? pair . collision : null ) ;
6258
6359 if ( collision . collided ) {
6460 collisions . push ( collision ) ;
0 commit comments