build/physics/physics.js
function(arr, seg, poly, pDist, coef) 
{
    var dta = vcross(seg.tn, seg.ta);
    var dtb = vcross(seg.tn, seg.tb);
    var n = vmult(seg.tn, coef);
    
    var verts = poly.tVerts;
    for(var i=0; i<verts.length; i+=2){
        var vx = verts[i];
        var vy = verts[i+1];
        if(vdot2(vx, vy, n.x, n.y) < vdot(seg.tn, seg.ta)*coef + seg.r){
            var dt = vcross2(seg.tn.x, seg.tn.y, vx, vy);
            if(dta >= dt && dt >= dtb){
                arr.push(new Contact(new Vect(vx, vy), n, pDist, hashPair(poly.hashid, i)));
            }
        }
    }
}
function(arr, seg, poly, pDist, coef) 
{
    var dta = vcross(seg.tn, seg.ta);
    var dtb = vcross(seg.tn, seg.tb);
    var n = vmult(seg.tn, coef);
    
    var verts = poly.tVerts;
    for(var i=0; i<verts.length; i+=2){
        var vx = verts[i];
        var vy = verts[i+1];
        if(vdot2(vx, vy, n.x, n.y) < vdot(seg.tn, seg.ta)*coef + seg.r){
            var dt = vcross2(seg.tn.x, seg.tn.y, vx, vy);
            if(dta >= dt && dt >= dtb){
                arr.push(new Contact(new Vect(vx, vy), n, pDist, hashPair(poly.hashid, i)));
            }
        }
    }
}
function ( arr , seg , poly , pDist , coef ) { var dta = vcross ( seg . tn , seg . ta ) ; var dtb = vcross ( seg . tn , seg . tb ) ; var n = vmult ( seg . tn , coef ) ; var verts = poly . tVerts ; for ( var i = 0 ; i < verts . length ; i += 2 ) { var vx = verts [ i ] ; var vy = verts [ i + 1 ] ; if ( vdot2 ( vx , vy , n . x , n . y ) < vdot ( seg . tn , seg . ta ) * coef + seg . r ) { var dt = vcross2 ( seg . tn . x , seg . tn . y , vx , vy ) ; if ( dta >= dt && dt >= dtb ) { arr . push ( new Contact ( new Vect ( vx , vy ) , n , pDist , hashPair ( poly . hashid , i ) ) ) ; } } } }
Identify vertexes that have penetrated the segment.
Identify vertexes that have penetrated the segment .