}
/* compute interval for triangle 1 */
{
final Vector3 abc = Vector3.fetchTempInstance();
final Vector2 x0x1 = Vector2.fetchTempInstance();
if (newComputeIntervals(vp0, vp1, vp2, dv0, dv1, dv2, dv0dv1, dv0dv2, abc, x0x1)) {
return coplanarTriTri(n1, v0, v1, v2, u0, u1, u2);
}
/* compute interval for triangle 2 */
final Vector3 def = Vector3.fetchTempInstance();
final Vector2 y0y1 = Vector2.fetchTempInstance();
if (newComputeIntervals(up0, up1, up2, du0, du1, du2, du0du1, du0du2, def, y0y1)) {
return coplanarTriTri(n1, v0, v1, v2, u0, u1, u2);
}
xx = x0x1.getX() * x0x1.getY();
yy = y0y1.getX() * y0y1.getY();
xxyy = xx * yy;
tmp = abc.getX() * xxyy;
isect1[0] = tmp + abc.getY() * x0x1.getY() * yy;
isect1[1] = tmp + abc.getZ() * x0x1.getX() * yy;
tmp = def.getX() * xxyy;
isect2[0] = tmp + def.getY() * xx * y0y1.getY();
isect2[1] = tmp + def.getZ() * xx * y0y1.getX();
Vector3.releaseTempInstance(abc);
Vector3.releaseTempInstance(def);
Vector2.releaseTempInstance(x0x1);