elm-geometry icon indicating copy to clipboard operation
elm-geometry copied to clipboard

Add heterogeneous intersection functions

Open ianmackenzie opened this issue 7 years ago • 3 comments

  • [ ] Axis2d.intersectionWithBoundingBox : BoundingBox2d -> Axis2d -> Maybe LineSegment2d
  • [ ] Axis2d.intersectionWithTriangle : Triangle2d -> Axis2d -> Maybe LineSegment2d
  • [ ] Axis3d.intersectionWithBoundingBox : BoundingBox3d -> Axis3d -> Maybe LineSegment3d
  • [x] Axis3d.intersectionWithPlane : Plane3d -> Axis3d -> Maybe Point3d
  • [ ] Axis3d.intersectionWithTriangle : Triangle3d -> Axis3d -> Maybe Point3d
  • [ ] Axis3d.intersectionWithSphere : Sphere3d -> Axis3d -> Maybe LineSegment3d
  • [x] 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
  • [x] LineSegment3d.intersectionWithPlane : Plane3d -> LineSegment3d -> Maybe Point3d
  • [ ] LineSegment3d.intersectionWithTriangle : Triangle3d -> LineSegment3d -> Maybe Point3d
  • [ ] Triangle3d.intersectionWithPlane : Plane3d -> Triangle3d -> Maybe LineSegment3d

ianmackenzie avatar Oct 24 '16 03:10 ianmackenzie

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/

ianmackenzie avatar Oct 23 '18 00:10 ianmackenzie

Ray-triangle intersections: https://en.wikipedia.org/wiki/M%C3%B6ller%E2%80%93Trumbore_intersection_algorithm

ianmackenzie avatar Jan 07 '19 19:01 ianmackenzie

Another ray-triangle intersection algorithm (PDF): http://www.graphics.cornell.edu/pubs/1997/MT97.pdf (thanks @w0rm!)

ianmackenzie avatar Jan 03 '21 16:01 ianmackenzie