Skip to content

Commit

Permalink
Rename parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
NoahStolk committed Jun 16, 2024
1 parent 2b0f78c commit f5f7e10
Showing 1 changed file with 47 additions and 47 deletions.
94 changes: 47 additions & 47 deletions src/Detach/Collisions/Geometry3D.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,11 @@ public static Vector3 ClosestPointOnRay(Vector3 point, Ray ray)
return ray.Origin + ray.Direction * t;
}

public static bool PointInTriangle(Vector3 point, Triangle3D triangle3D)
public static bool PointInTriangle(Vector3 point, Triangle3D triangle)
{
Vector3 a = triangle3D.A - point;
Vector3 b = triangle3D.B - point;
Vector3 c = triangle3D.C - point;
Vector3 a = triangle.A - point;
Vector3 b = triangle.B - point;
Vector3 c = triangle.C - point;

Vector3 normPbc = Vector3.Cross(b, c);
Vector3 normPca = Vector3.Cross(c, a);
Expand All @@ -140,16 +140,16 @@ public static bool PointInTriangle(Vector3 point, Triangle3D triangle3D)
return Vector3.Dot(normPbc, normPab) >= 0;
}

public static Vector3 ClosestPointOnTriangle(Vector3 point, Triangle3D triangle3D)
public static Vector3 ClosestPointOnTriangle(Vector3 point, Triangle3D triangle)
{
Plane plane = Plane.CreateFromVertices(triangle3D.A, triangle3D.B, triangle3D.C);
Plane plane = Plane.CreateFromVertices(triangle.A, triangle.B, triangle.C);
Vector3 closest = ClosestPointOnPlane(plane, point);
if (PointInTriangle(closest, triangle3D))
if (PointInTriangle(closest, triangle))
return closest;

Vector3 c1 = ClosestPointOnLine(point, new LineSegment3D(triangle3D.A, triangle3D.B));
Vector3 c2 = ClosestPointOnLine(point, new LineSegment3D(triangle3D.B, triangle3D.C));
Vector3 c3 = ClosestPointOnLine(point, new LineSegment3D(triangle3D.C, triangle3D.A));
Vector3 c1 = ClosestPointOnLine(point, new LineSegment3D(triangle.A, triangle.B));
Vector3 c2 = ClosestPointOnLine(point, new LineSegment3D(triangle.B, triangle.C));
Vector3 c3 = ClosestPointOnLine(point, new LineSegment3D(triangle.C, triangle.A));

float d1 = Vector3.DistanceSquared(point, c1);
float d2 = Vector3.DistanceSquared(point, c2);
Expand Down Expand Up @@ -339,18 +339,18 @@ public static bool PlanePlane(Plane plane1, Plane plane2)

#region Triangle vs primitives

public static bool TriangleSphere(Triangle3D triangle3D, Sphere sphere)
public static bool TriangleSphere(Triangle3D triangle, Sphere sphere)
{
Vector3 closest = ClosestPointOnTriangle(sphere.Position, triangle3D);
Vector3 closest = ClosestPointOnTriangle(sphere.Position, triangle);
float distanceSquared = Vector3.DistanceSquared(sphere.Position, closest);
return distanceSquared <= sphere.Radius * sphere.Radius;
}

public static bool TriangleAabb(Triangle3D triangle3D, Aabb aabb)
public static bool TriangleAabb(Triangle3D triangle, Aabb aabb)
{
Vector3 f0 = triangle3D.B - triangle3D.A;
Vector3 f1 = triangle3D.C - triangle3D.B;
Vector3 f2 = triangle3D.A - triangle3D.C;
Vector3 f0 = triangle.B - triangle.A;
Vector3 f1 = triangle.C - triangle.B;
Vector3 f2 = triangle.A - triangle.C;

Vector3 u0 = new(1, 0, 0);
Vector3 u1 = new(0, 1, 0);
Expand All @@ -377,18 +377,18 @@ public static bool TriangleAabb(Triangle3D triangle3D, Aabb aabb)

for (int i = 0; i < axes.Length; i++)
{
if (!OverlapOnAxis(aabb, triangle3D, axes[i]))
if (!OverlapOnAxis(aabb, triangle, axes[i]))
return false;
}

return true;
}

public static bool TriangleObb(Triangle3D triangle3D, Obb obb)
public static bool TriangleObb(Triangle3D triangle, Obb obb)
{
Vector3 f0 = triangle3D.B - triangle3D.A;
Vector3 f1 = triangle3D.C - triangle3D.B;
Vector3 f2 = triangle3D.A - triangle3D.C;
Vector3 f0 = triangle.B - triangle.A;
Vector3 f1 = triangle.C - triangle.B;
Vector3 f2 = triangle.A - triangle.C;
Vector3 u0 = new(obb.Orientation.M11, obb.Orientation.M12, obb.Orientation.M13);
Vector3 u1 = new(obb.Orientation.M21, obb.Orientation.M22, obb.Orientation.M23);
Vector3 u2 = new(obb.Orientation.M31, obb.Orientation.M32, obb.Orientation.M33);
Expand All @@ -414,18 +414,18 @@ public static bool TriangleObb(Triangle3D triangle3D, Obb obb)

for (int i = 0; i < axes.Length; i++)
{
if (!OverlapOnAxis(obb, triangle3D, axes[i]))
if (!OverlapOnAxis(obb, triangle, axes[i]))
return false;
}

return true;
}

public static bool TrianglePlane(Triangle3D triangle3D, Plane plane)
public static bool TrianglePlane(Triangle3D triangle, Plane plane)
{
float side1 = PlaneEquation(triangle3D.A, plane);
float side2 = PlaneEquation(triangle3D.B, plane);
float side3 = PlaneEquation(triangle3D.C, plane);
float side1 = PlaneEquation(triangle.A, plane);
float side2 = PlaneEquation(triangle.B, plane);
float side3 = PlaneEquation(triangle.C, plane);

if (side1 == 0 && side2 == 0 && side3 == 0)
return true;
Expand Down Expand Up @@ -750,27 +750,27 @@ public static bool Raycast(Plane plane, Ray ray, out RaycastResult result)
return true;
}

public static bool Raycast(Triangle3D triangle3D, Ray ray, out float distance)
public static bool Raycast(Triangle3D triangle, Ray ray, out float distance)
{
Plane plane = Plane.CreateFromVertices(triangle3D.A, triangle3D.B, triangle3D.C);
Plane plane = Plane.CreateFromVertices(triangle.A, triangle.B, triangle.C);
if (!Raycast(plane, ray, out distance))
return false;

Vector3 result = ray.Origin + ray.Direction * distance;
Vector3 barycentric = Barycentric(result, triangle3D);
Vector3 barycentric = Barycentric(result, triangle);
return barycentric is { X: >= 0 and <= 1, Y: >= 0 and <= 1, Z: >= 0 and <= 1 };
}

public static bool Raycast(Triangle3D triangle3D, Ray ray, out RaycastResult outDistance)
public static bool Raycast(Triangle3D triangle, Ray ray, out RaycastResult outDistance)
{
outDistance = default;

Plane plane = Plane.CreateFromVertices(triangle3D.A, triangle3D.B, triangle3D.C);
Plane plane = Plane.CreateFromVertices(triangle.A, triangle.B, triangle.C);
if (!Raycast(plane, ray, out RaycastResult planeResult))
return false;

Vector3 result = ray.Origin + ray.Direction * planeResult.Distance;
Vector3 barycentric = Barycentric(result, triangle3D);
Vector3 barycentric = Barycentric(result, triangle);
if (barycentric is not { X: >= 0 and <= 1, Y: >= 0 and <= 1, Z: >= 0 and <= 1 })
return false;

Expand Down Expand Up @@ -819,10 +819,10 @@ public static bool Linetest(Plane plane, LineSegment3D line)
return t is >= 0 and <= 1;
}

public static bool Linetest(Triangle3D triangle3D, LineSegment3D line)
public static bool Linetest(Triangle3D triangle, LineSegment3D line)
{
Ray ray = new(line.Start, line.End - line.Start);
return Raycast(triangle3D, ray, out float t) && t >= 0 && t * t <= line.LengthSquared;
return Raycast(triangle, ray, out float t) && t >= 0 && t * t <= line.LengthSquared;
}

#endregion Linetesting
Expand Down Expand Up @@ -850,17 +850,17 @@ public static Vector3 SatCrossEdge(Vector3 a, Vector3 b, Vector3 c, Vector3 d)
return Vector3.Zero;
}

public static Vector3 Barycentric(Vector3 point, Triangle3D triangle3D)
public static Vector3 Barycentric(Vector3 point, Triangle3D triangle)
{
Vector3 ap = point - triangle3D.A;
Vector3 bp = point - triangle3D.B;
Vector3 cp = point - triangle3D.C;
Vector3 ap = point - triangle.A;
Vector3 bp = point - triangle.B;
Vector3 cp = point - triangle.C;

Vector3 ab = triangle3D.B - triangle3D.A;
Vector3 ac = triangle3D.C - triangle3D.A;
Vector3 bc = triangle3D.C - triangle3D.B;
Vector3 cb = triangle3D.B - triangle3D.C;
Vector3 ca = triangle3D.A - triangle3D.C;
Vector3 ab = triangle.B - triangle.A;
Vector3 ac = triangle.C - triangle.A;
Vector3 bc = triangle.C - triangle.B;
Vector3 cb = triangle.B - triangle.C;
Vector3 ca = triangle.A - triangle.C;

Vector3 v = ab - Project(ab, cb);
float a = 1f - Vector3.Dot(v, ap) / Vector3.Dot(v, ab);
Expand Down Expand Up @@ -1119,17 +1119,17 @@ private static bool OverlapOnAxis(Obb obb1, Obb obb2, Vector3 axis)
return interval2.Min <= interval1.Max && interval1.Min <= interval2.Max;
}

private static bool OverlapOnAxis(Aabb aabb, Triangle3D triangle3D, Vector3 axis)
private static bool OverlapOnAxis(Aabb aabb, Triangle3D triangle, Vector3 axis)
{
Interval interval1 = aabb.GetInterval(axis);
Interval interval2 = triangle3D.GetInterval(axis);
Interval interval2 = triangle.GetInterval(axis);
return interval2.Min <= interval1.Max && interval1.Min <= interval2.Max;
}

private static bool OverlapOnAxis(Obb obb, Triangle3D triangle3D, Vector3 axis)
private static bool OverlapOnAxis(Obb obb, Triangle3D triangle, Vector3 axis)
{
Interval interval1 = obb.GetInterval(axis);
Interval interval2 = triangle3D.GetInterval(axis);
Interval interval2 = triangle.GetInterval(axis);
return interval2.Min <= interval1.Max && interval1.Min <= interval2.Max;
}

Expand Down

0 comments on commit f5f7e10

Please sign in to comment.