Table of Contents

Class Collision3

Namespace
GeometryHelper.Core
Assembly
GeometryHelper.dll

Provides static methods for deciding whether two 3D shapes overlap.

CollidesWith answers yes or no and says nothing about where. Shapes that merely touch count as colliding, so the answer agrees with Distance3 reporting zero for the same pair. Where the shapes meet is Intersection3, and how far apart they are when they do not is Distance3.

public static class Collision3
Inheritance
Collision3
Inherited Members

Remarks

A segment, a ray and a flat region have no thickness between them, so there is nothing for them to overlap in: they touch exactly where they cross. Each of these is therefore the crossing test with the point thrown away, which is worth having under its own name because a caller who only wants to know whether they meet should not have to declare somewhere to put an answer it will not read.

A ray against a box is the one that needs a second question. A box is bounded, so a ray that starts inside it always leaves and does cross the surface — but a ray starting on the inside is the case a crossing count is least sure of, so where it starts is asked first, as it is for a ray against a solid.

Methods

CollidesWith(GeoAabb3, GeoAabb3)

Checks whether two axis-aligned boxes overlap, using the default tolerance.

CollidesWith(GeoAabb3, GeoAabb3, Tolerance)

Checks whether two axis-aligned boxes overlap, within a tolerance.

CollidesWith(GeoAabb3, GeoSolid3)

Determines whether an axis-aligned box touches or overlaps a solid.

CollidesWith(GeoAabb3, GeoSolid3, Tolerance)

Determines whether an axis-aligned box touches or overlaps a solid, within a tolerance.

CollidesWith(GeoFace3, GeoSolid3)

Checks whether a face overlaps a solid, using the default tolerance.

CollidesWith(GeoFace3, GeoSolid3, Tolerance)

Checks whether a face overlaps a solid, within a tolerance.

CollidesWith(GeoLine3, GeoAabb3)

Checks whether a line segment reaches into an axis-aligned box, using the default tolerance.

CollidesWith(GeoLine3, GeoAabb3, Tolerance)

Checks whether a line segment reaches into an axis-aligned box, within a tolerance.

CollidesWith(GeoLine3, GeoFace3)

Determines whether a segment touches a face.

CollidesWith(GeoLine3, GeoFace3, Tolerance)

Determines whether a segment touches a face, within a tolerance.

CollidesWith(GeoLine3, GeoLine3)

Determines whether two segments touch.

CollidesWith(GeoLine3, GeoLine3, Tolerance)

Determines whether two segments touch, within a tolerance.

CollidesWith(GeoLine3, GeoObb3)

Checks whether a line segment reaches into an oriented box, using the default tolerance.

CollidesWith(GeoLine3, GeoObb3, Tolerance)

Checks whether a line segment reaches into an oriented box, within a tolerance.

CollidesWith(GeoLine3, GeoPlane3)

Determines whether a segment touches a plane.

CollidesWith(GeoLine3, GeoPlane3, Tolerance)

Determines whether a segment touches a plane, within a tolerance.

CollidesWith(GeoLine3, GeoPolygon3)

Determines whether a segment touches a polygon.

CollidesWith(GeoLine3, GeoPolygon3, Tolerance)

Determines whether a segment touches a polygon, within a tolerance.

CollidesWith(GeoLine3, GeoRay3)

Determines whether a segment touches a ray.

CollidesWith(GeoLine3, GeoRay3, Tolerance)

Determines whether a segment touches a ray, within a tolerance.

CollidesWith(GeoLine3, GeoSolid3)

Checks whether a line segment reaches into a solid, using the default tolerance.

CollidesWith(GeoLine3, GeoSolid3, Tolerance)

Checks whether a line segment reaches into a solid, within a tolerance.

CollidesWith(GeoLine3, GeoTriangle3)

Determines whether a segment touches a triangle.

CollidesWith(GeoLine3, GeoTriangle3, Tolerance)

Determines whether a segment touches a triangle, within a tolerance.

CollidesWith(GeoObb3, GeoAabb3)

Checks whether an oriented box overlaps an axis-aligned one, using the default tolerance.

CollidesWith(GeoObb3, GeoAabb3, Tolerance)

Checks whether an oriented box overlaps an axis-aligned one, within a tolerance.

CollidesWith(GeoObb3, GeoObb3)

Checks whether two oriented boxes overlap, using the default tolerance.

CollidesWith(GeoObb3, GeoObb3, Tolerance)

Checks whether two oriented boxes overlap, within a tolerance.

CollidesWith(GeoObb3, GeoSolid3)

Checks whether an oriented box overlaps a solid, using the default tolerance.

CollidesWith(GeoObb3, GeoSolid3, Tolerance)

Checks whether an oriented box overlaps a solid, within a tolerance.

CollidesWith(GeoPolygon3, GeoObb3)

Checks whether a polygon overlaps an oriented box, using the default tolerance.

CollidesWith(GeoPolygon3, GeoObb3, Tolerance)

Checks whether a polygon overlaps an oriented box, within a tolerance.

CollidesWith(GeoPolygon3, GeoSolid3)

Checks whether a polygon overlaps a solid, using the default tolerance.

CollidesWith(GeoPolygon3, GeoSolid3, Tolerance)

Checks whether a polygon overlaps a solid, within a tolerance.

CollidesWith(GeoPolyline3, GeoAabb3)

Determines whether a straight chain touches a square box.

CollidesWith(GeoPolyline3, GeoAabb3, Tolerance)

Determines whether a straight chain touches a square box, within a tolerance.

CollidesWith(GeoPolyline3, GeoArc3)

Determines whether a straight chain touches an arc.

CollidesWith(GeoPolyline3, GeoArc3, Tolerance)

Determines whether a straight chain touches an arc, within a tolerance.

CollidesWith(GeoPolyline3, GeoCircle3)

Determines whether a straight chain touches a circle.

CollidesWith(GeoPolyline3, GeoCircle3, Tolerance)

Determines whether a straight chain touches a circle, within a tolerance.

CollidesWith(GeoPolyline3, GeoFace3)

Determines whether a straight chain touches a face.

CollidesWith(GeoPolyline3, GeoFace3, Tolerance)

Determines whether a straight chain touches a face, within a tolerance.

CollidesWith(GeoPolyline3, GeoLine3)

Determines whether a straight chain touches a segment.

CollidesWith(GeoPolyline3, GeoLine3, Tolerance)

Determines whether a straight chain touches a segment, within a tolerance.

CollidesWith(GeoPolyline3, GeoObb3)

Determines whether a straight chain touches a box.

CollidesWith(GeoPolyline3, GeoObb3, Tolerance)

Determines whether a straight chain touches a box, within a tolerance.

CollidesWith(GeoPolyline3, GeoPlane3)

Determines whether a straight chain touches a plane.

CollidesWith(GeoPolyline3, GeoPlane3, Tolerance)

Determines whether a straight chain touches a plane, within a tolerance.

CollidesWith(GeoPolyline3, GeoPolygon3)

Determines whether a straight chain touches a polygon.

CollidesWith(GeoPolyline3, GeoPolygon3, Tolerance)

Determines whether a straight chain touches a polygon, within a tolerance.

CollidesWith(GeoPolyline3, GeoPolyline3)

Determines whether two straight chains touch.

CollidesWith(GeoPolyline3, GeoPolyline3, Tolerance)

Determines whether two straight chains touch, within a tolerance.

CollidesWith(GeoPolyline3, GeoRay3)

Determines whether a straight chain touches a ray.

CollidesWith(GeoPolyline3, GeoRay3, Tolerance)

Determines whether a straight chain touches a ray, within a tolerance.

CollidesWith(GeoPolyline3, GeoSolid3)

Checks whether a polyline reaches into a solid, using the default tolerance.

CollidesWith(GeoPolyline3, GeoSolid3, Tolerance)

Checks whether a polyline reaches into a solid, within a tolerance.

CollidesWith(GeoPolyline3, GeoTriangle3)

Determines whether a straight chain touches a triangle.

CollidesWith(GeoPolyline3, GeoTriangle3, Tolerance)

Determines whether a straight chain touches a triangle, within a tolerance.

CollidesWith(GeoRay3, GeoAabb3)

Determines whether a ray starts inside an axis-aligned box or runs into it.

CollidesWith(GeoRay3, GeoAabb3, Tolerance)

Determines whether a ray starts inside an axis-aligned box or runs into it, within a tolerance.

CollidesWith(GeoRay3, GeoFace3)

Determines whether a ray runs into a face.

CollidesWith(GeoRay3, GeoFace3, Tolerance)

Determines whether a ray runs into a face, within a tolerance.

CollidesWith(GeoRay3, GeoLine3)

Determines whether a ray touches a segment.

CollidesWith(GeoRay3, GeoLine3, Tolerance)

Determines whether a ray touches a segment, within a tolerance.

CollidesWith(GeoRay3, GeoObb3)

Determines whether a ray starts inside an oriented box or runs into it.

CollidesWith(GeoRay3, GeoObb3, Tolerance)

Determines whether a ray starts inside an oriented box or runs into it, within a tolerance.

CollidesWith(GeoRay3, GeoPolygon3)

Determines whether a ray runs into a polygon.

CollidesWith(GeoRay3, GeoPolygon3, Tolerance)

Determines whether a ray runs into a polygon, within a tolerance.

CollidesWith(GeoRay3, GeoSolid3)

Determines whether a ray starts inside a solid or runs into it.

CollidesWith(GeoRay3, GeoSolid3, Tolerance)

Determines whether a ray starts inside a solid or runs into it, within a tolerance.

CollidesWith(GeoRay3, GeoTriangle3)

Determines whether a ray runs into a triangle.

CollidesWith(GeoRay3, GeoTriangle3, Tolerance)

Determines whether a ray runs into a triangle, within a tolerance.

CollidesWith(GeoSolid3, GeoSolid3)

Checks whether two solids overlap, using the default tolerance.

CollidesWith(GeoSolid3, GeoSolid3, Tolerance)

Checks whether two solids overlap, within a tolerance.

CollidesWith(GeoTriangle3, GeoTriangle3)

Checks whether two triangles overlap, using the default tolerance.

CollidesWith(GeoTriangle3, GeoTriangle3, Tolerance)

Checks whether two triangles overlap, within a tolerance.