MCPcopy Create free account
hub / github.com/phaserjs/phaser / TriangleToTriangle

Function TriangleToTriangle

src/geom/intersects/TriangleToTriangle.js:24–82  ·  view source on GitHub ↗
(triangleA, triangleB)

Source from the content-addressed store, hash-verified

22 * @return {boolean} `true` if the Triangles intersect, otherwise `false`.
23 */
24var TriangleToTriangle = function (triangleA, triangleB)
25{
26 // First the cheapest ones:
27
28 if (
29 triangleA.left > triangleB.right ||
30 triangleA.right < triangleB.left ||
31 triangleA.top > triangleB.bottom ||
32 triangleA.bottom < triangleB.top)
33 {
34 return false;
35 }
36
37 var lineAA = triangleA.getLineA();
38 var lineAB = triangleA.getLineB();
39 var lineAC = triangleA.getLineC();
40
41 var lineBA = triangleB.getLineA();
42 var lineBB = triangleB.getLineB();
43 var lineBC = triangleB.getLineC();
44
45 // Now check the lines against each line of TriangleB
46 if (LineToLine(lineAA, lineBA) || LineToLine(lineAA, lineBB) || LineToLine(lineAA, lineBC))
47 {
48 return true;
49 }
50
51 if (LineToLine(lineAB, lineBA) || LineToLine(lineAB, lineBB) || LineToLine(lineAB, lineBC))
52 {
53 return true;
54 }
55
56 if (LineToLine(lineAC, lineBA) || LineToLine(lineAC, lineBB) || LineToLine(lineAC, lineBC))
57 {
58 return true;
59 }
60
61 // Nope, so check to see if any of the points of triangleA are within triangleB
62
63 var points = Decompose(triangleA);
64 var within = ContainsArray(triangleB, points, true);
65
66 if (within.length > 0)
67 {
68 return true;
69 }
70
71 // Finally check to see if any of the points of triangleB are within triangleA
72
73 points = Decompose(triangleB);
74 within = ContainsArray(triangleA, points, true);
75
76 if (within.length > 0)
77 {
78 return true;
79 }
80
81 return false;

Callers 2

GetTriangleToTriangleFunction · 0.85

Calls 3

LineToLineFunction · 0.85
ContainsArrayFunction · 0.85
DecomposeFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…