Closed ak-2485 closed 4 years ago
IMO, the use of some_value == 1
decreases readability. Instead, use booleans.
if intersect_min == 1
...
end
versus
if is_intersect_min
...
end
There's also a lot of boolean reduction that can occur (I've tackled some of this in the cpp code already), but since this isn't the production code, not a big deal. Other than that, and the comment above, LGTM.
Multiple updates to the traversal phase, the azimuthal/angular hits, and the test cases. Traversal phase: remove costly array updates in traversal main. Azimuthal/angular hit: include collinear cases in conditionals, update time comparisons to use function strictly less than. Test cases: Update test cases based on (a) traversal choices for ambiguities such as ray collinear with boundaries and (b) corrections made by checking 3D vis. in GeoGebra.