private static Vector closestVertexOnOBB(Vector p, RectangleParticle r)
        {
            Vector d = p.minus(r.curr);
            Vector q = new Vector(r.curr.x, r.curr.y);
            int    i = 0;

            for (i = 0; i <= 1; i++)
            {
                double dist = d.dot((Vector)r.getAxes()[i]);
                if (dist >= 0)
                {
                    dist = ((double)r.getExtents()[i]);
                }
                else if (dist < 0)
                {
                    dist = -((double)r.getExtents()[i]);
                }
                q.plusEquals(((Vector)r.getAxes()[i]).mult(dist));
                //  System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
            }
            return(q);
        }