bool TestIntersection(Object o1, Object o2) {
float min1, max1, min2, max2;
for (int i = 0, n = o1.NumFaceDirs(), i < n; i++) {
GetInterval(o1, o1.GetFaceDir(i), min1, max1);
GetInterval(o2, o1.GetFaceDir(i), min2, max2);
if (max1 < min2 || max2 < min1) return false;
}
for (int i = 0, n = o2.NumFaceDirs(), i < n; i++) {
GetInterval(o1, o2.GetFaceDir(i), min1, max1);
GetInterval(o2, o2.GetFaceDir(i), min2, max2);
if (max1 < min2 || max2 < min1) return false;
}
for (int i = 0, m = o1.NumEdgeDirs(), i < m; i++)
for (int j = 0, n = o2.NumEdgeDirs(), j < n; j++) {
Vector axis = Cross(o1.GetEdgeDir(i), o2.GetEdgeDir(j));
GetInterval(o1, axis, min1, max1);
GetInterval(o2, axis, min2, max2);
if (max1 < min2 || max2 < min1) return false;
}
return true;
}
What I don't understand is this line:
Vector axis = Cross(o1.GetEdgeDir(i), o2.GetEdgeDir(j));
what is this EdgeDir?
is it
v1=[5.0f,6.0f,4.0f]
v2=[3.0f,1.0f,8.0f]
edgedir= [5-3,6-1,4-8]
?












