Instead of looping over all lixels in geometry mesh, create a BVH in Geometry.flattten() routine, and then call something like geometry.find_intercept_lixels(start, end) which returns intercepting lixels using BVH.
Not sure if there is a lower limit where BVH is slower than brute force
Lixel intercept testing would be much faster if a Bounded Volume Heirarchy was implemented.
Instead of looping over all lixels in geometry mesh, create a BVH in Geometry.flattten() routine, and then call something like geometry.find_intercept_lixels(start, end) which returns intercepting lixels using BVH.
Not sure if there is a lower limit where BVH is slower than brute force