Python 2, 317 300 298298 290 bytes
def f(w,h,B):
A=[w*[2]forA=[w*[-1]for c in' '*h];p=w+h
for x,y,c in B:A[y][x]=c<'0'
for i in range(2*p):
x,y,u,v=[[[d=[[[(0,2*p+~i,1,0),(w+p+~i,h-1,0,-1)][i<w+p],(w-1,i-w,-1,03)][i<p],(i,0,0,12)][i<w]
while w>x>=0<=y<h:ud^=1+A[y][x];x+=[1,v=[(-v0,-u)0,(v-1][d];y+=[0,u)-1,(u1,v)][A[y][x]];x+=u;y+=v0][d]
print[[y+w,2*p+~y][x<0],[w+p+~x,x][y<h]][u==0]x][y<h]][0<d<3],
Takes the bumpers as a list of tuples (x,y,c)
where x
and y
are the coordinates of the bumper and c
is either \
or /
.