wrapped ray_fire()