1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| bool UMyMaths::AlignedAxisRectanglesAreOverlapping(TArray<FVector> Rectangle1, TArray<FVector> Rectangle2) { //Teste collision entre 2 rectangles alignés sur le repère cartésien
FVector l1, r1, l2, r2;
if (Rectangle1.Num() == 0 || Rectangle2.Num() == 0){
UE_LOG(LogTemp, Warning, TEXT("Le tableau de vecteurs Rectangle1 ou Rectangle2 est vide dans la fonction AlignedAxisRectanglesAreOverlapping() dans MyMaths.cpp"));
return false;
}
l1 = Rectangle1[0];
r1 = Rectangle1[2];
l2 = Rectangle2[0];
r2 = Rectangle2[2];
// If one rectangle is on the side of other
if (l1.X > r2.X || l2.X > r1.X)
return false;
// If one rectangle is above other
if (l1.Y > r2.Y || l2.Y > r1.Y)
return false;
return true;
} |
Partager