Open ianmackenzie opened 7 years ago
Possibly useful for axis-box intersections: https://twitter.com/Peter_shirley/status/1053481303834746880?s=19
Good explanation: https://tavianator.com/fast-branchless-raybounding-box-intersections/
Ray-triangle intersections: https://en.wikipedia.org/wiki/M%C3%B6ller%E2%80%93Trumbore_intersection_algorithm
Another ray-triangle intersection algorithm (PDF): http://www.graphics.cornell.edu/pubs/1997/MT97.pdf (thanks @w0rm!)
Axis2d.intersectionWithBoundingBox : BoundingBox2d -> Axis2d -> Maybe LineSegment2d
Axis2d.intersectionWithTriangle : Triangle2d -> Axis2d -> Maybe LineSegment2d
Axis3d.intersectionWithBoundingBox : BoundingBox3d -> Axis3d -> Maybe LineSegment3d
Axis3d.intersectionWithPlane : Plane3d -> Axis3d -> Maybe Point3d
Axis3d.intersectionWithTriangle : Triangle3d -> Axis3d -> Maybe Point3d
Axis3d.intersectionWithSphere : Sphere3d -> Axis3d -> Maybe LineSegment3d
LineSegment2d.intersectionWithAxis : Axis2d -> LineSegment2d -> Maybe Point2d
LineSegment2d.intersectionWithBoundingBox : BoundingBox2d -> LineSegment2d -> Maybe LineSegment2d
LineSegment2d.intersectionPointsWithBoundingBox : BoundingBox2d -> LineSegment2d -> List Point2d
LineSegment2d.intersectionWithTriangle : Triangle2d -> LineSegment2d -> Maybe LineSegment2d
LineSegment2d.intersectionPointsWithTriangle : Triangle2d -> LineSegment2d -> List Point2d
LineSegment2d.intersectionWithCircle : Circle2d -> LineSegment2d -> Maybe LineSegment2d
LineSegment2d.intersectionPointsWithCircle : Circle2d -> LineSegment2d -> List Point2d
LineSegment3d.intersectionWithBoundingBox : BoundingBox3d -> LineSegment3d -> Maybe LineSegment3d
LineSegment3d.intersectionPointsWithBoundingBox : BoundingBox3d -> LineSegment3d -> List Point3d
LineSegment3d.intersectionWithPlane : Plane3d -> LineSegment3d -> Maybe Point3d
LineSegment3d.intersectionWithTriangle : Triangle3d -> LineSegment3d -> Maybe Point3d
Triangle3d.intersectionWithPlane : Plane3d -> Triangle3d -> Maybe LineSegment3d