Use the ray struct for intersections